You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python无图形6人模拟赛车游戏开发求助:投注与胜负判定

6人Python模拟赛车游戏问题解决方案

1. 搭建初始资金$1000的投注系统与车手赔率设置

用字典存储车手编号、赔率及积分信息,同时维护玩家初始资金,配合投注输入校验逻辑实现完整投注流程:

# 初始化车手数据:key为编号,value是(赔率, 当前积分)
drivers = {
    1: (1.5, 0),
    2: (2.0, 0),
    3: (1.8, 0),
    4: (2.2, 0),
    5: (1.7, 0),
    6: (2.5, 0)
}
player_money = 1000  # 初始资金

def place_bet():
    global player_money
    print(f"当前可用资金: ${player_money}")
    print("车手赔率清单:")
    for num, (odds, _) in drivers.items():
        print(f"车手{num} | 赔率 {odds}:1")
    
    while True:
        try:
            driver_num = int(input("请输入投注车手编号(1-6): "))
            if driver_num not in drivers:
                print("无效编号,请输入1-6之间的数字")
                continue
            bet_amount = int(input("请输入投注金额: "))
            if bet_amount > player_money:
                print("资金不足,请重新输入")
                continue
            if bet_amount <= 0:
                print("投注金额必须大于0")
                continue
            return driver_num, bet_amount
        except ValueError:
            print("请输入有效数字")

2. 终点线判定与代码终止逻辑

每次车手掷骰子更新积分后,立即检查是否有车手积分达到/超过166,触发获胜判定后终止循环:

import random

def roll_dice():
    return random.randint(1, 6)

def game_loop():
    bet_driver, bet_amount = place_bet()
    while True:
        # 遍历所有车手掷骰子并更新积分
        for num in drivers:
            dice_val = roll_dice()
            current_odds, current_score = drivers[num]
            drivers[num] = (current_odds, current_score + dice_val)
            print(f"车手{num}掷出{dice_val},当前积分: {drivers[num][1]}")
        
        # 检查获胜者
        winner = None
        for num, (_, score) in drivers.items():
            if score >= 166:
                winner = num
                break
        if winner:
            print(f"\n车手{winner}率先冲线!最终积分: {drivers[winner][1]}")
            settle_bet(winner, bet_driver, bet_amount)
            break

3. 投注输赢判定逻辑

通过对比玩家投注编号与获胜车手编号,结合赔率计算盈亏,直接在结算函数中实现:

def settle_bet(winner, bet_driver, bet_amount):
    global player_money
    if bet_driver == winner:
        win_money = bet_amount * drivers[winner][0]
        player_money += win_money
        print(f"投注命中!赢得${win_money:.2f},当前资金: ${player_money:.2f}")
    else:
        player_money -= bet_amount
        print(f"投注未命中!损失${bet_amount},当前资金: ${player_money:.2f}")

# 启动游戏
if __name__ == "__main__":
    game_loop()

内容的提问来源于stack exchange,提问作者Baldur 2.0

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 05:24:16