Python记分器和while,if,elif anfels一起生活在游戏中

2024-09-30 16:33:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建这个游戏,但我被整个记分器的生活和如何打破while循环。在

player = input("Welcome! Let's play Rock, Paper, Scissors, Lizard, Spock. You have five lives. Press enter to start.")

from random import randint

t = ["rock", "paper", "scissors", "lizard", "spock"]

computer = t[randint(0,4)]

player = False

while player == False:

    lives = 5
    score = 0
    player = input("rock, paper, scissors, lizard, spock?")
    print("Computer plays",computer)
    if player == computer:
        print("Tie!")
        score + 1
    elif player == "rock":
        if computer == "paper":
            print("You lose!", computer, "covers", player)
            lives - 1
            if lives == 0:
                print("Your socre is", score)
                break
        elif computer == "lizard":
            print("You win!", player, "crushes", computer)
            score + 2
        elif computer == "spock":
            print("You lose!", computer, "vaporises", player)
            lives - 1
            if lives == 0:
                print("Your socre is", score)
                break
        else:
            print("You win!", player, "smashes", computer)
            score + 2
    elif player == "paper":
        if computer == "scissors":
            print("You lose!", computer, "cuts", player)
            lives - 1
            if lives == 0:
                print("Your socre is", score)
                break
        elif computer == "lizard":
            print("You lose!", computer, "eats", player)
            lives - 1
            if lives == 0:
                print("Your socre is", score)
                break
        elif computer == "spock":
            print("You win!", player, "disproves", computer)
            score + 2
        else:
            print("You win!", player, "covers", computer)
            score + 2
    elif player == "scissors":
        if computer == "rock":
            print("You lose...", computer, "smashes", player)
            lives - 1
            if lives == 0:
                print("Your socre is", score)
                break
        elif computer == "spock":
            print("You lose!", computer, "smashes", player)
            lives - 1
            if lives == 0:
                print("Your socre is", score)
                break
        elif computer == "lizard":
            print("You win!", player, "decapitates", computer)
            score + 2
        else:
            print("You win!", player, "cuts", computer)
            score + 2
    elif player == "spock":
        if computer == "lizard":
            print("You lose!", computer, "poisons", player)
            lives - 1
            if lives == 0:
                print("Your socre is", score)
                break
        elif computer == "scissors":
            print("You win!", player, "smashes", computer)
            score + 2
        elif computer == "rock":
            print("You win!", player, "vaporises", computer)
            score + 2
        else:
            print("You lose!", computer, "disproves", player)
            lives - 1
            if lives == 0:
                print("Your socre is", score)
                break
    elif player == "lizard":
        if computer == "spock":
            print("You win!", player, "poisons", computer)
            score + 2
        elif computer == "rock":
            print("You lose!", computer, "crushes", player)
            lives - 1
            if lives == 0:
                print("Your socre is", score)
                break
        elif computer == "paper":
            print("You win!", player, "eats", computer)
            score + 2
        else:
            print("You lose!", computer, "decapitates", player)
            lives - 1
            if lives == 0:
                print("Your socre is", score)
                break
    else:
        print("That's not a valid play!")
    player = False
    computer = t[randint(0,4)]

Tags: youyourifiswincomputerscoreplayer
1条回答
网友
1楼 · 发布于 2024-09-30 16:33:43

一些建议,以获得管理score计数器的预期行为,lives以及如何中断while循环。

  1. score和{}移到while-循环上方。
    即使是在循环中计算它们的新值,如果它们在循环中定义,它们的值将重置每个循环。在
  2. 使用递增和递减运算符进行计算。
    当进行计算以分配新值时,您需要将计算结果保存回变量。像score + 1lives - 1这样的语句在保存结果之前对这些变量没有影响。您可以将所有score + 1更改为score = score + 1(或score +=1),并类似地将所有lives - 1更改为{}(或lives -=1)。有关详细信息,请参见Behaviour of increment and decrement operators in Python。在
  3. {删除所有语句 break是有用的,如果你想打破while循环,但由于游戏一直在玩(我假设,因为你跟踪lives),直到所有生命都消失,那么当条件lives > 0False时,循环将“中断”。在

在进行这些更改之后,您的游戏应该按预期运行。

希望这有帮助。

顺便说一句,这个游戏做得很好,我很喜欢玩和调试它!

相关问题 更多 >