C 實現貪吃蛇遊戲 免費附原始碼

2021-10-02 00:27:22 字數 3096 閱讀 3726

經典貪吃蛇遊戲

上原始碼

#include #include #include #pragma comment(lib,"user32.lib")

using namespace std;

// 宣告所有函式

void pos(int x, int y);

void creatmap();

void initsnake();

int biteself();

void createfood();

void cantcrosswall();

void snakemove();

void pause();

void gamecircle();

void welcometogame();

void endgame();

void gamestart();

#define u 1

#define d 2

#define l 3

#define r 4 // 蛇的狀態 u:上 d:下 l:左 r:右

// 蛇身的乙個節點

struct snake

;int score = 0, add = 10; // 總得分與每次吃食物得分。

int status, sleeptime = 200; // 每次執行的時間間隔

snake *head, *food; // 蛇頭指標,食物指標

snake *q; // 遍歷蛇的時候用到的指標

int endgamestatus = 0; // 遊戲結束的情況 1:撞到牆 2:咬到自己 3:主動退出遊戲

// 設定游標位置

void pos(int x, int y)

// 建立地圖

void creatmap()

for (i = 1; i < 26; i++) // 列印左右邊框

}// 初始化蛇身

void initsnake()

while (tail != null) // 從頭到為,輸出蛇身

}// 判斷是否咬到了自己

int biteself()

self = self->next;

}return 0;

}// 隨機出現食物

void createfood()

food_1->y = rand() % 24 + 1;

q = head;

while (q->next == null)

q = q->next;

}pos(food_1->x, food_1->y);

food = food_1;

cout << "■";

}// 不能穿牆

void cantcrosswall()

}// 蛇前進:上u 下d 左l 右r

void snakemove()

score = score + add;

createfood();

} else // 如果沒有食物

pos(q->next->x, q->next->y);

cout << " ";

free(q->next);

q->next = null;

} }

if (status == d)

score = score + add;

createfood();

}else // 沒有食物

pos(q->next->x, q->next->y);

cout << " ";

free(q->next);

q->next = null;

} }

if (status == l)

score = score + add;

createfood();

} else // 沒有食物

pos(q->next->x, q->next->y);

cout << " ";

free(q->next);

q->next = null;}}

if (status == r)

score = score + add;

createfood();

} else // 沒有食物

pos(q->next->x, q->next->y);

cout << " ";

free(q->next);

q->next = null;

} }

if (biteself() == 1) // 判斷是否會咬到自己

}// 暫停

void pause()

}}// 控制遊戲

void gamecircle()

else if (getasynckeystate(vk_down) && status != u)

else if (getasynckeystate(vk_left) && status != r)

else if (getasynckeystate(vk_right) && status != l)

else if (getasynckeystate(vk_space))

else if (getasynckeystate(vk_escape))

else if (getasynckeystate(vk_f1))

}} else if (getasynckeystate(vk_f2))

}} sleep(sleeptime);

snakemove();

}}// 開始介面

void welcometogame()

// 結束遊戲

void endgame()

else if (endgamestatus == 2)

else if (endgamestatus == 3)

pos(24, 13);

cout << "您的得分是:" << endl << score;

exit(0);

}// 遊戲初始化

void gamestart()

void main()

貪吃蛇遊戲(附原始碼)

貪吃蛇遊戲,現在還有很多bug。等待大家挑錯。難度 1最難,500最簡單。吃夠20個食物就可以過關了 呵呵。無聊時候玩玩吧 include include include include const int maxn 100 const int n 20 struct node int map ma...

貪吃蛇遊戲(附原始碼)

貪吃蛇遊戲,現在還有很多bug。等待大家挑錯。難度 1最難,500最簡單。吃夠20個食物就可以過關了 呵呵。無聊時候玩玩吧 include include include include const int maxn 100 const int n 20 struct node int map ma...

貪吃蛇原始碼

去年五一寫的乙個貪吃蛇遊戲,在tc3下執行成功,過幾天加點注釋 大家先湊和看吧.hoho.include include include include include include define vk esc 0x11b define vk up 0x4800 define vk down 0x...