C語言之貪吃蛇!

2021-10-01 17:16:57 字數 2380 閱讀 4711

用c語言寫貪吃蛇小遊戲,操作方式:w a s d分別控制蛇的上、左、下、右運動!

蛇頭撞到牆或自身程式結束,每吃掉乙個食物,蛇身長增加乙個,蛇的運動會變快!

源**如下:

//有問題,請提問!

#include #include #include #include#include 巨集定義//

#define mapwidth 60

#define mapheight 30

#define snakesize 100

///資料設計/

struct

food;

struct

snake;

/全域性變數//

int changeflag = 0; //蛇的增長標誌.

char key = 's'; //初始化蛇向下運動

/模組化設計/

//1. 畫地圖

void drawmap();

//2. 產生食物

void createfood();

//3. 按鍵操作

void keydown();

//4. 蛇的狀態:判斷是否結束遊戲

int snakestatus();

//5. 輔助函式: 游標移動

void gotoxy(int x, int y);

int main(void)

gotoxy(mapwidth / 2 - 10, mapheight / 2);

printf("game over!");

system("pause");

return 0;

}1. 畫地圖/

// #: 食物 @: 蛇頭, 邊框 *:蛇身

void drawmap()

列印橫邊框

for (int i = 0; i <= mapwidth; i += 2) // █占用兩個字元.

//2. 畫蛇

確定蛇的長度,速度

snake.length = 3;

snake.speed = 300;

確定蛇頭的座標(地圖**)

snake.x[0] = mapwidth / 2;

snake.y[0] = mapheight / 2;

畫蛇頭gotoxy(snake.x[0], snake.y[0]);

printf("@");

畫剩下身體

for (int i = 1; i < snake.length; i++)

//3. 畫食物

產生食物座標

food.x = rand() % (mapwidth - 4) + 2; //隨機座標.[2-57]

food.y = rand() % (mapheight - 2) + 1; //隨機範圍在地圖長和寬內, 且平移至地圖內[1 28]

列印食物

gotoxy(food.x, food.y);

printf("#");

}//2. 產生食物

void createfood()

}if (flag== 1)

} gotoxy(food.x, food.y);

printf("#");

snake.length++;

snake.speed -= 10;

changeflag = 1;

} //產生新食物

}//3. 按鍵操作///

void keydown()

//無按鍵處理,蛇自由移動

/* *蛇移動時候先擦去蛇尾的一節

*changeflag為0表明此時沒有吃到食物,因此每走一步就要擦除掉蛇尾,以此營造乙個移動的效果

*為1表明吃到了食物,就不需要擦除蛇尾,以此營造乙個蛇身增長的效果

*/ if (!changeflag)

//後面蛇身的移動

for (int i = snake.length - 1; i > 0; i--)

//2.有按鍵

switch (key)

gotoxy(snake.x[0], snake.y[0]);

printf("@"); //列印出蛇頭(前進)

changeflag = 0;

//列印完蛇身後將游標移到螢幕最上方,避免游標在蛇身處一直閃爍

gotoxy(mapwidth + 2, 0);

}//4. 蛇的狀態:判斷是否結束遊戲

int snakestatus()

return 1; //記得返回1.

}//5. 輔助函式: 游標移動

void gotoxy(int x, int y)

C語言貪吃蛇

include include include include include include define screen width 40 遊戲螢幕寬度 define screen length 15 遊戲螢幕長度 define start x 16 螢幕起始x座標 define start y ...

C語言 貪吃蛇

include include include define framewidght 22 define frameheight 22 short generaterandnumber short a,short b void posconsolecursor short x,short y voi...

C語言貪吃蛇

親測devc 編譯器完美執行 define crt secure no warnings include include include include void readini file fphead,int score,char argv 建立或開啟乙個和執行檔案對應的ini檔案,讀取最高紀錄 ...