用Python核心编程破解游戏练习题中的难题


如果你在游戏练习题中遇到一些令你痛疼的问题时,以下的文章就是对Python核心编程中关于游戏练习题的实际操作中遇到相关问题的解决,以及相关代码的详细分析,以下是文章的具体介绍。

Python核心编程中的一个游戏练习题

根据书上的题目,偶扩展了一下,写成了一个游戏机器人自动游戏比赛策划说明:先定义一个基类:AutoPeople,类中存在一个全局类成员,所有队员有效GameDic = {'石头':'剪刀','剪刀':'布','布':'石头'}含义为 石头>剪刀>布>石头 等然后需要定义一个分数值 Score

代码如下:

  1. PythonCode: # -*- coding: gbk -*-  
  2. import time,random  
  3. class BaseAuto:  
  4. GameDic = {'石头':'剪刀','剪刀':'布','布':'石头'}  
  5. def __init__(self):  
  6. self.score = 0 
  7. def OutHandle(self):  
  8. return None  
  9. class AutoPeopl1(BaseAuto):  
  10. def OutHandle(self):  
  11. return self.GameDic.keys()[0]  
  12. class AutoPeople2(BaseAuto):  
  13. def OutHandle(self):  
  14. return self.GameDic.keys()[random.randint(0,2)]  
  15. class DoStart:  
  16. def __init__(self,Pa,Pb):  
  17. self.pa = Pa 
  18. self.pb = Pb 
  19. def Play(self,PlayCount):  
  20. self.pa.score = 0 
  21. self.pb.score = 0 
  22. PjCount = 0 
  23. for i in range(0,PlayCount):  
  24. paT = time.clock()  
  25. paValue = self.pa.OutHandle()  
  26. paT = time.clock() - paT  
  27. pbT = time.clock()  
  28. pbValue = self.pb.OutHandle()  
  29. pbT = time.clock() - pbT  
  30. if (paT > 100) or (pbT > 100):  
  31. if paT > 100:  
  32. self.pa.score -5 
  33. if pbT > 100:  
  34. self.pb.score -5 
  35. continue  
  36. if (paT > 10) or (pbT >10):  
  37. if paT > 10:  
  38. self.pa.score -1 
  39. if pbT > 10:  
  40. self.pb.score -1 
  41. print '-*-*-*-*-*-*-*-*-*第%d局-*-*-*-*-*-*-*-*-*\n
    机器人1出:%s\n机器人2出:%s'%(i+1,paValue,pbValue)  
  42. if self.pa.GameDic[paValue] == pbValue:  
  43. self.pa.score += 5  
  44. print '机器人1胜利'  
  45. elif self.pb.GameDic[pbValue] == paValue:  
  46. self.pb.score += 5  
  47. print '机器人2胜利'  
  48. else:  
  49. PjCount += 1  
  50. print '最后得分:\n机器人1得分:%d\n机器人2得分:%d\n
    平局%d'%(self.pa.score,self.pb.score,PjCount)  
  51. def GameTest():  
  52. p1 = AutoPeopl1()  
  53. p2 = AutoPeople2()  
  54. playgame = DoStart(p1,p2)  
  55. inputI = 'sdf' 
  56. count = 0 
  57. while not inputI.isdigit():  
  58. inputI = raw_input('请输入一个数字')  
  59. print 'test'  
  60. if inputI.isdigit():  
  61. count = int(inputI)  
  62. break  
  63. else: print ('请输入一个数字')  
  64. playgame.Play(count)  
  65. if __name__ == "__main__":  
  66. GameTest()     

以上的文章就是对Python核心编程中的一个游戏练习题的实际操作方案与其相关代码的介绍。

相关内容

    暂无相关文章

评论关闭