赞
踩
目录
利用Python中random库来生成随机数以达到电脑随机出拳的目的,每次开始游戏前(即每次重新运行程序时)重置积分系统。首先获取玩家名,然后选择电脑角色,使用eval函数来使石头,剪刀,布作为运算的1,2,3,玩家输入为1,2,3,当玩家为1,2,3且电脑为2,3,1时玩家获胜,玩家与电脑数值相同时平手,否则判定电脑获胜。玩家或者电脑获胜加一分,平局不加分。最后选择是否再来一局,若是,则重复判定与加分;若否,出示积分结果,结束程序。
import random
- player_score=0
- computer_score=0
- print(" ")
- print('* '*7+'欢迎来到小墨游戏'+'* '*7)
- print(' '*7+'石头 剪刀 布 '+' '*7)
- print('* '*23)
- print(" ")
在这里我们首先创建了play_score和computer_score两个变量来存储双方比分,然后利用print()函数输出初始界面
- player_name=input('请输入玩家姓名:')
- print('1.孙行者 2.者行孙 3.行孙者')
- choice=eval(input('请选择电脑角色:'))
- if choice==1:
- computer_name='孙行者'
- elif choice==2:
- computer_name = '者行孙'
- elif choice==3:
- computer_name = '行孙者'
- else:
- computer_name='匿名'
- print(player_name,'VS',computer_name)
创建变量player_name来存储玩家名称,computer_name存储电脑名称,choice变量便于用户选择电脑名称,我们预先定义了三个电脑名称“孙行者”、“者行孙”、“行孙者”,最后输出“某某某VS某某某”。这里需要注意的是对战双方的名字是暂时的,每次运行程序就会刷新掉,后面的积分也是。
- player_fist=eval(input('----------请出拳: 1.石头 2.剪刀 3.布---------'))
- if player_fist==1:
- player_fist_name='石头'
- elif player_fist==2:
- player_fist_name = '剪刀'
- elif player_fist==3:
- player_fist_name = '布'
- else:
- player_fist_name = '石头'
- player_fist=1
同样定义“石头”、“剪刀”、“布”的数值为1,2,3,创建变量名player_fist作为玩家的出拳,在显示双方的出拳时显示的是“石头”、“剪刀”、“布”,所以再将1,2,3的值赋给player_fist_name,这里同时默认如果玩家不出拳则视为出石头。
- computer_fist=random.randint(1,3)
- if computer_fist==1:
- computer_fist_name='石头'
- elif computer_fist==2:
- computer_fist_name = '剪刀'
- else:
- computer_fist_name = '布'
此处使用random库实现电脑角色的随机出拳。
random.randint()函数用于生成随机数,第一个参数为起始值,第二个参数为结束值,第三个参数为步长,当不设置第三个参数时默认为1,此处省略第三个参数,该函数在运行时包含起始值而不包含结束值所以最后要加一个“布”的出拳
- print(player_name,'出拳:',player_fist_name)
- print(computer_name, '出拳:', computer_fist_name)
- if player_fist==computer_fist:
- print('平局')
- elif (player_fist==1 and computer_fist==2) or (player_fist==2 and computer_fist==3)or (player_fist==3 and computer_fist==1):
- print('玩家: ',player_name ,'胜')
- player_score+=1
- else:
- print('电脑: ',computer_name,' 胜')
- computer_score+=1
判断两个角色的出拳胜负,若双方的fist数值相等即为平手,当玩家为1,2,3且电脑list数值分别为2,3,1时玩家获胜,否则判定电脑角色获胜。哪一方胜利就给哪一方的积分加1。
- answer=input('再来一局不?y/n')
- if answer!='y':
- break
创建变量answer作为答案,使用input()函数获取用户内容,接着进行判断,如果用户输入的不是“y”,那么退出出拳环节,如果是“y”,则再次运行主体程序部分。切记实现重复出拳环节要将以上代码放入while True的下级代码里。
- print('-----------------------------')
- print(player_name,'VS',computer_name)
- print(player_name,'得分:',player_score)
- print(computer_name,'得分:',computer_score)
- print('-----------------------------')
-
- if player_score==computer_score:
- print('不分上下,再战一场')
- elif player_score>computer_score:
- print(player_name,'大获全胜')
- else:
- print(computer_name,'醉了醉了,不服来啊')
利用print()函数输出双方得分,再次判断玩家积分是否高于电脑积分,根据结果输出结束语,程序结束。
- import random
- player_score=0
- computer_score=0
- print(" ")
- print('* '*7+'欢迎来到小墨游戏'+'* '*7)
- print(' '*7+'石头 剪刀 布 '+' '*7)
- print('* '*23)
- print(" ")
- #输入
- player_name=input('请输入玩家姓名:')
- print('1.孙行者 2.者行孙 3.行孙者')
- choice=input('请选择电脑角色:')
- if choice=='1':
- computer_name='孙行者'
- elif choice=='2':
- computer_name = '者行孙'
- elif choice=='3':
- computer_name='行孙者'
- else:
- computer_name='匿名'
- print(player_name,'VS',computer_name)
- while True:
- # 玩家出拳
- player_fist=eval(input('----------请出拳: 1.石头 2.剪刀 3.布---------\n'))
- if player_fist==1:
- player_fist_name='石头'
- elif player_fist==2:
- player_fist_name='剪刀'
- elif player_fist==3:
- player_fist_name='布'
- else:
- player_fist_name='石头'
- #电脑出拳
- computer_fist=random.randint(1,3)
- print(player_name,'出拳:',player_fist_name)
- if computer_fist==1:
- computer_fist_name='石头'
- elif computer_fist==2:
- computer_fist_name='剪刀'
- else:
- computer_fist_name='布'
- print(computer_name,'出拳',computer_fist_name)
- #对战结果
- if player_fist==computer_fist:
- print('平局')
- elif (player_fist==1 and computer_fist==2) or(player_fist==2 and computer_fist==3) or(player_fist==3 and computer_fist==1):
- print('玩家:',player_name,'胜')
- player_score+=1
- else:
- print('电脑:',computer_name,'胜')
- computer_score+=1
- answer=input('再来一局不?y/n')
- if answer!='y':
- break
- #显示对战结果
- print('-----------------------------')
- print(player_name,'VS',computer_name)
- print(player_name,'得分:',player_score)
- print(computer_name,'得分:',computer_score)
- print('-----------------------------')
-
- if player_score==computer_score:
- print('不分上下,再战一场')
- elif player_score>computer_score:
- print(player_name,'大获全胜')
- else:
- print(computer_name,'醉了醉了,不服来啊')

END THANKS
如果对您有帮助,请点赞关注支持我,谢谢!❤
如有错误或者不足之处,敬请指正!❤
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。