摘要:前幾天出去旅游了,所以沒(méi)能更新文章,但轉(zhuǎn)眼間,從開(kāi)始用寫(xiě)一個(gè)命令行小游戲系列已經(jīng)更新到了第十篇。閑話少說(shuō),今天我們要開(kāi)始重構(gòu)了但第一件事還是上篇的鏈接從開(kāi)始用寫(xiě)一個(gè)命令行小游戲九。所以,我們需要一個(gè)標(biāo)志變量,以標(biāo)志游戲的結(jié)束。
前幾天出去旅游了,所以沒(méi)能更新文章,但轉(zhuǎn)眼間,“從0開(kāi)始用python寫(xiě)一個(gè)命令行小游戲”系列已經(jīng)更新到了第十篇。閑話少說(shuō),今天我們要開(kāi)始重構(gòu)了!但第一件事還是上篇的鏈接:從0開(kāi)始用python寫(xiě)一個(gè)命令行小游戲(九)。
重構(gòu) 控制游戲結(jié)束之前我們是直接sys.exit()結(jié)束程序的,靈活性不高,尤其是需要連續(xù)玩游戲時(shí)。所以,我們需要一個(gè)標(biāo)志變量,以標(biāo)志游戲的結(jié)束。所以,在game_obj.py開(kāi)頭加上:
exited = False
然后把BaseZombie類中的die()方法修改為:
def die(self): if self.die_to_exit: exited = True
然后把game.py中的Game類的start()方法的while循環(huán)改為:
while not o.exited: pass # 內(nèi)部同前
這里說(shuō)明一下:為了減少我的打字量,之后會(huì)把類似于 “game.py中的Game類的start()方法” 改寫(xiě)為Python path的形式,即:game.Game.start()方法。
然后我們會(huì)發(fā)現(xiàn),之前我們使用的在游戲最后判斷輸贏并輸出的代碼不再能正確地判斷輸贏了,它永遠(yuǎn)報(bào)告你輸了,即使你贏了也是如此。那怎么辦呢?答案是:再使用一個(gè)標(biāo)志變量!
判斷輸贏為解決剛才的問(wèn)題,可以使用另一個(gè)標(biāo)志變量:plant_win。顧名思義,它指的是植物是否贏了。在game_obj.py開(kāi)頭再次添加:
plant_win = False
然后把game_obj.BaseZombie.die()方法改為:
if self.die_to_exit: exited = True plant_win = True
在這個(gè)類的step()方法開(kāi)頭添加:
if self.x == 0: exited = True plant_win = False
至于如何根據(jù)這個(gè)標(biāo)志判斷輸贏,呃,你們自己想吧,太明顯了。
下集預(yù)告下次,我們將引入一個(gè)配置文件,使代碼變得更加優(yōu)雅。敬請(qǐng)繼續(xù)關(guān)注!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/42280.html
摘要:但是,來(lái)都來(lái)了,我們的編程還是要繼續(xù)的嘛今天的主題配置文件首先,上篇鏈接從開(kāi)始用寫(xiě)一個(gè)命令行小游戲十配置文件匹配植物首先,我要強(qiáng)調(diào)一點(diǎn)所有需要變量匹配的地方類似別的語(yǔ)言中的,都可以用配置文件主要是字典。 第11篇!第11篇!第11篇!?。≌f(shuō)實(shí)話,我真沒(méi)想過(guò)文章會(huì)更新到10以上。但是,來(lái)都來(lái)了,我們的編程還是要繼續(xù)的嘛!今天的主題:配置文件!首先,上篇鏈接:從0開(kāi)始用python寫(xiě)一個(gè)命...
摘要:嗯,今天我們的從開(kāi)始用寫(xiě)一個(gè)命令行小游戲系列總算走到了我發(fā)布的時(shí)候。玩過(guò)我的正式版的話,你會(huì)發(fā)現(xiàn)現(xiàn)在的游戲還和正式版差別很大。好,現(xiàn)在就來(lái)順便補(bǔ)充一下,上次方法后追加僵尸被打敗是完成了好好慶祝一下 嗯,今天我們的從0開(kāi)始用python寫(xiě)一個(gè)命令行小游戲系列總算走到了我發(fā)布v1.0 beta 1的時(shí)候。玩過(guò)我的1.0正式版的話,你會(huì)發(fā)現(xiàn)現(xiàn)在的游戲還和正式版差別很大。不管怎么樣,現(xiàn)在就開(kāi)始...
摘要:講點(diǎn)搞笑的,最近在開(kāi)發(fā)時(shí),發(fā)現(xiàn)最令程序猿頭疼的一點(diǎn)就是沒(méi)有語(yǔ)句。但自動(dòng)的僵尸呢哎,別急,那是后話下集預(yù)告下次,我要把游戲變得全自動(dòng)具體工作令僵尸自動(dòng)出現(xiàn),和讓用戶用命令控制游戲這些工作完成后,就可以發(fā)布了歡迎繼續(xù)關(guān)注 嗯,還是我,我又回來(lái)了——以后文章就兩天一篇吧。講點(diǎn)搞笑的,最近在開(kāi)發(fā)v1.1 beta 3時(shí),發(fā)現(xiàn)Python最令程序猿頭疼的一點(diǎn)就是沒(méi)有switch/case語(yǔ)句。要...
摘要:今天我時(shí)間有點(diǎn)緊張,所以不說(shuō)廢話了,直接進(jìn)入正題。好現(xiàn)在,游戲可以自動(dòng)產(chǎn)生僵尸了。然后呢用戶可控的植物真正的植物大戰(zhàn)僵尸游戲可以讓玩家用鼠標(biāo)控制游戲。由于這是命令行游戲,所以我們得用命令控制。 今天我時(shí)間有點(diǎn)緊張,所以不說(shuō)廢話了,直接進(jìn)入正題。前作鏈接: 從0開(kāi)始用python寫(xiě)一個(gè)命令行小游戲(一) 從0開(kāi)始用python寫(xiě)一個(gè)命令行小游戲(二) 從0開(kāi)始用python寫(xiě)一個(gè)命令行...
摘要:今天就開(kāi)始由于整個(gè)游戲會(huì)有自己的一些屬性和行為,所以我決定把它編寫(xiě)在類里。初始化游戲定義自己的屬性先定義這些。我計(jì)劃使用格式,以第幾步出現(xiàn)作為鍵,以出現(xiàn)的僵尸類型以后可能會(huì)出現(xiàn)不同類型的僵尸和是否在它被消滅后結(jié)束游戲作為值。 Hey, everyone! 文章遲到了一天,但我今天心情很好,因?yàn)橛袃蓚€(gè)好消息,你們想先聽(tīng)哪個(gè)?哎,算了,反正都是好消息,一起聽(tīng)吧。 本游戲的v1.1 bet...
閱讀 2639·2023-04-25 19:47
閱讀 3474·2019-08-29 17:18
閱讀 933·2019-08-29 15:26
閱讀 3429·2019-08-29 14:17
閱讀 1304·2019-08-26 13:49
閱讀 3422·2019-08-26 13:22
閱讀 3138·2019-08-26 10:44
閱讀 2774·2019-08-23 16:51