Python3石头剪刀布猜拳游戏
Posted DigitalCamer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3石头剪刀布猜拳游戏相关的知识,希望对你有一定的参考价值。
剪刀、石头、布;这个游戏的主要目的为了解决争议,因为三者相互制约,因此不论平局几次,总会有胜负的时候。游戏规则中,石头克剪刀,剪刀克布,布克石头。
程序设计:
用户输入,机器随机出拳,系统判断胜负;用户按q或Q退出机制;输入要求限制;五局三胜制;未分出胜负继续比,直到分出胜负程序自行退出;统计双方对战情况。
import random
tip = "请输入一个数字,剪刀:1、石头:2、布:3 q或Q(表示退出游戏)\\n"
results = {1:'剪刀',2:'石头',3:'布'}
bout,total_bount = 0,5 #回合计数,总的回合计数默认5局
computer_win,mine_win,same_win = 0,0,0 #电脑赢得回合计数,我赢的回合计数
each_winner,winner = '','' #每一回合的胜利者,最终胜利者
while (bout < total_bount): #5个回合,五局三胜
bout += 1 #每玩一次回合计数增加1
input_str = input(tip) #接受用户输入
if input_str in ['q',"Q"] or (input_str.isdigit() and int(input_str) not in [1,2,3]): #按键q|Q则退出,不是数字或不在1-3范围的都退出
print('不按规则出拳,取消参赛资格,成绩作废!')
break
mine = int(input_str) #输入内容转换
computer = random.randint(1,3) #电脑随机数
if (computer - mine == -1) or (computer - mine == 2):#我赢的情况
res = "我"
mine_win += 1
if (mine - computer == -1) or (mine - computer == 2):#电脑赢的情况
res = "电脑"
computer_win += 1
if computer == mine : #平局
res = '平局'
same_win += 1
print("第%d回合->电脑:%s,我:%s,本局胜者:%s\\n"%(bout,results[computer],results[mine],res)) #回合战果输出
if(computer_win >= 3): #判断是否电脑赢
winner = "电脑"
break
elif(mine_win >= 3): #判断是否我赢
winner = "我"
break
else:
if(bout == total_bount):#最后一局还没有分出胜负,则增加一局
total_bount += 1
print('游戏结束,本场游戏总共%s回合,电脑胜%s回合,我胜%s回合,平局%s,最终胜利者是:%s'%(total_bount,computer_win,mine_win,same_win,winner))
以上是关于Python3石头剪刀布猜拳游戏的主要内容,如果未能解决你的问题,请参考以下文章
NOIp 2014 #1 生活大爆炸版石头剪刀布 Label:模拟