当前位置:   article > 正文

Python学习——石头剪刀布的简单制作_python石头剪刀布最基础

python石头剪刀布最基础

目录

整体构思

引用库

初始化(即输出初始界面) 

输入用户名和选择电脑名称

主体程序

玩家出拳

电脑出拳

角色出拳显示

胜负判断

选择是否再来一局

输出得分,结果

完整代码


整体构思

利用Python中random库来生成随机数以达到电脑随机出拳的目的,每次开始游戏前(即每次重新运行程序时)重置积分系统。首先获取玩家名,然后选择电脑角色,使用eval函数来使石头,剪刀,布作为运算的1,2,3,玩家输入为1,2,3,当玩家为1,2,3且电脑为2,3,1时玩家获胜,玩家与电脑数值相同时平手,否则判定电脑获胜。玩家或者电脑获胜加一分,平局不加分。最后选择是否再来一局,若是,则重复判定与加分;若否,出示积分结果,结束程序。

引用库

import random

初始化(即输出初始界面) 

  1. player_score=0
  2. computer_score=0
  3. print(" ")
  4. print('* '*7+'欢迎来到小墨游戏'+'* '*7)
  5. print(' '*7+'石头 剪刀 布 '+' '*7)
  6. print('* '*23)
  7. print(" ")

在这里我们首先创建了play_score和computer_score两个变量来存储双方比分,然后利用print()函数输出初始界面

输入用户名和选择电脑名称

  1. player_name=input('请输入玩家姓名:')
  2. print('1.孙行者 2.者行孙 3.行孙者')
  3. choice=eval(input('请选择电脑角色:'))
  4. if choice==1:
  5. computer_name='孙行者'
  6. elif choice==2:
  7. computer_name = '者行孙'
  8. elif choice==3:
  9. computer_name = '行孙者'
  10. else:
  11. computer_name='匿名'
  12. print(player_name,'VS',computer_name)

创建变量player_name来存储玩家名称,computer_name存储电脑名称,choice变量便于用户选择电脑名称,我们预先定义了三个电脑名称“孙行者”、“者行孙”、“行孙者”,最后输出“某某某VS某某某”。这里需要注意的是对战双方的名字是暂时的,每次运行程序就会刷新掉,后面的积分也是。

主体程序

玩家出拳

  1. player_fist=eval(input('----------请出拳: 1.石头 2.剪刀 3.布---------'))
  2. if player_fist==1:
  3. player_fist_name='石头'
  4. elif player_fist==2:
  5. player_fist_name = '剪刀'
  6. elif player_fist==3:
  7. player_fist_name = '布'
  8. else:
  9. player_fist_name = '石头'
  10. player_fist=1

同样定义“石头”、“剪刀”、“布”的数值为1,2,3,创建变量名player_fist作为玩家的出拳,在显示双方的出拳时显示的是“石头”、“剪刀”、“布”,所以再将1,2,3的值赋给player_fist_name,这里同时默认如果玩家不出拳则视为出石头。

电脑出拳

  1. computer_fist=random.randint(1,3)
  2. if computer_fist==1:
  3. computer_fist_name='石头'
  4. elif computer_fist==2:
  5. computer_fist_name = '剪刀'
  6. else:
  7. computer_fist_name = '布'

此处使用random库实现电脑角色的随机出拳。

random.randint()函数用于生成随机数,第一个参数为起始值,第二个参数为结束值,第三个参数为步长,当不设置第三个参数时默认为1,此处省略第三个参数,该函数在运行时包含起始值而不包含结束值所以最后要加一个“布”的出拳

角色出拳显示

  1. print(player_name,'出拳:',player_fist_name)
  2. print(computer_name, '出拳:', computer_fist_name)

胜负判断

  1. if player_fist==computer_fist:
  2. print('平局')
  3. elif (player_fist==1 and computer_fist==2) or (player_fist==2 and computer_fist==3)or (player_fist==3 and computer_fist==1):
  4. print('玩家: ',player_name ,'胜')
  5. player_score+=1
  6. else:
  7. print('电脑: ',computer_name,' 胜')
  8. computer_score+=1

