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

Python开发骰子游戏遇阻,求电脑对手逻辑的实现方案

你原来的代码存在的小问题:randint(1,7)会生成1到7的整数,不符合骰子1-6的规则,我们先修正这个问题,再添加电脑逻辑。

完整可运行代码如下:

from random import randint

# 总积分初始化
player_total = 0
computer_total = 0
# 获胜阈值
WIN_SCORE = 100

def player_turn():
    """处理玩家回合逻辑,返回玩家本回合获得的积分(掷到1返回0,主动结束返回临时积分)"""
    turn_score = 0
    while True:
        inp = input("是否掷骰子?输入y继续,其他键结束本回合:")
        if inp.lower() == "y":
            dice = randint(1, 6)
            if dice == 1:
                print(f"你掷出了1,本回合获得的{turn_score}点作废,回合结束!")
                return 0
            else:
                turn_score += dice
                print(f"你掷出了{dice},本回合临时积分:{turn_score},当前总积分(未加本回合):{player_total}")
                # 提前判断加了之后够不够赢,够的话直接返回
                if player_total + turn_score >= WIN_SCORE:
                    return turn_score
        else:
            print(f"你主动结束本回合,本回合获得{turn_score}点计入总积分")
            return turn_score

def computer_turn():
    """处理电脑回合逻辑,返回电脑本回合获得的积分"""
    turn_score = 0
    # 电脑策略:单回合拿到20分就停,或者总积分加临时分够100就停
    while True:
        dice = randint(1, 6)
        if dice == 1:
            print(f"电脑掷出了1,本回合获得的{turn_score}点作废,回合结束!")
            return 0
        else:
            turn_score += dice
            print(f"电脑掷出了{dice},本回合临时积分:{turn_score},电脑当前总积分(未加本回合):{computer_total}")
            # 判断是否满足停止条件
            if computer_total + turn_score >= WIN_SCORE:
                return turn_score
            if turn_score >= 20:
                print(f"电脑主动结束本回合,本回合获得{turn_score}点计入总积分")
                return turn_score

# 主循环,轮流进行回合
while True:
    # 玩家先攻
    player_add = player_turn()
    player_total += player_add
    print(f"玩家当前总积分:{player_total}\n")
    if player_total >= WIN_SCORE:
        print("恭喜你率先达到100分,获胜!")
        break
    # 电脑回合
    computer_add = computer_turn()
    computer_total += computer_add
    print(f"电脑当前总积分:{computer_total}\n")
    if computer_total >= WIN_SCORE:
        print("电脑率先达到100分,你输了!")
        break

关键逻辑说明

  • 我们把玩家和电脑的回合逻辑拆分成了两个独立函数,代码结构更清晰,也方便后续调整电脑策略
  • 电脑的决策逻辑是这类骰子游戏的通用最优基础策略:单回合积分累计到20就收手,你如果想调整难度可以修改这个阈值,比如改成15就是简单难度,25就是困难难度
  • 每回合结束后都会先判断总积分是否达标,达标就直接结束游戏,符合超过100也获胜的规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:54:05