如何实现满足指定条件的循环:猜数字赌博游戏玩家持币时持续运行
实现方案
要让游戏在玩家有剩余资金时持续运行,核心是在外层添加资金判断的循环逻辑,同时将每轮游戏的参数设置、投注、猜数字逻辑都放入循环体中,还要修复原代码的已知逻辑问题,具体修改如下:
核心修改点
- 外层新增
while money > 0的循环,只要玩家还有钱就一直重复游戏流程 - 将投注额设置、获胜奖金计算、投注合法性校验移到循环内部,每轮游戏都可以重新调整参数
- 修复原代码中
i == tries永远无法触发的问题:range生成的序列最大下标为tries-1,用完尝试次数的判断直接放到for循环结束后即可 - 新增投注金额合法性的循环校验,避免玩家输入超过当前持有资金的投注额
修改后完整代码
import random print("欢迎来到赌博模拟器,目标是尽可能赚取更多奖金,初始资金为500美元,祝你好运!") money = 500 # 外层循环:只要有资金就持续运行 while money > 0: # 每轮游戏开始前设置参数,也可将范围、尝试次数的输入移到循环外只设置一次 rngone = int(input("请设置猜数字的范围上限 >>> ")) tries = int(input("请设置本轮你有多少次尝试机会 >>> ")) # 校验投注金额合法性 while True: bet = int(input("请输入本轮投注金额 >>> ")) if bet > money: print(f"你不能投注超过当前持有资金的金额,当前剩余资金:{money}美元") else: break # 计算获胜奖金 winnings = int(bet * rngone / tries - bet) round_over = False for i in range(tries): answer = random.randint(1, rngone) guess = int(input("请猜数字 >>> ")) if guess == answer: money += winnings print(f"恭喜你猜对了!赢得奖金{winnings}美元,当前剩余资金:{money}美元") round_over = True break else: money -= bet print(f"猜错了,正确答案是{answer},你输掉了{bet}美元,当前剩余资金:{money}美元") # 中途输光直接退出 if money <= 0: print("你已经输光了所有资金,游戏结束") round_over = True break if round_over: continue # 所有尝试次数用完 print("你用完了本轮的所有尝试机会")
内容的提问来源于stack exchange,提问作者Psy6
相关产品推荐
相关产品推荐

