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石头剪刀布猜拳游戏的主要内容,如果未能解决你的问题,请参考以下文章

生活大爆炸版石头剪刀布

P1328 生活大爆炸版石头剪刀布

“石头剪子布”猜拳游戏是怎么来的?

NOIp 2014 #1 生活大爆炸版石头剪刀布 Label:模拟

Noip2014 提高组 生活大爆炸版石头剪刀布 Day1 T1

oj115