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

开发 后端
下面的文章是以代码的形式介绍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核心编程中的一个游戏练习题的实际操作方案与其相关代码的介绍。

【编辑推荐】

  1. Python 语言可以在哪些软件中开发
  2. Python字符串处理函数的过程中字符大小写的变换
  3. 编译Python正则表达式的具体操作方法介绍
  4. Python模块级函数的相关代码示例介绍
  5. python String模块在实际应用的代码介绍
责任编辑:佚名 来源: 博客园
相关推荐

2018-04-17 11:55:28

2022-08-05 11:29:06

数据分析考核政治

2019-04-12 16:10:32

Python面试题编程

2018-01-26 13:20:12

滴滴AI技术交通难题

2010-05-12 16:29:30

应用设计师

2013-10-15 09:48:03

C++Lambda函数式编程

2013-07-23 11:00:32

2013-02-27 09:46:59

2018-11-29 12:54:09

2017-02-17 17:27:42

跨境 生意

2015-03-18 09:39:10

函数编程Swift

2013-07-24 09:45:01

SDNIaaS网络难题

2019-01-23 07:46:00

2009-02-24 13:17:17

2011-08-31 16:11:09

Java

2011-08-31 16:19:48

Java

2020-08-02 19:55:46

Python编程语言技术

2022-07-22 09:55:02

Python练手题

2015-06-17 11:18:08

C#多线程基础练习题

2013-07-16 10:13:49

移动
点赞
收藏

51CTO技术栈公众号