低配版貪吃蛇遊戲設計

2021-08-14 03:38:53 字數 4120 閱讀 3899

輸出字元矩陣

while

not 遊戲結束 do

ch=等待輸入

case ch do

『a』:左前進一步,break

『d』:右前進一步,break

『w』:上前進一步,break

『s』:下前進一步,break

endcase

輸出字元矩陣

endwhile

輸出 game over!!!

大致我們可以寫出蛇的移動的**

void snakemove(char control)

}

貪吃蛇的移動首先需要設計地圖及蛇的座標和長度

#include

#include

#include

#include

#include

#define snake_max_length 100

#define snake_head 'h'

#define snake_body 'x'

#define blank_cell ' '

#define snake_food '$'

#define wall_cell '*'

void printmap(void);

void snakemove(char);

void putfood(void);

void output(char);

void gameover(void);

char wheregonext(int,int,int,int);

char map[12][26] =

;int snakeheadx = 1;

int snakeheady = 2;

int snakebodyx[snake_max_length] = ;

int snakebodyy[snake_max_length] = ;

int snakelength = 2;

int foodx = 0, foody = 0;

int gamerunning = 1;

int score = 0;

通過stdlib.h下的rand()函式,我們可以在地圖上隨機產生食物

void putfood(void) 

map[foodx][foody] = snake_food;

}

最為複雜的是蛇移動後的長度增長及記錄座標的函式

int i;

int presnakeheadx = snakeheadx;

int presnakeheady = snakeheady;

snakemove(control);

if(map[snakeheadx][snakeheady] != blank_cell && map[snakeheadx][snakeheady] != snake_food)

else if (map[snakeheadx][snakeheady] == blank_cell)

map[snakebodyx[i]][snakebodyy[i]] = blank_cell;

for (i = snakelength - 3; i >= 0; i--)

snakebodyx[0] = presnakeheadx;

snakebodyy[0] = presnakeheady;

}else if (map[snakeheadx][snakeheady] == snake_food)

map[snakebodyx[i]][snakebodyy[i]] = snake_body;

snakelength ++;

for (i = snakelength - 3; i >= 0; i--)

snakebodyx[0] = presnakeheadx;

snakebodyy[0] = presnakeheady;

score ++;

putfood();

}

最後在寫好總控函式及完善細節基本就能完成乙個低配版的貪吃蛇設計了。

這裡需要注意的是可以用getch代替getchar或scanf,可以實現不用敲回車就能實現貪吃蛇的走動

char control;

srand(time(null));

putfood();

printmap();

printf(" 得分 %d",score);

while(gamerunning)

putchar('\n');

printf("game over\n");

return

0;}

最後是總的**彙總,和大佬們的**相比遜色許多了

純C 貪吃蛇低配版小遊戲 VS2017

include include include include include include using namespace std 定義全域性變數 int length 4 int speed 1 int map 20 20 int headx,heady 蛇頭座標 int score 0 ch...

Qt版貪吃蛇遊戲

qt版貪吃蛇遊戲 以下是windows 7下執行截圖 以下是ubuntu下執行截圖 我在windows下編寫好之後,將原始碼在ubuntu下重新編譯執行,就可以在ubuntu下執行,這也充分體現出qt一次編寫,到處執行的優勢。關於貪吃蛇遊戲的設計原理就不講了,具體可以參考我的部落格 c 版貪吃蛇遊戲...

貪吃蛇遊戲

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