先藉由自頂向下之邏輯使用偽代碼方式將架構完成
#include<...>
int ... ;
char ... ;
void 生成地圖() ;
void 生成蛇() ;
void 生成食物() ;
void 蛇移動() ;
void 畫面刷新() ;
void 喫() ;
void 避免覆蓋() ;
void 碰撞() ;
void 輸入() ;
生成地圖(){...}
生成蛇(){...}
生成食物(){...}
蛇移動(){...}
畫面刷新(){...}
喫(){...}
避免覆蓋(){...}
碰撞(){...}
輸入(){...}
主程序(){...}
逐步完善代碼
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
const int W = 12;
const int H = 12;
char map[12][12];
char key;
int direct = 4;
int food[2] = {8,7};
int head;
int snake[400][3];
void init(char map[12][12], int snake[400][3]);
void makeMap(char map[12][12],int snake[400][3],int food[]);
void move(int snake[400][3],int direct);
void makeFood(int food[]);
void showView(char map[12][12]);
int ifEat(int head, int food[2]);
int ifReprat(int snake[400][3], int x, int y);
int ifBump(int head);
void getKey();
int main() {
init(map, snake);
while (1) {
getKey();
system("cls");
Sleep(100);
move(snake, direct);
if (!food[0]&&!food[1]) {
makeFood(food);
}
makeMap(map, snake, food);
showView(map);
if (ifBump(head)) {
printf("遊戲結束,你的成績為:%d", head-4);
break;
}
getKey();
}
getchar();
return 0;
}
void init(char map[12][12], int snake[400][3]) {
%初始蛇頭蛇身
%建造遊戲外框(牆)
void showView(char map[12][12]) {
...
}
void move(int snake[400][3],int direct) {
%上下左右更改X、Y值
%喫 = 身體 + 1
}
void makeFood(int food[]) {
%隨機生成食物
%避開蛇身、牆
}
void makeMap(char map[12][12], int snake[400][3], int food[]) {
%建造遊戲外框(牆)
%新蛇頭蛇身
%食物
}
int ifEat(int head,int food[2]) {
%身長 + 1
}
int ifReprat(int snake[400][3],int x,int y) {
...
}
int ifBump(int head) {
...
}
void getKey() {
%輸入
%方向
}
大功告成