自己動(dòng)手制作貪食蛇游戲

在之前的文章中,我po過(guò)這么一張圖片。

snake

玩過(guò)的都知道這是簡(jiǎn)(chou)易(lou)版的貪食蛇游戲。當(dāng)然我不會(huì)告訴你這是用傳說(shuō)的c語(yǔ)言寫(xiě)的。

在覺(jué)得自己能親手打出這個(gè)很酷(er)炫(huo)的同時(shí),你有沒(méi)有想過(guò)如果是自己去編寫(xiě)要如何去做呢?好了,今天我就來(lái)兌現(xiàn)一下我說(shuō)過(guò)的話,給大家展示一下貪食蛇是怎么制作出來(lái)的。以及一個(gè)我認(rèn)為非常重要的學(xué)習(xí)方法。

黃金十二宮

標(biāo)題純粹好玩,請(qǐng)忽略

當(dāng)我重新整理完代碼,制作完課件之后,發(fā)現(xiàn)整個(gè)貪食蛇的制作正好分為了十二個(gè)步驟。

你好,世界

萬(wàn)變不離其中,一切都從最簡(jiǎn)單的開(kāi)始。

會(huì)飛的“你好,世界”

接著就是使用圖形庫(kù),讓字符“飛起來(lái)”。體驗(yàn)一下圖形庫(kù)是如何控制終端窗口的。

提示窗口

好了,前兩部玩過(guò)了,接下來(lái)要干點(diǎn)正事了。游戲中我們要先做什么呢?我們先來(lái)繪制一個(gè)消息提示窗口,用來(lái)提示按鍵的使用,游戲結(jié)束等信息吧。

嗯,提示窗口放在下面,當(dāng)然你也可以選擇放在上面哈。

輸出提示

有了提示窗口,不能空著。那就要寫(xiě)點(diǎn)東西唄。

看著是不是很簡(jiǎn)單?可不要小看哦。有時(shí)候我們認(rèn)為簡(jiǎn)單的,往往不是,而認(rèn)為難的卻會(huì)意想不到的容易。

游戲窗口

來(lái)了,這次得給我們的貪食蛇設(shè)置一個(gè)空間了。有了提示窗口的經(jīng)驗(yàn),這步簡(jiǎn)直就是小菜~

小蛇誕生

樣子畫(huà)好了,就可以畫(huà)我們的小蛇啦。從最小的開(kāi)始吧。

瞧,最開(kāi)始就一個(gè)點(diǎn)~

接收輸入

既然是游戲,那總得有地方接收輸入來(lái)控制。這步就來(lái)制作接收按鍵信息的功能。

控制小蛇

接收了輸入后,就可以判斷按鍵信息來(lái)控制小蛇啦。

小蛇能動(dòng)啦~ 是不是覺(jué)得蠻興奮的。

小蛇覓食

小蛇已經(jīng)能動(dòng)啦,那我們就來(lái)給小蛇投食,讓小蛇來(lái)找吃的吧。注意,食物每次出現(xiàn)的位置不一樣哦。

做一把上帝

哈哈,這么名字有點(diǎn)牛,實(shí)在想不到啥好名字了~

之前我們只有按鍵后小蛇才能動(dòng),這樣沒(méi)有天理啊。我們要讓小蛇自動(dòng)運(yùn)行起來(lái)~

仔細(xì)看是不是能看到每吃一個(gè)食物,速度就越快一些?

越吃越長(zhǎng)

萬(wàn)事俱備,只欠東風(fēng)

跑了這么一路,我們的貪食蛇終于只剩下最后一個(gè)步驟了。那就是越吃越長(zhǎng)~

牛逼了~我們的貪食蛇完成啦!

精雕細(xì)琢

哎,不對(duì),我們這蛇好像有點(diǎn)問(wèn)題。仔細(xì)觀察的你有沒(méi)有發(fā)現(xiàn)一些問(wèn)題呢?

對(duì)啦,有兩個(gè)問(wèn)題:

  • 長(zhǎng)身體不是在吃到食物的時(shí)候,而是快要結(jié)束的時(shí)候
  • 蛇頭碰到邊界的時(shí)候沒(méi)死,而是尾巴碰到的時(shí)候

所以寫(xiě)完代碼記得測(cè)試!!!

分而治之

好了,嘮叨了這么久,我要祭出這次文章的主題

divide and conquer

在編程學(xué)習(xí)工作過(guò)程中,乃至任何學(xué)習(xí)過(guò)程中,重要的思想之一就是分而治之。

比如像貪食蛇這樣的游戲,對(duì)于沒(méi)有經(jīng)驗(yàn)的人來(lái)說(shuō)是不是兩眼一抹黑,感覺(jué)手足無(wú)措,不知道如何下手?那如果我把整個(gè)過(guò)程分解成了十二個(gè)步驟,是不是覺(jué)得好像沒(méi)什么難的?不就是畫(huà)個(gè)框,打點(diǎn)字,動(dòng)一下,長(zhǎng)一點(diǎn)?

是的,其實(shí)編程沒(méi)有這么難,其實(shí)學(xué)習(xí)新知識(shí)能夠正確分解也就沒(méi)有這么難了。

希望大家在編程的道路上越走越黑

更多信息請(qǐng)關(guān)注我的微信公眾號(hào)《楊小偉的世界》,想要學(xué)習(xí)的同學(xué)可以報(bào)名我《通過(guò)c理解計(jì)算機(jī)系統(tǒng)》的課程。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 經(jīng)典游戲貪吃蛇想必大家都玩過(guò)。你能想出這么經(jīng)典的游戲要怎么創(chuàng)新才能比原作更好玩嗎?貪吃蛇大作戰(zhàn)就做到了,而且表現(xiàn)異...
    漠瑞雪閱讀 2,677評(píng)論 1 2
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,814評(píng)論 25 708
  • 林北北 | 文 昨天養(yǎng)樂(lè)多問(wèn)我,你會(huì)一輩子只愛(ài)一個(gè)人嗎? 我說(shuō)我不會(huì),畢竟我現(xiàn)在愛(ài)著我燦烈,以后還要愛(ài)我男朋友呢!...
    鹿慕溪水_閱讀 568評(píng)論 0 0
  • 前兩天,兒子跟我說(shuō),學(xué)校里中午可以帶自己的東西吃了,于是,他帶了兩袋面包,一袋里有兩小片。晚上回家路上,問(wèn)他:“今...
    寶寶靈閱讀 254評(píng)論 0 1
  • 工作實(shí)習(xí)了一個(gè)月,等畢業(yè)回去還得實(shí)習(xí)一個(gè)月才能看是否能轉(zhuǎn)正,三方也要拖到畢業(yè)后才能搞定。信誓旦旦說(shuō)要考研,...
    朱憲清閱讀 178評(píng)論 0 1