C 簡單貪吃蛇

2021-09-16 21:06:03 字數 2140 閱讀 2293

}一定要自己定義set_level(),view_score()等函式,main()函式中主要運用了函式指標來縮短**。其中忽略了必要的#include標頭檔案和using指示(如 using namespace std;),請自行補充。

我的想法是有

兩個線性表

乙個字串

()

定義第乙個線性表的**片段如下:

int coord[sz][2]=},length=1,

fd=;

也就是乙個維數為2的一維的整型陣列,length即蛇身的長度,fd儲存食物的座標,sz是自己定義的乙個常量:

const int cols=60,lines=20,sz=cols*lines;
其中的cols和lines是很重要的常量,它們代表輸出字元的行數和列數,即字元組成的乙個長方形的長和寬,包括有空格(spac),回車(carriage return)和其他的字元,如蛇身(』*』),蛇的食物(』$』),設定邊界(』#』),都可以自己可以定義,如下例:

const char spac=' ',snk_body='*',snk_fd='$';
等等……

()

定義第二個線性表的**片段如下:

char dir=;
enum ;
case east:
string s;

init(s,cols,lines);

事實上,函式init(s,cols,lines)更有用,你總得設定一些c_return和bound吧,

但我不貼出這個函式的**,因為我內部實現我寫錯了,導致整個遊戲執行的不好,只能吃乙個球,有時候還吃不到。

你還得定義乙個整型,儲存遊戲時的分數,如下:

int score;
輸出是整個程式中最簡單的一句:

print: 

cout

其中check檢查是否吃到食物是否死亡,檢查死亡很方便,判斷蛇的下一步是不是吃到蛇身就行了,沒必要遍歷蛇身元素,可以用到()中資料結構的特性方便實現。

sports把除蛇頭之外的元素的方向(儲存在dir中,見())依次賦值為它的前乙個元素的dir值,

即蛇向前移動,然後根據不同的方向按不同方式增減座標,如下所示:

/*start sports*/

for(int i=length-1;i!=0;--i)

dir[i]=dir[i-1];

for(int j=0;j!=length;++j)

switch(dir[j])

/*finished sports*/

其中/**/之間的內容為注釋,在編譯時會忽略,不增加執行時檔案的大小,在c++ primer中也有講到,博主就是看這本書細緻地學習了c++的。

到這裡完了。

再添一張遊戲時的圖:

本來應該蛇身長度+1的,並且賦有正確的方向和座標,卻只是加了分,果然程式中有錯誤。

C 簡單貪吃蛇遊戲

用c 實現的非常簡單的非圖形介面的簡單貪吃蛇遊戲 include include include include include includeusing namespace std void transport short short short void set short,short void...

簡單的「貪吃蛇」

近日無事,看見很多地方有人在詢問貪吃蛇程式的做法,剛好我前段時間在公司做手持終端應用開發時,利用乙個午休時間自己也寫了個貪吃蛇程式玩玩,效果和手機 遊戲機上一樣,但是程式是在公司電腦上,由於資訊保安,是拷不出來的,這裡就給大家講講如何寫貪吃蛇程式吧。其實貪吃蛇遊戲程式是很簡單的,只要大家坐下來細心地...

C 貪吃蛇二

小菜學習winform 一 貪吃蛇 說到oo可能一說一大堆,這裡面小菜只是簡單的把貪吃蛇抽象出來,先來說蛇,具有的屬性和行為,屬性比如蛇的長度 蛇的寬度 蛇的行動方向等 行為比如是否吃到食物 是否撞牆等,那我們可以抽象乙個蛇的類,這樣實現 1 using system 2using system.c...