Python设计一个石头、剪刀、布的小游戏(附代码)

温馨提示:阅读文本大概需要10分钟。

Python设计一个石头、剪刀、布的小游戏(附代码)

石头剪刀布是一种很受欢迎的游戏。我们将在python编程语言中实现石头剪刀布(Rock, Paper, and Scissors)。Python是最简单的编程语言之一,理解它不需要花费太多时间。让我们开始吧。

先让我们分解石头,剪刀、布

在转到编码部分之前,编程和开发的第一条规则始终是分析并分解我们将要实现的内容。将我们的问题分解为更小的步骤称为分解。在这里,我们将为游戏石头剪刀布创建一个程序。我们将问题分为几部分。

1.玩家。在这个游戏中我们需要两个人,我们将有一个用户,另一个用户是计算机。用户和计算机都将输入他们的选择。不用担心计算机的输入,它将是最有趣的部分。

2.规则。接下来,我们必须创建示例方案来确定谁是每个回合的赢家。让我们简要地讨论这些情况:

–当用户和计算机做出相同选择时,这是平局。

– 石头胜过剪刀,输给布

– 布胜过石头,输给了剪刀

– 剪刀战胜布,输给石头

3.退出策略。总会有一个选择来完成游戏。

4.谁赢了?我们还需要保留双方所获得的积分。

现在我们知道我们将要做什么。让我们开始编码吧!


编写Python游戏代码:分步说明

这款游戏是使用变量,列表,while循环,if-elif-else阶梯和我们从随机模块导入的特殊randint方法创建的。我们将在下面介绍所有这些初学者编程概念!

如果您没有python编辑器,并且正在寻找一种非常简单的方法立即开始使用Python,则可以使用在线Python IDE编辑器。只需打开此页面https://repl.it/languages/python3,您就可以立即开始使用!

步骤1:导入模块

<code>from random import randint/<code>

我们使用'from'和'import'关键字从随机模块导入randint函数。randint函数具有一些特殊功能,我们将在程序中使用它们。我们将在后面讨论。现在我们已经有了重要的功能,可以在我们的代码中使用它了

步骤2:创建可用选项列表

Python中的数据结构是用户友好的并且非常易于理解。让我们看一下第一个数据结构的代码,一个列表。

<code>#List of options
game = ["Rock", "Paper", "Scissors"]/<code>

Python中还有其他数据结构,每个结构都有不同的功能。使用方括号创建列表,要检索它的值,我们需要做的就是,写下列表的名称,后跟两个方括号,然后输入要检索的值的索引。例如:

<code>game[1]/<code>

步骤3:让电脑随机选择

我们已经导入了randint函数,并且我们还知道如何从列表中检索值。现在是时候结合这两个概念,我们需要获得计算机的选择。以下代码就是计算机在此程序中随机选择的方式。

<code>#Assigning a random option to computer
computer = game[randint(0,2)]/<code>

我们创建了一个名为computer的变量,该变量将保存计算机的选择。我们已经有了选择列表,接下来需要考虑让计算机可以随机选择其中之一。这是randint函数发挥作用的地方。

randint函数用于生成随机值。将上下限参数传递给此函数,并且返回值始终在此范围之间。根据列表定义,我们将传递参数0和2,游戏具有三个值,0是第一个值。因此,这里返回0、1和2共三个选项!

<code>game[randint(0,2)]/<code>


我们将整个randint函数写在方括号内,这样返回的随机数就可以作为索引。现在,计算机做出了选择,并保存在变量中。

第4步:让我们在开始游戏之前定义更多变量

变量是编程的重要组成部分。对于我们的石头剪刀布游戏,还有一些其他变量需要考虑。

<code>playersPoint = 0
computersPoint = 0/<code>


这两个变量将为用户和计算机保存分数,所以要初始化为零。

<code>goOn = True/<code>

除了选项之外,用户还可以结束游戏。当用户输入“Finish”时,上述变量将结束游戏。goOn变量设置为True,这是while循环的条件。

当用户输入“Finish”时,此变量的值将更改为false,游戏结束。

步骤5:创建While循环

while循环允许我们的游戏运行,直到游戏被用户结束为止。

<code>#Loop goes on until goOn is false
while(goOn):/<code>

在括号中,使用了goOn变量。goOn变量的值为True,这意味着while循环中的条件为true,它将一直运行直到条件为false。稍后,当用户键入“Finish”时,我们将告诉程序将goOn变量更改为false。

步骤6:允许用户输入
while循环中的第一行代码是:

<code>#Ask for user input

player = input("Rock, Paper or Scissors? or enter Finish to end!\\n")/<code>

这是我们要求用户选择的地方。四个选项是“石头(Rock)”,“布(Paper)”,“剪刀(Scissors)”和“完成(Finish)”。用户必须输入其中之一,否则程序将不会继续。

选项存储在player变量中,函数内编写的文本出现在屏幕上。我们必须完全按照要求输入值!这是大小写敏感的!

步骤7:定义方案

我们有两个变量:computer和player,分别存有计算机和用户的选择。

现在是时候决定获胜者了。我们将通过使用if-elif-else梯形图来实现。

