继昨天的猜拳游戏,升级为老虎机版

python人机猜拳游戏代码

【开发该软件的操作系统】:windows10

【软件开发环境/开发工具】:PyCharm 2020.3.3 X64

【解释器版本】:Python 3.9.7

【编程语言】:Python

【开发目的】: 供初学者参考学习

【开发者】:20届牛马毕业生_迪焱

该版本可通过改变与a比较的值,实现控制胜率。让玩家100%胜率不再是梦。

import random  # 导入random随机函数

# 定义全局参数
count_pj = 0  # 平局局数
count_playerwin = 0  # 玩家胜利局数
count_comwin = 0  # 电脑胜利局数


def Game():  # 游戏内容
    try:
        player = eval(input('请输入您要出的手势(⽯头(1)/剪⼑(2)/布(3)):'))  # 玩家选择要出的数字
        dic1 = {1: "石头", 2: "剪刀", 3: "布"}
        a = random.randint(1, 100)  # 获取随机数字,以用于判断哪方获胜
        if a < 90:  # 玩家胜利概率,改变数字玩家的胜率随之变化(现设置玩家胜率为90%)
            if player == 1:
                print("玩家手势({}) vs ({})电脑手势".format(dic1[player], dic1[2]))
            elif player == 2:
                print("玩家手势({}) vs ({})电脑手势".format(dic1[player], dic1[3]))
            elif player == 3:
                print("玩家手势({}) vs ({})电脑手势".format(dic1[player], dic1[1]))
            print("玩家胜利!")
            global count_playerwin
            count_playerwin += 1

        elif a < 92:  # 平局条件,改变数字平局的概率随之变化(现设置平局概率为2%)
            print("玩家手势({}) vs ({})电脑手势".format(dic1[player], dic1[player]))
            print("平局了。")
            global count_pj
            count_pj += 1
        else:  # 剩下即为电脑胜率条件(现设置电脑胜率为8%)
            # if player == 1:
            #     print("玩家手势({}) vs ({})电脑手势".format(dic1[player], dic1[3]))
            # elif player == 2:
            #     print("玩家手势({}) vs ({})电脑手势".format(dic1[player], dic1[1]))
            # elif player == 3:
            #     print("玩家手势({}) vs ({})电脑手势".format(dic1[player], dic1[2]))
            list = [3, 1, 2, 3, 1, 2]
            print("玩家手势({}) vs ({})电脑手势".format(dic1[player], dic1[list[player + 2]])) #第31行到第36行代码可用37、38两行代码替换
            print("电脑胜利。")
            global count_comwin
            count_comwin += 1

        print("-" * 60)  # 每局游戏结束时分隔线

    except:  # 异常处理重新运行函数 Game()
        print("错误,请重新输入")  # 输入数据异常提醒
        Game()


i = 1  # 定义全局参数,判断游戏是否进行
count = 0  # 记录游戏进行总局数


def game_times():  # 游戏进行局数

    num = eval(input("是否进行猜拳游戏[是(1),否(0)]:"))

    if num == 1:  # 游戏进行条件
        global count
        count += 1
        print("第{}局游戏".format(count).center(41, '-'))

    elif num == 0:  # 游戏结束条件
        print("游戏结束".center(50, '-'))
        global i  # 获取全局参数,判定游戏结束条件
        i = 0

    else:  # 输入数据异常,重新运行game_times函数
        print("输入错误,请重新输入!!!")
        game_times()


while i >= 1:  # while循环,满足条件游戏可以无限进行
    game_times()  # 调用game_times函数,显示游戏进行局数
    if i == 0:  # 判断游戏是否进行
        break  # 跳出while循环,结束游戏
    else:  # 游戏继续进行条件
        Game()  # 调用Game()函数,进行游戏

print("一共进行了{}局游戏。".format(count))  # 打印游戏进行总局数
print("其中平局{}局,玩家赢{}局,电脑赢{}局。".format(count_pj, count_playerwin, count_comwin))  # 打印平局,玩家胜利,电脑胜利局数
print("玩家的胜率为{:.2%}".format(count_playerwin / (count_pj + count_comwin + count_playerwin)))  # 打印玩家胜率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a1迪三火

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值