Python制作复古地牢文字冒险游戏
?
巨洞冒險(xiǎn)(Colossal Cave Adventure),又名 ADVENT、Clossal Cave 或 Adventure,是八十年代初到九十年代末最受歡迎的基于文字的冒險(xiǎn)游戲。這款游戲還作為史上第一款“互動(dòng)小說(shuō)(interactive fiction)”類游戲而聞名。在 1976 年,一個(gè)叫 Will Crowther 的程序員開(kāi)發(fā)了這款游戲的一個(gè)早期版本,之后另一位叫 Don Woods 的程序員改進(jìn)了這款游戲,為它添加了許多新元素,包括計(jì)分系統(tǒng)以及更多的幻想角色和場(chǎng)景。
今天的技術(shù)發(fā)展已經(jīng)遠(yuǎn)遠(yuǎn)超越了那個(gè)時(shí)代,但我仍然對(duì)那個(gè)年代的游戲充滿好奇。今天我就來(lái)用Python游戲?qū)崿F(xiàn)一個(gè)復(fù)古風(fēng)格的地牢文字冒險(xiǎn)游戲。
游戲規(guī)則設(shè)計(jì)
游戲主要場(chǎng)景是迷宮,四周的#是墻壁,無(wú)法穿過(guò)。
M表示怪物,G表示哥布林,H表示玩家
遭遇怪物通常有幾率對(duì)你造成一定的傷害,并且遭遇怪物后怪物并不會(huì)消失,下一次再來(lái)到這個(gè)格子時(shí)還會(huì)再遭遇怪物
哥布林是友善的,遭遇不同類型的哥布林有幾率給你不同的增幅,加血,加小蘋果等,哥布林遭遇后會(huì)消失
移動(dòng)一格需要消耗1點(diǎn)血量
血量歸零則游戲失敗
游戲的核心就是:玩家需要合理規(guī)劃路線,在血量歸零前遭遇所有的怪物即可獲得游戲勝利
勝利分?jǐn)?shù)就是通關(guān)時(shí)剩余的小蘋果數(shù)量,小蘋果數(shù)量越多勝利分?jǐn)?shù)越高。排行榜按照勝利分?jǐn)?shù)排名。
地牢生成
地牢的生成算法是一個(gè)遞歸算法,算法過(guò)程有點(diǎn)類似分割房間。
首先,創(chuàng)造一塊邊長(zhǎng)為s的正方形場(chǎng)地,隨機(jī)一對(duì)x和y作為切割點(diǎn),x為橫向切割點(diǎn),y為縱向切割點(diǎn),通過(guò)把x行和y列的值全部設(shè)置為1(墻)把這塊場(chǎng)地切割成4份
兩條切割線構(gòu)成了4面墻(可以看作是從交點(diǎn)延展開(kāi)的四面墻),在其中三面墻上打個(gè)洞(置0表示空)使其整體連通,對(duì)這四個(gè)小房間進(jìn)行遞歸調(diào)用,直到無(wú)法切割為止。
用圖來(lái)解釋,黑色部分的墻是第一次切割,把整個(gè)場(chǎng)地切割成四個(gè)房間,然后留三個(gè)門。綠色則是第二次遞歸切割,一樣是切割成4個(gè)房間然后隨機(jī)留三個(gè)門。循環(huán)往復(fù),直到無(wú)法分割為止。
實(shí)現(xiàn)怪物和哥布林
因?yàn)楣治镏g有共同點(diǎn),哥布林之間也有共同點(diǎn)。所以可以很自然的使用抽象類去定義他們。
按照游戲設(shè)定,我們有富有的哥布林,醫(yī)生哥布林和游戲哥布林。
他們都是哥布林,都有類似的特性,那就是需要初始化概率參數(shù)(init)和發(fā)動(dòng)的能力(ability)。
所以我們可以用一個(gè)抽象類去規(guī)范化具體的哥布林子類。
如下圖所示,這是一個(gè)富有的哥布林的類,它繼承自Goblin,即我們上面的抽象類
這里我們重寫(xiě)了init和ability方法,使其具有特定的功能。
再看一下其他的哥布林也是類似的。
其他怪物也是用類似的方法去定義。
游戲控制器
游戲控制器控制著整個(gè)游戲,負(fù)責(zé)調(diào)用算法生成迷宮,生成怪物,把英雄放進(jìn)地牢,顯示文字提示等,也是游戲的主循環(huán)。
效果展示
最后,歡迎大家通過(guò)微信公眾號(hào)聯(lián)系我們。
微信公眾號(hào):320科技工作室。
總結(jié)
以上是生活随笔為你收集整理的Python制作复古地牢文字冒险游戏的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 一分钟讲透物联网和物联网的发展前景
- 下一篇: python计算工资工时_Python帮