經典貪吃蛇遊戲
上原始碼
#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...