【问题标题】:How to check if the user or computer was last to input?如何检查用户或计算机是否最后输入?
【发布时间】:2022-01-09 23:13:36
【问题描述】:

为一个游戏编写一个程序,其中计算机生成一个介于 20 到 30 之间的随机起始数字。 玩家和电脑可以轮流从数字中删除 1、2 或 3。有些像这样…… 起始编号:25 你想删除多少? 3 还剩 22 个 电脑删除 2 还剩 20 个 拥有删除最后一个值以将数字降至 0 的玩家是失败者。 还剩 1 个。 电脑删除1。 你赢了!

我的问题是,当我达到 0 或更少时,我该如何停止游戏。我如何告诉计算机,如果用户最后输入 -> 用户获胜,反之亦然。

开始时!= 0:

inp = int(input("How many do you want to remove? "))
if inp not in Rem:
    print("You can only remove 1,2 or 3 from the Number")
    break
start = start - inp
print(start, " left")

print("Computer Removes", remove)
start = start - remove
print(start, " left")
remove = random.choice(compRem)

if start <= 0 and start - inp <= 0:
    print("Computer Wins")
    break
elif start <= 0 and start-remove <= 0:
    print("You Win")

【问题讨论】:

  • 到目前为止你尝试过什么?向我们展示您已有的代码!
  • 我编辑了这篇文章。很明显,底部的 if 语句不会起作用,因为它正在减去该值,但这不是我的意思。但也许你能看到我想要做什么?

标签: python


【解决方案1】:

首先你问错了问题。
我认为您真正想知道的是,我如何将用户输入与计算机选择交替使用,并跟踪谁赢得了比赛。

为了做你想做的事,我会将问题分成两个功能。第一个函数简单地选择起始号码,调用第二个函数来玩游戏,最后打印结果并询问你是否想再玩一次。第二个功能在要求用户和计算机选择一个数字之间交替。第二个函数在只有一个剩余数 = 到 1 时结束。请参见以下实现:

import random as rnd
def play():
    # Play the game until the user says stop
    while True:
        number = rnd.randint(20, 30)
        winner = playGame(number)
        if winner:
            print ("Congratulation You Won")
        else:
            print ("Sorry You Lost")
        resp = input('Do you want to play again? (y/n)')
        if resp.lower()[0] == 'n':
            break  

def playGame(nm):
    player = 'User'
    while nm > 0:
        print(f'Current Number is {nm}')
        if nm == 1:
            break
        if player != 'User':
            player = 'User'
            if nm <= 3:
                nm = 1
            else:
                sel = rnd.randint(1,3)
                nm -= sel
            print(f'Computer selected {sel}')
        else:
            player = 'Computer'
            while True:
                sel = int(input('Select from 1 to 3 to remove'))
                if sel < 1 or sel > 3:
                    print(f'{sel} is outside allowable range, Please enter a new number')
                else:
                    break
            nm -= sel  
    if player == 'User':
        return False
    return True

【讨论】:

    猜你喜欢
    • 2017-11-20
    • 1970-01-01
    • 1970-01-01
    • 2014-02-01
    • 2014-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多