#人和机器猜拳游戏
#选择角色1 曹操 2张飞 3 刘备
#角色猜拳1剪刀 2石头 3布 随便输入一个字符随机产生一个1-3的数字
#电脑出拳 随机产生1个1-3的数字,提示电脑出拳结果,本局对战结果...赢...输,是否继续?y/n
#输出结果 角色赢几局 电脑赢几局,平局几次 游戏结束
import random
#写法------2
class ren():
nam=""
def __init__(self,name): #name参数=(zidian[inp])
self.nam=name #创建nam属性
def caiquan(self): #ren方法
return random.randint(1,3) #返回生成随机数
class zongju():
jieguo1=0 #创建3个类属性
jieguo2=0
jieguo3=0
def __init__(self): #自动运行方法
zidian1={1:"剪刀",2:"石头",3:"布"}
wanjia=self.fff() #调用对象fff方法 创建一个ren类对象
diannao = ren("电脑") #创建一个ren类对象
while 1 :
input("请输入任意健进行猜拳------")
wan=wanjia.caiquan() #创建变量调用对象的caiquan方法
dian=diannao.caiquan() #...调用随机方法
if wan==1 and dian==2 or wan==2 and dian==3 or wan==3 and dian==1:
print("电脑胜\n{0}---------{1}\n电脑---------{2}:"\
.format(wanjia.nam,zidian1[wan],zidian1[dian])) #用健去取值
self.jieguo1+=1 #对象属性值
elif wan==dian :
print("双方平局\n{0}---------{1}\n电脑---------{2}:"\
.format(wanjia.nam,zidian1[wan],zidian1[dian]))
self.jieguo2+=1
else:
print("{0}胜\n{0}---------{1}\n电脑---------{2}:"\
.format(wanjia.nam,zidian1[wan],zidian1[dian]))
self.jieguo3+=1
if input("是否继续? yes任意键---n退出")=="n":
break
print("----------------玩家vs电脑--------------\n比赛总结果为:\n电脑胜-----{0}\n玩家胜-----{1}"
"\n平局为-----{2}".format(self.jieguo1,self.jieguo3,self.jieguo2))
if self.jieguo1>self.jieguo3:
print("总比分为----电脑胜!")
elif self.jieguo1<self.jieguo3:
print("总比分为----玩家胜!")
else:
print("总比分为----双方平局!")
def fff(self):
zidian = {1: "曹操", 2: "张飞", 3: "刘备"}
print("--------------人机猜拳游戏-----------------")
while 1:
inp=input("请选择角色\n1: 曹操 2: 张飞 3: 刘备")
if inp.isdigit():
inp=int(inp)
if inp in zidian:
mingzi=ren(zidian[inp]) #参数给了类中初始化方法 #创建一个ren类对象
print("您选择的角色是:",mingzi.nam) #输出对象属性
return mingzi #返回对象
else:
print("人物选择错误!请从新选择")
else:
print("输入有误请从新输入")
zongju() # 自动创建zongju类对象 执行对象
python类与对象小练习2
最新推荐文章于 2024-08-25 19:58:06 发布