字符遊戲--貪喫蛇(智能)


先藉由自頂向下之邏輯使用偽代碼方式將架構完成

#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() {
    %輸入
    %方向
}

大功告成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章