《純C 寫的貪吃蛇遊戲》

2021-07-10 21:01:33 字數 1940 閱讀 1754

對遊戲感興趣的,初學c++者可以看看,我把步驟寫的很詳細了,希望對你們有所幫助

#include#include#include#include#include#includeusing namespace std;

typedef struct

point;

char map[22][22]; //定義乙個22*22的地圖(含邊界)

point snake[400], food, next; //定義蛇、食物、下一步蛇頭的位置

int head,tail; //用於儲存蛇頭和蛇尾的下標

int grade, length, autotime; //遊戲等級、蛇長、自動前進所需時間

char direction; //前進方向 根據你按下的是哪個字母字元判斷運動的方向

//用inline定義內聯函式節省程式執行時的呼叫開銷

//重新整理地圖

inline void update(char map[22], int grade, int length, int autotime) 關鍵是看什麼時候清屏(目前我覺得是等級上公升和蛇前進的時間縮短時)

}//歡迎介面

inline void hello()

else

update(map, grade, length, autotime);//重新整理地圖 (由於在主函式中是先呼叫init()函式,而在init()函式中已經給update中的變數初始化了,它們是全域性變數)

//倒計時結束後就會進入update()函式 進入該函式後就會被清屏,即進入遊戲介面 }}

//隨機生成食物位置

inline void f()

while (map[food.x][food.y] != ' '); //因為產生的隨機數是0~21之間的, 在這之間的都是空格,每產生乙個隨機數之後就會跳出迴圈

map[food.x][food.y] = 'q';//食物為「q」 將該位置放置乙個食物

}inline void init() //初始化

inline int go() //預前進

switch (direction)

if (next.x == 0 || next.x == 21 || next.y == 0 || next.y == 21)//撞到邊界

if (map[next.x][next.y] != ' '&&!(next.x == food.x&&next.y == food.y))//吃到自己

if (length == 400)//最長蛇長

return 1;

}//吃到食物

inline void eat()

map[next.x][next.y] = '@';//蛇頭位置變化 即原本是蛇頭的下一步的位置現在變蛇頭

map[snake[head].x][snake[head].y] = 'o';//原蛇頭位置變化為蛇身

head = (head + 1) % 400;//蛇頭下標加1

snake[head].x = next.x; snake[head].y = next.y;//蛇頭下標變化

f(); //隨機生成食物位置

update(map, grade, length, autotime);//重新整理地圖 成功的吃到乙個食物後重新整理地圖顯示吃後的結果

}//沒吃到食物

inline void failure()

//main函式

int main()

else

return 0; //失敗或者勝利,遊戲結束

}return 0;

}

用C語言寫貪吃蛇遊戲

輸入標頭檔案,設定函式,其中snakemove 是實現蛇運動的函式,put food 是隨機放置金幣的函式,printmap 是輸出影象的函式,x y記錄蛇尾的座標,snakex和snakey記錄蛇的初始座標。include include include include define snake ...

貪吃蛇遊戲

貪吃蛇遊戲 結構化程式設計 c語言程式設計 重要的的是結構化的程式設計思想 include include include include include include define field width 300 就做20個格仔的 define field height 300 define f...

貪吃蛇遊戲

include include include include include 使用當前時間做種子 enum dir 列舉型別enum dir 圍牆 class fencef 定義物件 畫框框 void fence initfence 顯示框框 void fence outputf int snak...