<code>#Check for scenarios
if(player == 'Finish'):
goOn = False
elif(player == computer):
print("Tie!")
elif(player == "Rock"):
if(computer == "Paper"):
print("You lose!", computer, "covers", player)
computersPoint = computersPoint + 1
else:
print("You win!", player, "smashes", computer)
playersPoint = playersPoint + 1
elif(player == "Paper"):
if(computer == "Scissors"):
print("You lose!", computer, "cut", player)
computersPoint = computersPoint + 1
else:
print("You win!", player, "covers", computer)
playersPoint = playersPoint + 1
elif(player == "Scissors"):
if(computer == "Rock"):
print("You lose...", computer, "smashes", player)
computersPoint = computersPoint + 1
else:
print("You win!", player, "cut", computer)
playersPoint = playersPoint + 1
else:
print("That's not a valid play. Check your spelling!")/<code>


让我们了解一下“if-elif-else”的工作原理。每个if和elif在括号中都有一个条件部分。程序将进入条件为真的那个块。一旦找到真实条件,它将忽略所有其他条件。但是,当所有条件都不成立时会发生什么?执行进入else块。再次观察上面的代码,else块没有条件。

我们将逐步讨论所有条件。

1.第一个条件检查用户是否输入了“Finish”。如果此条件为true,则goOn变量的值将更改为false,程序将结束。

<code>if(player == 'Finish'):
goOn = False/<code>

2.第二个条件检查用户和计算机的选择是否相同。在这种情况下,任何人都不会获得得分。

<code>elif(player == computer):
print("Tie!")/<code>

3.接下来的三个条件根据游戏的基本概念起作用。决定赢家,并相应地奖励积分。之前,我们用0初始化了两个变量,computersPoint和playersPoint。如果计算机获胜,则computersPoint变量将增加1,如果用户获胜,playersPoint变量将增加1。

<code>elif(player == "Rock"):
if(computer == "Paper"):
print("You lose!", computer, "covers", player)
computersPoint = computersPoint + 1
else:
print("You win!", player, "smashes", computer)

playersPoint = playersPoint + 1
elif(player == "Paper"):
if(computer == "Scissors"):
print("You lose!", computer, "cut", player)
computersPoint = computersPoint + 1
else:
print("You win!", player, "covers", computer)
playersPoint = playersPoint + 1
elif(player == "Scissors"):
if(computer == "Rock"):
print("You lose...", computer, "smashes", player)
computersPoint = computersPoint + 1
else:
print("You win!", player, "cut", computer)
playersPoint = playersPoint + 1
/<code>

4.最后是else块。没有条件。仅当用户输入无效选项时,它才会显示一条消息。

<code>else:
print("That's not a valid play. Check your spelling!")
/<code>

步骤8:允许游戏继续

在while循环结束时,我们再次使用randint函数为计算机分配选项。

<code>#Assigning a random option to computer
computer = game[randint(0,2)]
print('********Next Turn********')/<code>

即使我们在游戏开始时有类似的代码行,也必须重复此操作。请记住,计算机必须要做出选择。这就是为什么我们再次编写此行代码的原因。

步骤9:显示最终分数

当用户通过键入“完成”结束游戏时,程序将显示最终得分。最终分数存储在我们之前使用的两个变量中,computersPoint和playersPoint。

<code>#Printing final points
print("********Final Points********")
print("Player: ", playersPoint)
print("Computer: ", computersPoint)/<code>


Python设计一个石头、剪刀、布的小游戏(附代码)


剪刀石头布完整代码

您需要完整的代码,才能在Python中运行“剪刀石头布”游戏。您可以将此代码复制并粘贴到https://repl.it/languages/python3中,然后自己玩这个游戏!

<code>from random import randint

#List of options
game = ["Rock", "Paper", "Scissors"]

#Assigning a random option to computer
computer = game[randint(0,2)]


#Keep count for points
playersPoint = 0
computersPoint = 0

goOn = True

#Loop goes on until goOn is false
while(goOn):
#Ask for user input
player = input("Rock, Paper or Scissors? or enter Finish to end!\\n")

#Check for scenarios
if(player == 'Finish'):
goOn = False
elif(player == computer):
print("Tie!")
elif(player == "Rock"):
if(computer == "Paper"):
print("You lose!", computer, "covers", player)
computersPoint = computersPoint + 1
else:
print("You win!", player, "smashes", computer)
playersPoint = playersPoint + 1

elif(player == "Paper"):
if(computer == "Scissors"):
print("You lose!", computer, "cut", player)
computersPoint = computersPoint + 1
else:
print("You win!", player, "covers", computer)
playersPoint = playersPoint + 1
elif(player == "Scissors"):
if(computer == "Rock"):
print("You lose...", computer, "smashes", player)
computersPoint = computersPoint + 1
else:
print("You win!", player, "cut", computer)
playersPoint = playersPoint + 1
else:
print("That's not a valid play. Check your spelling!")
#Assigning a random option to computer
computer = game[randint(0,2)]
print('********Next Turn********')

#Printing final points
print("********Final Points********")
print("Player: ", playersPoint)
print("Computer: ", computersPoint)/<code>

用户可以输入“ Rock”,“ Paper”或“ Scissors”进行游戏,或输入“ Finish”结束游戏。然后将值与计算机的选择相匹配,并相应地分配分数。游戏结束后,最终分数将显示在屏幕上。

这就是我们可以使用python创建简单的石头剪刀布游戏的方式。


Python设计一个石头、剪刀、布的小游戏(附代码)


分享到:


相關文章: