用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檔案,讀取最高紀錄 ...