模擬射擊文字類游戲(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)

 

代碼效果:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM