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

如何实现满足指定条件的循环:猜数字赌博游戏玩家持币时持续运行

实现方案

要让游戏在玩家有剩余资金时持续运行,核心是在外层添加资金判断的循环逻辑,同时将每轮游戏的参数设置、投注、猜数字逻辑都放入循环体中,还要修复原代码的已知逻辑问题,具体修改如下:

核心修改点

  • 外层新增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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:54:00