人机对战(猜拳)

# -*- coding: utf-8 -*-
# 人和机器猜拳游戏写成一个类,有如下几个函数:
# 1)函数1:选择角色1 曹操 2张飞 3 刘备
# 2)函数2:角色猜拳1剪刀 2石头 3布 玩家输入一个1-3的数字
# 3)函数3:电脑出拳 随机产生1个1-3的数字,提示电脑出拳结果
# 4)函数4:角色和机器出拳对战,对战结束后,最后出示本局对战结果...赢...输,然后提示用户是否继续?按y继续,按n退出。
# 5)最后结束的时候输出结果 角色赢几局 电脑赢几局,平局几次 游戏结束
import random
class Match:
def role(self):
dict={'1':'曹操','2':'张飞','3':'刘备'}
while True:
a=input('请输入数字选择角色:1 曹操 2 张飞 3 刘备')
if a in dict.keys():
print('你选择的角色是:{}'.format(dict[a]))
break
else:
print('你输入的数字不在范围内,请重新输入,1 曹操 2 张飞 3 刘备')
continue
return dict[a]
def role_chu_quan(self):
dict = {'1': '石头', '2': '剪刀', '3': '布'}
while True:
b=input('输入数字选择出拳:1 石头 2 剪刀 3 布 ')
if b in dict.keys():
print('角色出拳的是:{}'.format(dict[b]))
break
else:
print('你输入的数字有误,请重新输入:1 石头 2 剪刀 3 布')
continue
return dict[b]
def dian(self):
dict = {'1': '石头', '2': '剪刀', '3': '布'}
c = str(random.randint(1,3))
if c in dict.keys():
print('电脑出拳的是:{}'.format(dict[c]))
return dict[c]
def ren_dian(self):
role_number=0
dian_number=0
ping_number=0
while True:
role_1=self.role()
role_2=self.role_chu_quan()
dian_1=self.dian()
if role_2!=dian_1:
if role_2==1 and dian_1==2:
role_number+=1
elif role_2==2 and dian_1==3:
role_number+=1
elif role_2==3 and dian_1==1:
role_number+=1
else:
dian_number+=1
else:
ping_number+=1
while True:
choose=input('是否继续,按y继续,按n退出')
if choose=='y':
break
elif choose=='n':
print('对战结束;角色赢了{},电脑赢了{},平局{}'.format(role_number,dian_number,ping_number))
return
else:
print('你输入的有误,请重新输入:按y继续,按n退出')
continue
p=Match()
p.ren_dian()
# 4)函数4:角色和机器出拳对战,对战结束后,最后出示本局对战结果...赢...输,然后提示用户是否继续?按y继续,按n退出。
# 5)最后结束的时候输出结果 角色赢几局 电脑赢几局,平局几次 游戏结束

猜你喜欢

转载自www.cnblogs.com/puti306/p/10176937.html