先是標頭檔案 然後就按照我們自頂向下逐步求精的理念來寫
char blank_char = 』 『;
char wall_char = 『*』;牆
char snake_head_char = 『h』;蛇頭
char snake_body_char = 『x』;蛇身
char food_char = 『$』;食物
char map[10][10] = ;
int snakeheadx = 1, snakeheady = 1;
int snakebodyx[100] = , snakebodyy[100] = ;
int snakebodylen = 0;
int snaketailindex = -1;
int willbelonger = 0;
int foodx = 0, foody = 0;
int gamerunning = 1;
定義座標
void printmap()
}隨機放食物
void spawnfood()
map[foodx][foody] = food_char;
}遊戲主體
void initgame()
遊戲結束條件
void gameover()
蛇的移動
void snakemove(char control)
if (map[snakeheadx][snakeheady] != blank_char && map[snakeheadx][snakeheady] != food_char)
map[snakeheadx][snakeheady] = snake_head_char;
int moved = 0;
// if willbelonger, then make it longer
if (willbelonger)
snakebodyx[snaketailindex + 1] = prevsnakeheadx;
snakebodyy[snaketailindex + 1] = prevsnakeheady;
if (snaketailindex < 0) snaketailindex = 0;
map[prevsnakeheadx][prevsnakeheady] = snake_body_char;
snakebodylen++;
}// check if ate food
if (snakeheadx == foodx && snakeheady == foody)
// head has already moved, **move the body**
// if "no body" here or added tail just now, then it needn't move
if (snakebodylen <= 0 || moved) return;
map[snakebodyx[snaketailindex]][snakebodyy[snaketailindex]] = blank_char;
snakebodyx[snaketailindex] = prevsnakeheadx;
snakebodyy[snaketailindex] = prevsnakeheady;
map[prevsnakeheadx][prevsnakeheady] = snake_body_char;
// move tail index
snaketailindex = (snaketailindex - 1 + snakebodylen) % snakebodylen;
int main()
return 0;}
總之,只要按照貪吃蛇遊戲的規則,一點點根據我們學習過的知識由上而下地就可以完成這次的**,需要注意的是因為涉及到的變數名比較多,所以之前設定成「a,b , c」的時候就比較混亂,在寫比較複雜的**的時候還是應該用有意義的名字,比如」food「能是**更加清晰直觀。
貪吃蛇遊戲設計及演算法
首先需要明確設計應該完成的功能,使用鍵盤的上下左右鍵來控制蛇的方向 隨機產生食物,蛇吃到食物後,身體變長一節 設定邊界,蛇撞到牆或者吃到自身的時候,遊戲結束。以下是思路 1.一張地圖,四周有牆體。2.一條蛇,由蛇身和蛇頭組成。3.食物,蛇吃到食物後身體變長,並且重新生成乙個食物。3.蛇需要移動,這是...
字元版本貪吃蛇遊戲設計及演算法
貪吃蛇,是一款經典的益智遊戲。我們可以通過演算法捕捉和傳遞智慧型,設計出能自動跑著吃食物的智慧型蛇。有不少人對此研究,設計出了很棒的演算法,如圖 歸納一些比較高階的演算法為三類 1.寬度優先搜尋最短路徑 2.走哈密頓迴路 3.特殊決策 這裡我主要介紹最簡單的貪婪演算法及整個遊戲的設計。首先是自動尋路...
貪吃蛇遊戲
貪吃蛇遊戲 結構化程式設計 c語言程式設計 重要的的是結構化的程式設計思想 include include include include include include define field width 300 就做20個格仔的 define field height 300 define f...