摘要:好了,今天終于到了你們期待已久的多行新僵尸。好,開(kāi)始吧上篇鏈接從開(kāi)始用寫(xiě)一個(gè)命令行小游戲八。多行游戲一開(kāi)始我為了盡可能簡(jiǎn)化游戲,我用了一個(gè)單行數(shù)組,以模擬只有一行的游戲。一個(gè)形如的列表生成式等價(jià)于運(yùn)行后的列表。
好了,今天終于到了你們期待已久的多行+新僵尸。其實(shí)我本來(lái)想把它們放在兩個(gè)beta里解決的,但后來(lái)忘了,于是打包起來(lái),跳過(guò)beta 5,直接發(fā)布了beta 6,就是今天的結(jié)束狀態(tài)。好,開(kāi)始吧!上篇鏈接:從0開(kāi)始用python寫(xiě)一個(gè)命令行小游戲(八)。
多行游戲一開(kāi)始我為了盡可能簡(jiǎn)化游戲,我用了一個(gè)單行數(shù)組,以模擬只有一行的游戲。因?yàn)楝F(xiàn)在要多行,所以要把單行數(shù)組補(bǔ)充為多行數(shù)組。于是(因?yàn)閯?chuàng)建多行數(shù)組有一系列方法),我進(jìn)入IPython環(huán)境進(jìn)行測(cè)試各種可能的方法:
In [1]: test_list = [[0] * 10] * 5 In [2]: test_list Out[2]: [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] In [3]: test_list[0][0] = 1 In [4]: test_list Out[4]: [[1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0]] # 不太對(duì)! In [5]: test_list = [[0] * 10 for i in range(5)] In [6]: test_list Out[6]: [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] In [7]: test_list[0][0] = 1 In [8]: test_list Out[8]: [[1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] # 正常了
這里說(shuō)一說(shuō)In [5]處我的代碼意思:Python有一種叫做列表生成式的語(yǔ)法,它由一個(gè)表達(dá)式(如[0] * 10)和一個(gè)類(lèi)似for循環(huán)開(kāi)頭的語(yǔ)句(for i in range(5))組成,還有包裹整個(gè)列表生成式的方括號(hào)。一個(gè)形如[exp for i in seq]的列表生成式等價(jià)于:
result = [] for i in seq: result.append(exp)
運(yùn)行后的result列表。注意表達(dá)式可以包含i(也可以不包含),就像在真正的for循環(huán)里面一樣。回到正題,將game_obj.py中的board修改為:
board = [[0] * 10 for i in range(5)]
然后,將所有類(lèi)的__init__方法的pos參數(shù)都修改為x和y兩個(gè)參數(shù),并把所有board[self.pos]都改為board[self.y][self.x]。此外,game.py中的Game類(lèi)也需要修改,具體方法可參見(jiàn)我的GitHub上的v1.0 release代碼。然后,就···該讓新僵尸出場(chǎng)了!
新的僵尸說(shuō)實(shí)話,你剛才是不是以為我會(huì)說(shuō)“然后就沒(méi)有然后了”?不管怎么樣,開(kāi)始吧!我想設(shè)計(jì)一種一來(lái)到植物身邊就可以把它“踢飛”的僵尸,以增加游戲的刺激性。其實(shí),它的難點(diǎn)在于設(shè)計(jì),不是代碼:
class KickerZombie(BaseZombie): indicating_char = color(31, "k") # 紅色 def __init__(self, x, y, die_to_exit=False): super().__init__(x, y, 1, 30, die_to_exit) # 超大傷害
然后就是配置,如果你有興趣,可以效仿之前我的配置,這里我就不再多說(shuō)了。
下集預(yù)告下次,我們要做一些重構(gòu)工作了!歡迎繼續(xù)關(guān)注!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/42243.html
摘要:前幾天出去旅游了,所以沒(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)了!但第一件事還是上篇...
摘要:嗯,今天我們的從開(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ě)在類(lèi)里。初始化游戲定義自己的屬性先定義這些。我計(jì)劃使用格式,以第幾步出現(xiàn)作為鍵,以出現(xiàn)的僵尸類(lèi)型以后可能會(huì)出現(xiàn)不同類(lèi)型的僵尸和是否在它被消滅后結(jié)束游戲作為值。 Hey, everyone! 文章遲到了一天,但我今天心情很好,因?yàn)橛袃蓚€(gè)好消息,你們想先聽(tīng)哪個(gè)?哎,算了,反正都是好消息,一起聽(tīng)吧。 本游戲的v1.1 bet...
閱讀 1035·2021-10-19 11:42
閱讀 2986·2021-09-10 10:51
閱讀 694·2021-09-09 09:33
閱讀 1776·2021-09-01 10:43
閱讀 2783·2019-08-30 12:43
閱讀 3529·2019-08-30 11:24
閱讀 2134·2019-08-30 10:56
閱讀 2787·2019-08-29 11:00