Python记分计数器,与while、if、elif和else一起生活在游戏中

Python记分计数器,与while、if、elif和else一起生活在游戏中,python,if-statement,while-loop,Python,If Statement,While Loop,我试图创造这场比赛,但我被整个计分器的生命和如何打破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 =

我试图创造这场比赛,但我被整个计分器的生命和如何打破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)]

以下是一些建议,以了解您管理
分数
计数器、
生命
的预期行为,以及如何打破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)]
  • 得分
    生命
    移动到
    的上方,同时
    循环。
    即使在循环中计算它们的新值,如果它们在循环中定义,它们的值也会重置每个循环
  • 使用递增和递减运算符进行计算。
    在进行计算以指定新值时,您需要将计算结果保存回变量。像
    score+1
    lifes-1
    这样的语句在保存结果之前对这些变量没有影响。您可以将所有
    score+1
    更改为
    score=score+1
    (或
    score+=1
    ),并将所有
    lifes-1
    更改为
    lifes=lifes-1
    (或
    lifes-=1
    )。有关更多详细信息,请参阅
  • 删除所有
    break
    语句。
    break
    在您想在
    的同时打破
    循环时非常有用,但是由于游戏一直在玩(我假设,因为您一直跟踪
    生命
    ),直到所有生命都消失,那么当条件
    生命>0
    False
    时,循环将“中断” 在进行这些更改后,您的游戏应按预期运行

    希望这有帮助

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

    你有问题吗?请参加考试并复习。