Python 36号码轮盘赌模拟器开发求助:需支持多号码投注
36号码轮盘赌模拟器:多号码投注功能实现
修改后的完整代码
import random balance = 100.0 # 改为浮点数,适配0.5美元的投注 def start(): global balance print(f"当前账户余额: ${balance:.2f}") print("请输入要投注的号码(用逗号分隔,至少10个,范围0-36):") bet_numbers_input = input("> ").strip() # 处理输入,分割成号码列表 try: bet_numbers = [int(num.strip()) for num in bet_numbers_input.split(",")] except ValueError: print("输入无效,请输入数字并用逗号分隔!") start() return # 验证号码数量和范围 if len(bet_numbers) < 10: print("至少需要投注10个号码!") start() return for num in bet_numbers: if not 0 <= num <= 36: print(f"号码{num}无效,必须在0-36之间!") start() return # 计算总投注金额 per_bet = 0.5 total_bet = len(bet_numbers) * per_bet if total_bet > balance: print(f"余额不足!总投注金额为${total_bet:.2f},当前余额仅${balance:.2f}") start() return simulate(bet_numbers, total_bet, per_bet) def simulate(bet_numbers, total_bet, per_bet): global balance # 生成开奖结果 result = random.randint(0, 36) print(f"开奖结果: {result}") # 检查命中情况 hit_count = bet_numbers.count(result) if hit_count > 0: # 计算赔付:每个命中号码赔付36倍(含本金) payout = hit_count * per_bet * 36 balance = balance - total_bet + payout print(f"恭喜!你命中了{hit_count}个号码,获得${payout:.2f}赔付!") else: balance -= total_bet print("很遗憾,没有命中任何号码!") print(f"当前账户余额: ${balance:.2f}") # 询问是否继续 print("是否继续投注?(y/n)") choice = input("> ").strip().lower() if choice == 'y': start() else: print("游戏结束!") start()
关键修改说明
- 适配小数投注:把
balance改成浮点数,显示金额时保留两位小数,符合货币展示习惯。 - 多号码输入支持:允许用户用逗号分隔输入多个号码,自动转换为整数列表,同时做了三层验证:输入是否为有效数字、数量是否达到至少10个、每个号码是否在0-36范围内,避免无效输入。
- 投注金额计算:每个号码固定投0.5美元,总投注额是号码数×0.5,投注前先检查余额是否足够,不足时提示用户。
- 修复余额计算bug:原代码赢的时候直接把余额设为投注额×36,会覆盖原有余额,现在改为先扣除总投注,命中时再加上对应赔付(36倍包含本金),余额计算更准确。
- 命中统计与赔付:统计命中的号码数量(支持重复投注同一号码),按命中数计算赔付金额。
- 优化游戏流程:每次投注结束后询问用户是否继续,替代原有的无限递归调用,体验更友好。
内容的提问来源于stack exchange,提问作者sircartier
相关产品推荐
相关产品推荐

