貪吃蛇遊戲設計及演算法

2021-08-14 02:41:25 字數 2187 閱讀 6262

先是標頭檔案 然後就按照我們自頂向下逐步求精的理念來寫

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...