python类练习

python

#人和机器猜拳游戏

#选择角色1 曹操 2张飞 3 刘备

#角色猜拳1剪刀 2石头 3布 玩家输入一个1-3的数字

#电脑出拳 随机产生1个1-3的数字,提示电脑出拳结果,本局对战结果...赢...输,是否继续?y/n

#输出结果 角色赢几局 电脑赢几局,平局几次 游戏结束

import random

class 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

回到顶部