zoukankan      html  css  js  c++  java
  • 最近在学习python,做了一道人机大战的题目,分享一下,虽然可能有些麻烦,但是每个人思维是不同的。

     #题目如下: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刘备 请玩家输入数字选择角色:") 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布 请玩家输入数字选择出拳:") 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))
  • 相关阅读:
    彻底理解Hive中的锁
    Hive中的UDF详解
    如何让你的SQL运行得更快
    软件需求评审之五个案例和九条建议
    数据结构算法大全
    SQL Server CPU时间和占用时间及优化
    SQL Server datetime数据类型设计、优化误区
    SQL Server CASE语句中关于Null的处理
    UML分析设计顺序
    OO软件设计说明书结构
  • 原文地址:https://www.cnblogs.com/bingoTest/p/10431044.html
Copyright © 2011-2022 走看看