#题目如下:1:人和机器进行猜拳游戏写成一个类,首先选择角色:1 曹操 2张飞 3 刘备,然后选择的角色进行猜拳:1剪刀 2石头 3布 玩家输入一个1-3的数字 ;
1 import random
2 class Man_Machine_War():
3 def __init__(self):
4 self.USER={1:"曹操",2:"张飞",3:"刘备"}
5 self.GUESS_TYPE={1:"剪刀",2:"石头",3:"布"}
6
7 def Choose_User(self):
8 '''
9 选择角色
10 :return:
11 '''
12 while (True):
13 User_Role_Num = input("提示:1曹操 2张飞 3刘备\n请玩家输入数字选择角色:")
14 try:
15 User_Role_Num = int(User_Role_Num)
16 if (User_Role_Num not in [1, 2, 3]):
17 print("请输入1,2,3选择角色!")
18 else:
19 print("用户选择:", self.USER[User_Role_Num])
20 return self.USER[User_Role_Num]
21 except(ValueError, TypeError):
22 print("输入错误!请玩家输入数字")
23 continue
24
25 def Computer_Num(self):
26 '''
27 返回机器人选择的数字
28 :return:
29 '''
30 ran = random.randint(1,3)
31 print("电脑出:",self.GUESS_TYPE[ran])
32 return ran
33
34 def User_Input_Num(self):
35 '''
36 返回用户选择的数字
37 :return:
38 '''
39 while(True):
40 User_Num = input("提示:1剪刀 2石头 3布\n请玩家输入数字选择出拳:")
41 try:
42 User_Num = int(User_Num)
43 if(User_Num not in [1,2,3]):
44 print("请输入1,2,3进行出拳!")
45 else:
46 print("用户选择:",self.GUESS_TYPE[User_Num])
47 return User_Num
48 except(ValueError, TypeError):
49 print("输入错误!请玩家输入数字")
50 continue
51
52 def Judge_Bunko(self,User_Res,Computer_Res):
53 '''
54 比赛结果
55 '''
56 if Computer_Res==User_Res:
57 return "Draw"
58 elif Computer_Res==1:
59 if User_Res==2:
60 return "User_Win"
61 else:
62 return "User_lose"
63 elif Computer_Res==2:
64 if User_Res==3:
65 return "User_Win"
66 else:
67 return "User_lose"
68 elif Computer_Res==3:
69 if User_Res==1:
70 return "User_Win"
71 else:
72 return "User_lose"
73 User_Last_Name=Man_Machine_War().Choose_User()
74 Use_Result = {User_Last_Name:0,"Computer":0}
75 User_Win_Num = 0
76 Com_Win_Num = 0
77 User_Equal_Com = 0
78 while(True):
79 Win_Res=Man_Machine_War().Judge_Bunko(Man_Machine_War().User_Input_Num(),Man_Machine_War().Computer_Num())
80 if Win_Res=="User_Win":
81 print(User_Last_Name,"赢了!")
82 User_Win_Num+=1
83 elif Win_Res=="User_lose":
84 print("电脑赢了!")
85 Com_Win_Num+=1
86 elif Win_Res=="Draw":
87 print("平局")
88 User_Equal_Com+=1
89 Con = input("是否继续?y/n")
90 if Con=="y":
91 continue
92 elif Con=="n":
93 break
94 else:
95 print("输入错误,默认退出,游戏停止!")
96 break
97 print(User_Last_Name,"赢了{}次,电脑赢了{}次,平局{}次".format(User_Win_Num,Com_Win_Num,User_Equal_Com))