判断两个角色的出拳胜负,若双方的fist数值相等即为平手,当玩家为1,2,3且电脑list数值分别为2,3,1时玩家获胜,否则判定电脑角色获胜。哪一方胜利就给哪一方的积分加1。

选择是否再来一局

  1. answer=input('再来一局不?y/n')
  2. if answer!='y':
  3. break

创建变量answer作为答案,使用input()函数获取用户内容,接着进行判断,如果用户输入的不是“y”,那么退出出拳环节,如果是“y”,则再次运行主体程序部分。切记实现重复出拳环节要将以上代码放入while True的下级代码里。

输出得分,结果

  1. print('-----------------------------')
  2. print(player_name,'VS',computer_name)
  3. print(player_name,'得分:',player_score)
  4. print(computer_name,'得分:',computer_score)
  5. print('-----------------------------')
  6. if player_score==computer_score:
  7. print('不分上下,再战一场')
  8. elif player_score>computer_score:
  9. print(player_name,'大获全胜')
  10. else:
  11. print(computer_name,'醉了醉了,不服来啊')

利用print()函数输出双方得分,再次判断玩家积分是否高于电脑积分,根据结果输出结束语,程序结束。

完整代码

  1. import random
  2. player_score=0
  3. computer_score=0
  4. print(" ")
  5. print('* '*7+'欢迎来到小墨游戏'+'* '*7)
  6. print(' '*7+'石头 剪刀 布 '+' '*7)
  7. print('* '*23)
  8. print(" ")
  9. #输入
  10. player_name=input('请输入玩家姓名:')
  11. print('1.孙行者 2.者行孙 3.行孙者')
  12. choice=input('请选择电脑角色:')
  13. if choice=='1':
  14. computer_name='孙行者'
  15. elif choice=='2':
  16. computer_name = '者行孙'
  17. elif choice=='3':
  18. computer_name='行孙者'
  19. else:
  20. computer_name='匿名'
  21. print(player_name,'VS',computer_name)
  22. while True:
  23. # 玩家出拳
  24. player_fist=eval(input('----------请出拳: 1.石头 2.剪刀 3.布---------\n'))
  25. if player_fist==1:
  26. player_fist_name='石头'
  27. elif player_fist==2:
  28. player_fist_name='剪刀'
  29. elif player_fist==3:
  30. player_fist_name='布'
  31. else:
  32. player_fist_name='石头'
  33. #电脑出拳
  34. computer_fist=random.randint(1,3)
  35. print(player_name,'出拳:',player_fist_name)
  36. if computer_fist==1:
  37. computer_fist_name='石头'
  38. elif computer_fist==2:
  39. computer_fist_name='剪刀'
  40. else:
  41. computer_fist_name='布'
  42. print(computer_name,'出拳',computer_fist_name)
  43. #对战结果
  44. if player_fist==computer_fist:
  45. print('平局')
  46. elif (player_fist==1 and computer_fist==2) or(player_fist==2 and computer_fist==3) or(player_fist==3 and computer_fist==1):
  47. print('玩家:',player_name,'胜')
  48. player_score+=1
  49. else:
  50. print('电脑:',computer_name,'胜')
  51. computer_score+=1
  52. answer=input('再来一局不?y/n')
  53. if answer!='y':
  54. break
  55. #显示对战结果
  56. print('-----------------------------')
  57. print(player_name,'VS',computer_name)
  58. print(player_name,'得分:',player_score)
  59. print(computer_name,'得分:',computer_score)
  60. print('-----------------------------')
  61. if player_score==computer_score:
  62. print('不分上下,再战一场')
  63. elif player_score>computer_score:
  64. print(player_name,'大获全胜')
  65. else:
  66. print(computer_name,'醉了醉了,不服来啊')

END THANKS

如果对您有帮助,请点赞关注支持我,谢谢!❤
如有错误或者不足之处,敬请指正!❤

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/405875
推荐阅读
相关标签
  

闽ICP备14008679号