python初学之人机猜拳游戏

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq262593421/article/details/102634027

1、需求

1 石头剪刀布游戏需求
(1)循环打印菜单:
**************************************************************
欢迎玩石头、剪刀、布游戏
游戏规则:
按 0 键,出石头;
按 1 键,出剪刀;
按 2 键,出布;
按 9 键,退出游戏;
按其他键,可以重新输入,但累计按错3次,游戏结束。
**************************************************************
(2)要打印系统出的是哪个,要打印用户输入的哪个
(3)要打印用户输赢情况
(4)统计用户和系统的输赢情况,如果用户累加赢三次,则输出用户大胜;如果系统累加赢3次,则输出用户大败;
无论用户大胜 还是大败,都退出游戏。

2、代码

import random

flag = True
count = 0
syscoun = 0
error = 0

# return 手势:石头、剪刀、布
def fist(num):
    global error
    if num==0:
        return '出石头'
    elif num==1:
        return '出剪刀'
    elif num==2:
        return '出布'
# 判断输赢,输出结果
def execute(n1,n2,a1,a2):
    display1 = fist(a1)
    display2 = fist(a2)
    global count
    global syscoun
    if a1==a2:
        print(n1,display1)
        print(n2,display2)
        print('平局了再接再厉!')
    elif a1==0: # 玩家 出石头
        print(n1, display1)
        if a2==1:
            print(n2, display2)
            print('恭喜玩家赢了!')
            count += 1
        if a2==2:
            print(n2, display2)
            print('很遗憾玩家输了!')
            syscoun += 1
    elif a1==1: # 玩家 出剪刀
        print(n1, display1)
        if a2==0:
            print(n2, display2)
            print('很遗憾玩家输了!')
            syscoun += 1
        if a2==2:
            print(n2, display2)
            print('恭喜玩家赢了!')
            count += 1
    elif a1==2: # 玩家 出布
        print(n1, display1)
        if a2==1:
            print(n2, display2)
            print('很遗憾玩家输了!')
            syscoun += 1
        if a2==0:
            print(n2, display2)
            print('恭喜玩家赢了!')
            count += 1
    print('玩家积分:' + str(count) + ' 电脑积分:' + str(syscoun))
# 游戏初始化界面
def init():
    print()
    print('****************************************************************')
    print('欢迎玩石头、剪刀、布游戏')
    print("游戏规则:")
    print("按 0 键,出石头;")
    print("按 1 键,出剪刀;")
    print("按 2 键,出布;")
    print("按 9 键,退出游戏;")
    print("按其他键,可以重新输入,但累计按错3次,游戏结束。")
    print('*****************************************************************')
# 游戏结束界面
def destory():
    print('*************************游戏结束*******************************')
#
def game():
    global count
    global syscoun
    global flag
    global error
    while flag:
        if error>=3:
            print('累计按错3次,游戏结束')
            flag = False
        ins = input()
        if ins=='9':
            print('玩家退出')
            flag = False
        else:
            if ins != '0' and ins != '1' and ins != '2':
                print('输入格式有误,请重新输入')
                error += 1
                continue
        ins = int(ins)
        rand = int(random.randint(0,2))
        execute('玩家','电脑',ins,rand)
        if count>=3:
            print('玩家大胜')
            flag = False
        if syscoun>=3:
            print('玩家大败')
            flag = False
        if error>=3:
            print('输入有误')
            print('累计按错3次,游戏结束')
            flag = False
# 主方法
def main():
    init()
    game()
    destory()
# 执行
main()

3、运行结果

****************************************************************
欢迎玩石头、剪刀、布游戏
游戏规则:
按 0 键,出石头;
按 1 键,出剪刀;
按 2 键,出布;
按 9 键,退出游戏;
按其他键,可以重新输入,但累计按错3次,游戏结束。
*****************************************************************
1
玩家 出剪刀
电脑 出剪刀
平局了再接再厉!
玩家积分:0 电脑积分:0
0
玩家 出石头
电脑 出布
很遗憾玩家输了!
玩家积分:0 电脑积分:1
2
玩家 出布
电脑 出剪刀
很遗憾玩家输了!
玩家积分:0 电脑积分:2
3
输入格式有误,请重新输入
1
玩家 出剪刀
电脑 出石头
很遗憾玩家输了!
玩家积分:0 电脑积分:3
玩家大败
*************************游戏结束*******************************

猜你喜欢

转载自blog.csdn.net/qq262593421/article/details/102634027