石头剪刀布是一种很受欢迎的游戏。我们将在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:导入模块

from random import randint

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

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

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

#List of options

game = ["Rock", "Paper", "Scissors"]

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

game[1]

步骤3:让电脑随机选择

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

#Assigning a random option to computer

computer = game[randint(0,2)]

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

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

randint(0,2)

这行代码可以返回0、1或2,它可以是唯一的或相同的,这是完全随机的! 我们将使用返回的数字作为列表的索引。

game[randint(0,2)]

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

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

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

playersPoint = 0

computersPoint = 0

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

goOn = True

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

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

步骤5:创建While循环

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

#Loop goes on until goOn is false

while(goOn):

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

步骤6:允许用户输入

while循环中的第一行代码是:

#Ask for user input

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

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

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

步骤7:定义方案

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

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

#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!")

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

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

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

if(player == 'Finish'):

goOn = False

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

elif(player == computer):

print("Tie!")

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

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

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

else:

print("That's not a valid play. Check your spelling!")

步骤8:允许游戏继续

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

#Assigning a random option to computer

computer = game[randint(0,2)]

print('********Next Turn********')

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

步骤9:显示最终分数

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

#Printing final points

print("********Final Points********")

print("Player: ", playersPoint)

print("Computer: ", computersPoint)

剪刀石头布完整代码

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

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)

让我们看看最终代码的运行结果!

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

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

python设计石头剪刀布游戏五次游戏体验_Python设计一个石头、剪刀、布游戏相关推荐

  1. Java黑皮书课后题第5章:**5.34(游戏:石头、剪刀、布)编程练习题3.17给出玩石头-剪刀-布游戏的程序。修改这个程序,让用户可以连续玩这个游戏,直到用户或者计算机赢对手两次以上为止

    5.34(游戏:石头.剪刀.布)编程练习题3.17给出玩石头-剪刀-布游戏的程序.修改这个程序,让用户可以连续玩这个游戏,直到用户或者计算机赢对手两次以上为止 题目 题目概述 编程练习题3.17 破题 ...

  2. python中answer是什么意思_用Python实现的quot;石头,剪刀,布quot; - The answer to everything - ITeye博客...

    需求:设计一个"石头,剪子,布"游戏,有时又叫"Rochambeau",你小时候可能玩过,下面是规则.你和你的对手,在同一时间做出特定的手势,必须是下面一种手势 ...

  3. Python剪刀、石头、布游戏

    学习python的第十天,发表一下,本段代码纯看要求就写出以下代码 花了一个小时写完执行成功,还是挺高兴的. 如果有人刚开始学可以找我,我们可以一起讨论学习~ import random play_s ...

  4. python--石头剪刀布游戏(列表)

    本使用了下面几篇文章的知识: python(8)--列表·初阶使用_码银的博客-CSDN博客 python(7)--if语句_码银的博客-CSDN博客 一.学习目标 利用列表实现石头剪刀布游戏 二.实 ...

  5. day39 python 学习 数据库学习 五个约束,数据库设计(一对一,一对多等等)

    删除重复数据:  注意数据库不能又查又删 *******#删除作者为重复数据并保留ID最大的是数据 delete from ren where author in (select * from(sel ...

  6. 设计类的五个原则_内容设计的5个原则

    设计类的五个原则 重点 (Top highlight) There are many heuristics and principles for creating good content. Some ...

  7. [案例2-5]石头 剪刀 布小游戏

    1.任务描述 "剪刀石头布"的游戏相信大家都不陌生,本案例要求编写一个剪刀石头布游戏的程序.程序启动后会随机生成1~3的随机数,分别代表剪刀.石头和布,玩家通过键盘输入剪刀.石头和 ...

  8. Kafka设计解析(五): Kafka Consumer设计解析

    Kafka设计解析(五)- Kafka Consumer设计解析 大数据架构(郭俊_Jason) · 2015-09-18 08:24 点击上方 大数据架构   快速关注 Kafka Consumer ...

  9. 剪刀游戏c语言代码,C++编程锤子剪刀布游戏源代码

    这个游戏的源代码很基础..一般学过程序的基本都看得懂...网上找的,自己稍作修改了 用的软件仍是Visual C++ 6.0 下面是源代码: #include #include #include vo ...

最新文章

  1. 九度OJ 1336:液晶屏裁剪 (GCD)
  2. 解决WINCE500中INTEL编译器无法完全卸载的问题
  3. python3 module 'pexpect' has no attribute 'spawn' 解决方法
  4. 2016视觉目标跟踪总结
  5. iOS中容易混淆的知识点(持续更新中)
  6. (转)光照模型及cg实现
  7. html写三角形,css3怎么写三角形?
  8. std::future和std::promise和std::packaged_task
  9. Linux的sort命令用法
  10. 华为云数据库首席架构师:关于数据库他这样说……
  11. github添加ToKen到本地并写入netrc实现自动登录
  12. python 连接hive_python pyhive通过SSH隧道连接hive报错,求解
  13. Flash Player的终章——赠予它的挽歌
  14. python 自然语言处理(四)____词典资源
  15. 计算机图形学及CAD技术 微盘,计算机图形学及cad技术讲义——曲线曲面基本理论.pdf...
  16. 网易公开课视频及字幕下载
  17. 微信更新版本下载链接汇总【持续更新】
  18. 可能是最通俗的Lempel-Ziv-Welch (LZW)无损压缩算法详述
  19. 创建create-react-app myapp项目报错
  20. C语言正弦和余弦的值

热门文章

  1. 为什么要持续集成与持续部署
  2. 03_HTML常用标签
  3. iOS快速集成支付宝(完善版)
  4. matlab中find函数用法
  5. Serverless 年终技术盘点 :工业、学术、社区遍地开花,国内厂商迅速卡位
  6. Alienware 15 R3 装Ubuntu 和 win10 双系统
  7. 用计算机技巧制造浪漫,计算机二级Word神技能:四个超实用的Word使用技巧!
  8. 淘淘商城-商城后台商品列表之商品编辑(商品管理-查询商品-编辑商品)
  9. Dota2实时比赛数据结构
  10. cocos2dx-3.2 3DAction 一些3D特效