python类练习
#人和机器猜拳游戏#选择角色1 曹操 2张飞 3 刘备
#角色猜拳1剪刀 2石头 3布 玩家输入一个1-3的数字
#电脑出拳 随机产生1个1-3的数字,提示电脑出拳结果,本局对战结果...赢...输,是否继续?y/n
#输出结果 角色赢几局 电脑赢几局,平局几次 游戏结束
import randomclass RolePcGame:
roles = ['曹操', '张飞', '刘备']
fist_list = ['剪刀', '石头', '布']
def get_role_name(self): # 选角
role = int(input("请选择角色[曹操:1,张飞:2,刘备:3]:"))
while role not in (1,2,3):
role = int(input("你选择的角色不存在,请重新选择[曹操:1,张飞:2,刘备:3]:"))
break
return self.roles[role-1] # 返回角色名称
def get_role_fist(self): # 角色出拳
fist_num = int(input( "请角色出拳[剪刀:1,石头:2, 布:3]:"))
while fist_num not in (1, 2, 3):
fist_num = int(input("输入有误,请重新出拳[剪刀:1,石头:2,布:3]:"))
break
return fist_num
def get_pc_fist(self): # 电脑出拳
fist_num = random.randint(1,3)
return fist_num
def pve(self): # 人机对战计算
win_role = 0 # 统计角色赢的局数
win_pc = 0 # 统计电脑赢的局数
draw = 0 # 统计平局数
# 获得角色
role_name = self.get_role_name() # 获取角色名称,get_role_name()返回的就是角色名称
print("恭喜你,选角成功,你选的角色是:",role_name)
while True:
print(role_name + "请出拳:")
role_fist = self.get_role_fist() #角色出拳
# print("电脑请出拳")
pc_fist = self.get_pc_fist() # 电脑出拳
print("{0}角色出的拳是:{1},电脑出的拳是:{2}".format(role_name,self.fist_list[role_fist-1],self.fist_list[pc_fist-1]))
if role_fist - pc_fist in (1,-2): #角色胜出
print(role_name + "赢了")
win_role +=1
elif role_fist - pc_fist == 0: #平局
print("人机平局")
draw +=1
elif role_fist - pc_fist in(-1,2): #电脑胜出
print("pc赢了")
win_pc +=1
choose = input("是否继续游戏?按y继续,按n退出")
if choose == 'n':
print("退出游戏")
break
print("{0}一共赢了{1}局,电脑赢了{2}局,平{3}局".format(role_name,win_role, win_pc, draw))
if __name__ == '__main__':
RolePcGame().pve()
以上是 python类练习 的全部内容, 来源链接: utcz.com/z/387188.html