從0開始用python寫一個命令行小遊戲(十)

前幾天出去旅遊了,因此沒能更新文章,但轉眼間,「從0開始用python寫一個命令行小遊戲」系列已經更新到了第十篇。閒話少說,今天咱們要開始重構了!但第一件事仍是上篇的連接:從0開始用python寫一個命令行小遊戲(九)python

重構

控制遊戲結束

以前咱們是直接sys.exit()結束程序的,靈活性不高,尤爲是須要連續玩遊戲時。因此,咱們須要一個標誌變量,以標誌遊戲的結束。因此,在game_obj.py開頭加上:segmentfault

exited = False

而後把BaseZombie類中的die()方法修改成:命令行

def die(self):
    if self.die_to_exit:
        exited = True

而後把game.py中的Game類的start()方法的while循環改成:code

while not o.exited:
    pass            # 內部同前
這裏說明一下:爲了減小個人打字量,以後會把相似於 game.py中的Game類的start()方法」 改寫爲 Python path的形式,即: game.Game.start()方法。

而後咱們會發現,以前咱們使用的在遊戲最後判斷輸贏並輸出的代碼再也不能正確地判斷輸贏了,它永遠報告你輸了,即便你贏了也是如此。那怎麼辦呢?答案是:再使用一個標誌變量!遊戲

判斷輸贏

爲解決剛纔的問題,可使用另外一個標誌變量:plant_win。顧名思義,它指的是植物是否贏了。在game_obj.py開頭再次添加:get

plant_win = False

而後把game_obj.BaseZombie.die()方法改成:it

if self.die_to_exit:
    exited = True
    plant_win = True

在這個類的step()方法開頭添加:class

if self.x == 0:
    exited = True
    plant_win = False

至於如何根據這個標誌判斷輸贏,呃,大家本身想吧,太明顯了。變量

下集預告

下次,咱們將引入一個配置文件,使代碼變得更加優雅。敬請繼續關注!重構

相關文章
相關標籤/搜索