本文主要是介绍(学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 = 0while i < 3:# 因为后面在判断输入是否合法和平局的时候会把增量-1,所以我把增量放到这里来写i += 1print(f"----------- 第{i}局 -----------")# 建立一个变量,存储玩家的选项x = input("请出拳(0-剪刀,1-石头,2-布):")# 建立一个变量,存储电脑的选项,使用random.randint()函数在0,1,2中随机一个数computer = random.randint(0, 2)# 判断玩家的输入是否合法,合法则继续,不合法则本局不算,重来if not(x.isdigit()): # 判断玩家输入的是否是数字print("您的输入不合法,请输入数字。本局不算,请重来")i -= 1continueelif not(int(x) in range(0, 3)): # 判断玩家输入的是否是0,1,2这三个数字print("您的输入不合法,请重来(0 - 剪刀,1 - 石头,2 - 布)")i -= 1continueelse: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 += 1elif player == computer:print("平局,再来一局。")i -= 1else:print("电脑胜。")win -= 1
else:print("----------- 游戏结果 -----------")if win > 0:print(f"您的净胜局数是:{win}。\n恭喜你,获得了最后的胜利。")else:print(f"您的净胜局数是:{win}。\n抱歉,您最后失败了。")
第一次写文章,如有bug欢迎指正,谢谢!!!!
这篇关于(学Python的第三天)人机猜拳游戏--三局两胜制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!