python剪刀石头布编程思路-python练习案例--剪刀石头布
今天探讨了下关于python的一个练习剪刀石头布,可能程序还是多少有些不足,欢迎各位批评指正:
代码如下:
import random
def main():
#将玩家和机器视为两个参量,机器产生随机数1-3,代表着"1":"石头","2":"剪刀","3":"布"
#然后玩家可以输入进行模拟比赛了
print("*******************begin*******************")
#先设置一个空表以及初始化infos
player_info = []
player_score = 0
infos = {"1":"石头","2":"剪刀","3":"布"}
while True:
#控制程序可以一直比赛下去
computer = str(random.randint(1,3))
player = input("请选择:1-石头,2-剪刀,3-布:")
if player not in ["1","2","3"]:
print("输入有误,请重新输入:")
continue
else:
ret = (player,computer)
player_info.append(ret)
if ret==("1","2") or ret==("2","3") or ret==("3","1"):
print("玩家赢了")
player_score += 1
elif player == computer:
print("平局")
else:
print("机器赢了")
player_score -= 1
print("对战双方结果:玩家:%s,机器;%s"%(infos[player],infos[computer]))
#设置结束条件
choice = input(" 是否继续游戏?(yes/no):")
if choice=="no":
break
elif choice=="yes":
continue
else:
#这里还有优化的空间,后面补充如何让其跳转到——是否继续游戏
print("输入有误!")
continue
print("*******************end*******************")
index=1
print("玩家 机器 ")
for m,n in player_info:
print("%s %s"%(infos[m],infos[n]))
print("总分为:%s"%player_score)
main()#此处调用
运行结果如下:
*******************begin*******************
请选择:1-石头,2-剪刀,3-布:1
平局
对战双方结果:玩家:石头,机器;石头
是否继续游戏?(yes/no):yesw
输入有误!
请选择:1-石头,2-剪刀,3-布:3
机器赢了
对战双方结果:玩家:布,机器;剪刀
是否继续游戏?(yes/no):yes
请选择:1-石头,2-剪刀,3-布:2
玩家赢了
对战双方结果:玩家:剪刀,机器;布
是否继续游戏?(yes/no):3
输入有误!
请选择:1-石头,2-剪刀,3-布:3
机器赢了
对战双方结果:玩家:布,机器;剪刀
是否继续游戏?(yes/no):no
*******************end*******************
玩家机器
石头石头
布剪刀
剪刀布
布剪刀
总分为:-1
说明:部分内容来源于网络学习