首页 > 解决方案 > 我如何确定这个基于文本的游戏的获胜者?

问题描述

我制作了这个游戏的工作版本,玩家与电脑。我不知道如何确定获胜者,经过大约 30 分钟的研究,我决定在这里提问。

这是一个简单的游戏。计算机是随机的,所以你的对手没有策略。我试图让计算机读取前一行,看看谁做了最后一步(因为对方获胜),我尝试使用减法。我在过去 2 个月内没有编码,所以有什么我遗漏的吗?

    import random

    print("That pen game you used to play as a kid (it's kinda like 21 
    dares)")
    newnum = random.randint(20,30)
    print("Starting number: {}".format(newnum))
    while newnum > 0:
        pRemove = int(input("How many do you want to remove: "))
        if pRemove >= 1 and pRemove <= 3:
            newnum = newnum - pRemove
            print("{} left".format(newnum))
            if newnum <= 0:
                break
        elif pRemove > 3 or pRemove < 1:
            print("Put a number from 1-3")
            break
        else:
            print("error")
            exit()
        CPUremove = random.randint(1, 3)
        newnum = newnum - CPUremove
        print("CPU removed {}. {} left!".format(CPUremove, newnum))

最后我需要看到“你赢了!” 或“你输了!” 随后终止程序。(我的意思是在它的末尾添加一些东西,而不是更改代码)

标签: python

解决方案


while循环之前,设置一个变量:

human_went_last = False
while newnum > 0:
    ...

并在玩家移除一些笔后的检查中,将变量设置为新值:

        if newnum <= 0:
            human_went_last = True
            break

然后,在循环之后,您可以检查谁最后去了。

if human_went_last:
    print("Human made the last move")
else:
    print("Computer made the last move")

推荐阅读