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

说明:部分内容来源于网络学习