C語言實現貪吃蛇

2021-08-28 09:19:10 字數 2178 閱讀 1237

貪吃蛇是我們耳熟能詳的遊戲,遊戲思路很簡單,我們操縱一條蛇在螢幕上游走尋找食物,當吃到食物時蛇就會變長,當蛇頭碰到牆壁或者自己的身體時,此時蛇就會死亡,而遊戲也就結束了。

那麼我們設計遊戲的時候,需要注意三點:

(1)及時重新整理蛇的位置

(2)蛇吃到食物時,蛇的身體會變長,同時及時重新整理新的食物

(3)蛇在遇到牆壁和自己的身體時會死亡

直接看**:

#include#include#include#include#include//設定蛇的活動範圍為l

#define l 20

//繪製遊戲介面時,蛇的和食物的代號

#define snake 1

#define food 2

//定義蛇的結構體

struct snake ;

//初始化蛇鍊錶,length為鍊錶長度

snake* initsnake(int length);

//釋放蛇鍊錶

void freesnake(snake* head);

//重新整理蛇的位置

void snakemove(int x, int y, snake* head);

//更新食物的位置

void refreshfood(int* x, int* y, snake* head);

//繪製遊戲介面

bool drewmap(int score,snake* head, int foodx, int foody);

int main()

} //更新蛇頭位置

headx += movex;

heady += movey;

//判斷蛇是否吃到食物

if (headx == foodx && heady == foody) else

//休眠,也就是控制蛇的速度

sleep(500/sqrt(score+1));

//清屏

system("cls");

//繪製遊戲介面並判斷是否結束遊戲

if (!drewmap(score,head, foodx, foody))

} freesnake(head);

printf("you die!\n");

system("pause");

}//重新整理蛇的位置

//思路:中間的節點都不變,把最後一位節點放到鍊錶開頭並且更新x,y

void snakemove(int x, int y, snake* head)

p->next->next = head->next;

head->next = p->next;

p->next = null;

head->next->x = x;

head->next->y = y;

}//重新整理食物,確保食物出現的位置不在蛇身上以及牆壁上

void refreshfood(int* x, int* y, snake* head)

p = p->next;

} if (p != null)

break; }}

//初始化蛇,產生長度為length+1的鍊錶,返回的頭指標不存放資料

snake* initsnake(int length)

return re;

}//遊戲結束後,釋放鍊錶

void freesnake(snake* head)

freesnake(head->next);

free(head);

}//繪製遊戲介面,同時檢測是否需要結束遊戲

bool drewmap(int score,snake* head, int foodx, int foody) ;

snake *p = head->next;

while (p != null)

map[p->x][p->y] = snake;

p = p->next;

} map[foodx][foody] = food;

//繪製介面

printf("score:%d\n", score * 10);

for (int i = 0; i < l; i++)

printf("\n");

}}

貪吃蛇 C語言實現

首先 必備知識棧 由於是用c實現,c的基礎就不廢話了 1.鍊錶相關知識的熟練使用 2.動態記憶體的簡單使用與釋放方法 3.隨機數的生成與儲存 4.監聽鍵盤函式的使用 5.window.h中基本的控制台函式 6.時間函式的簡單應用 其次 下面是實現的具體 有詳細的注釋解釋 pragma comment...

C語言實現貪吃蛇

include include include include include define up w define down s define left a define right d define quit q 函式宣告 void welcome 開始介面 void chose 選擇難度 vo...

C語言實現貪吃蛇

include include easyx圖形庫 include include 視窗大小 enum wincoord 座標 typedef struct coordinate coord 蛇struct snake snake 食物 struct food food 方向 enum positio...