#人和机器猜拳游戏 #选择角色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()