岩石剪刀与赢家或输家结果

时间:2018-06-07 01:57:44

标签: python

我刚开始学习Python,并试图自己制作这个游戏进行自我训练。

我让游戏再花2个小时。 但是我想在休息时获得得分结果(3胜或3输)。

我不知道如何在这种情况下使用while语句。 希望能帮到我。

import random

user_choice = input("select one of rock, paper, scissors. ")

Rock_paper_scissors = ['rock', 'paper', 'scissors']
computer_choice = Rock_paper_scissors[random.randint(0,2)]

if user_choice == computer_choice:
    print("Draw.")

elif user_choice == "rock":
    if computer_choice == "paper":
        computer_score += 1
        print("lose.")
    else:
        user_score += 1
        print("win.")

elif user_choice == "scissors":
    if computer_choice == "rock":
        computer_score += 1
        print("lose.")
    else:
        user_score += 1
        print("win.")

elif user_choice == "paper":
    if computer_choice == "scissors":
        computer_score += 1
        print("lose")
    else:
        user_score += 1
        print("win")

3 个答案:

答案 0 :(得分:1)

python中的while循环的工作方式如下:

while condition:
    do something...

如果条件为true,则循环将继续,在这种情况下,您不需要break语句,您可以这样做:

user_score = 0
computer_score = 0
while (user_score < 3 and computer_score < 3):
    game...

如果您真的想使用break语句,可以这样做:

user_score = 0
computer_score = 0
while True:
    if (user_score >= 3 or computer_score >= 3):
        break
    game...

这样循环将永远持续下去,因为条件为True,但当玩家获得3分时,循环内的if将调用break

user_scorecomputer_score初始化为零,您必须初始化变量。

答案 1 :(得分:1)

你可以循环你的程序3次,当2个对手中的一个达到2分时停止。
它看起来像这样

while (user_score < 3 and computer_score < 3):
     <continue playing>

如果你想使用break:

while True:
     <continue playing>
     if user_score == 3 or computer score == 3:
          break

希望这个帮助

答案 2 :(得分:1)

首先,您需要在代码的前面添加这些得分变量。

computer_score=0
user_score=0

然后你想要一个while语句也包含用户输入

Rock_paper_scissors = ['rock', 'paper', 'scissors']

while True:

    user_choice = input("select one of "rock, paper, scissors. ")

    computer_choice = Rock_paper_scissors[random.randint(0,2)]

    #Your if/elif statements go here

最后和if语句检查某人是否有3分或更高的分数

    if user_score >= 3:
        print('You win')
        break