模拟射击文字类游戏(Python)
之前使用java进行一个比较简单的实验——模拟打枪游戏,具体内容就在这里不多说了,以下是python版本,对于python在语法要求上相对其他语言较为松散,所以在编写时遇到了一些坑。
因为单纯以实现为目的,所以以下代码编写的并不简洁,这里主要说说遇到的坑:在处理变量的时候,因为python中的变量在使用时并不需要声明数据类型,但是如果直接拿来使用又会报错:TypeError: unsupported operand type(s) for -: 'method' and 'int'
百度了一下,发现是语法问题。
关于上述提示错误:是因为在Python中不需像C一样,需要 int sum (指定sum的类型),但并不是说可以直接放在表达式中去计算,所以还是需要先定义的(这些都是小细节,平时都应该尽量避免,做好类似问题的收集)
代码:
1 class BULLET_BOX: 2 def __init__(self): 3 self.bullet_count = 0 4 5 def Add_Bullet(self, count): 6 self.bullet_count = count 7 8 def See_Bullet(self): 9 return self.bullet_count
1 class GUN: 2 def __init__(self, BULLET_BOX): 3 self.BULLET_BOX = BULLET_BOX 4 5 def Shoot(self): 6 self.count = self.BULLET_BOX.See_Bullet() 7 if (self.count > 0): 8 self.count = self.BULLET_BOX.See_Bullet() 9 self.count = self.count - 1 10 self.BULLET_BOX.Add_Bullet(self.count) 11 print("砰——") 12 print("当前子弹数:",self.count) 13 else: 14 print("子弹不足!")
1 class BULLET_BOX: 2 def __init__(self): 3 self.bullet_count = 0 4 5 def Add_Bullet(self, count): 6 self.bullet_count = count 7 8 def See_Bullet(self): 9 return self.bullet_count
1 import time, PEOPLE, GUN, BULLET_BOX 2 3 from PEOPLE import * 4 from GUN import * 5 from BULLET_BOX import * 6 7 a = BULLET_BOX() 8 a.Add_Bullet(5) 9 b = GUN(a) 10 c = PEOPLE(b) 11 12 while True: 13 c.Fire() 14 time.sleep(1)
代码效果:
【敬畏能量 敬畏自然】