制作石头、布、剪刀

2024-10-17 06:26:38 发布

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

我在做一个石头,布,剪刀的游戏。你知道吗

下面的代码可以工作,但缺少两个关键的东西,我非常想知道如何实现这一点:

  1. 如果是平局,选手们必须能够重新选择。所以break语句必须返回,但是需要什么才能返回while循环并再次播放呢?

  2. 比赛结束时也是如此。球员必须能够再次比赛。我想它和上面的代码是一样的。

答案将非常有用,因为它真的帮助我了解while循环更多。你知道吗

def rps():

    play = True

    player1 = input('Player1: rock, paper of scissors? ')
    player2 = input('Player2: rock, paper of scissors? ')

    while play:
        if player1 == 'rock' and player2 == 'rock': # deze methode werkt niet om opnieuw weer te beginnen
            print ('Tie! Pick again')
            break
        elif player1 == 'rock' and player2 == 'paper':
            print('Player 2 won')
            break
        elif player1 == 'rock' and player2 == 'scissors':
            print ('Speler 1 won')
            break
        elif player1 == 'paper' and player2 == 'rock':
            print('Speler 1 won')
            break
        elif player1 == 'paper' and player2 == 'paper':
            print('Tie! Pick again')
            continue
        elif player1 == 'paper' and player2 == 'scissors':
            print('Speler 2 won')
            break
        elif player1 == 'scissors' and player2 == 'rock':
            print('Speler 2 won')
            break
        elif player1 == 'scissors' and player2 == 'paper':
            print('Speler 1 won')
            break
        elif player1 == 'scissors' and player2 == 'scissors':
            print('Tie! Pick again')

Tags: andpaperprintbreakscissorsrockelifagain
2条回答

在第二个while循环中包装游戏性循环。不要打领带。游戏性循环的输入发生在游戏性循环中。退出或游戏的输入发生,并在游戏循环之前进行评估。你知道吗

while True:
    print("Welcome to Rock, Paper, Scissors.")
    gameplay = input("(P)lay or (Q)uit?")
        if (gameplay == 'Q'):
             break
        else:
             while True:
                player1 = input('Player1: rock, paper of scissors? ')
                player2 = input('Player2: rock, paper of scissors? ')
                {Gameplay Logic}

这段代码应该能满足你的需要

def rps():

    play = True

    player1 = input('Player1: rock, paper of scissors? ')
    player2 = input('Player2: rock, paper of scissors? ')

    while play:
        if player1 == 'rock' and player2 == 'rock': # deze methode werkt niet om opnieuw weer te beginnen
            print ('Tie! Pick again')
        elif player1 == 'rock' and player2 == 'paper':
            print('Player 2 won')
            if input('Type c to continue playing, anything else to quit') == 'y':
                pass
            else:
                break
        elif player1 == 'rock' and player2 == 'scissors':
            print ('Speler 1 won')
            if input('Type c to continue playing, anything else to quit') == 'c':
                pass
            else:
                break
        elif player1 == 'paper' and player2 == 'rock':
            print('Speler 1 won')
            if input('Type c to continue playing, anything else to quit') == 'c':
                pass
            else:
                break
        elif player1 == 'paper' and player2 == 'paper':
            print('Tie! Pick again')

        elif player1 == 'paper' and player2 == 'scissors':
            print('Speler 2 won')
            if input('Type c to continue playing, anything else to quit') == 'c':
                pass
            else:
                break
        elif player1 == 'scissors' and player2 == 'rock':
            print('Speler 2 won')
            if input('Type c to continue playing, anything else to quit') == 'c':
                pass
            else:
                break
        elif player1 == 'scissors' and player2 == 'paper':
            print('Speler 1 won')
            if input('Type c to continue playing, anything else to quit') == 'c':
                pass
            else:
                break
        elif player1 == 'scissors' and player2 == 'scissors':
            print('Tie! Pick again')

        player1 = input('Player1: rock, paper of scissors? ')
        player2 = input('Player2: rock, paper of scissors? ')

The code can be optimised and simplified by doing away few if and else, but I kept this for your understanding and making minor tweak in your code.

相关问题 更多 >