????????刚好学习到分支和循环这部分,然后我看着视频里老师写的猜拳游戏有点小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欢迎指正,谢谢!!!!
|