模拟射击文字类游戏(Python)

Posted 锤 子 猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模拟射击文字类游戏(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)

 

代码效果:

 

 

以上是关于模拟射击文字类游戏(Python)的主要内容,如果未能解决你的问题,请参考以下文章

一个文字类RPG游戏框架(走过路过别错过)C++

Python制作自己的第一人称射击游戏

练手项目:利用pygame库编写射击游戏

基于单片机T6963C液晶显示的模拟射击训练游戏-课设毕设全套资料

什么时候应该在 C++ 中使用文字类?

将 k8s 制作成 3D 射击游戏,好玩到停不下来 | 文末福利