(学Python的第三天)人机猜拳游戏--三局两胜制

看完了觉得有用的话,麻烦各位老爷点个赞~        

刚好学习到分支和循环这部分,然后我看着视频里老师写的猜拳游戏有点小bug,然后我索性就重写了一遍,加上了一些功能。

话不多说,先放运行结果图

 实现的功能:

1、三局两胜制

2、电脑随机出拳,玩家手动输入

3、判断玩家输入的数据是否合法,合法则继续,不合法则给出提示信息,且本局不算,重来

4、显示出拳信息,判断单局胜负

5、计算净胜局数,判断最终胜负

以下是具体的代码(我写上了详细的注释):

"""
人机猜拳游戏(三局两胜)
1、0-剪刀,1-石头,2-布
2、玩家的选项需要手动输入,电脑自动生成选项
3、判断玩家输入的选项是否合法,合法则继续,不合法则本局不算,重来
4、最后需要判断本次游戏的最终赢家是谁,并显示出来
"""

#导入random模块
import random

# 建立一个变量,存储循环的增量
i = 0
# 建立一个序列,存储剪刀石头布
wz = ['剪刀', '石头', '布']
# 建立一个变量,存储玩家的净胜局数,玩家胜则win+1,电脑胜则win-1,平局不变
win = 0

while i < 3:
    # 因为后面在判断输入是否合法和平局的时候会把增量-1,所以我把增量放到这里来写
    i += 1
    print(f"----------- 第{i}局 -----------")
    # 建立一个变量,存储玩家的选项
    x = input("请出拳(0-剪刀,1-石头,2-布):")
    # 建立一个变量,存储电脑的选项,使用random.randint()函数在0,1,2中随机一个数
    computer = random.randint(0, 2)
    # 判断玩家的输入是否合法,合法则继续,不合法则本局不算,重来
    if not(x.isdigit()):  # 判断玩家输入的是否是数字
        print("您的输入不合法,请输入数字。本局不算,请重来")
        i -= 1
        continue
    elif not(int(x) in range(0, 3)):  # 判断玩家输入的是否是0,1,2这三个数字
        print("您的输入不合法,请重来(0 - 剪刀,1 - 石头,2 - 布)")
        i -= 1
        continue
    else:
        player = int(x)
    print(f"您出的是{wz[player]},电脑出的是{wz[computer]}。")
    if (player == 0 and computer == 2) or (player == 1 and computer == 0) or (player == 2 and computer == 1):
        print("玩家胜。")
        win += 1
    elif player == computer:
        print("平局,再来一局。")
        i -= 1
    else:
        print("电脑胜。")
        win -= 1
else:
    print("----------- 游戏结果 -----------")
    if win > 0:
        print(f"您的净胜局数是:{win}。\n恭喜你,获得了最后的胜利。")
    else:
        print(f"您的净胜局数是:{win}。\n抱歉,您最后失败了。")

第一次写文章,如有bug欢迎指正,谢谢!!!!

  • 9
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值