C 貪吃蛇設計

2021-06-22 05:08:47 字數 1973 閱讀 6850

class map

; enum;

char map[row][col]; //地圖

map();

void drawmap(); //繪製地圖

bool isvaildpoint(int x, int y);

};

1.

利用列舉來定義常量,在類外部可以通過作用域解析來獲取列舉常量,便於所有類的交流.

2.通過二維陣列儲存地圖,在構造的時候讀取並繪製地圖,

3.定義乙個外部介面,用於判斷點是否在地圖上.

class snack;

class dessert

//獲得積分

void makenewdessert(const snack &snack);

};

1.使用前向宣告,讓編譯器知道snack類的存在

2. makenewdessert

更新甜點.

class dessert;

class map;

class point

};class snack

bool isbody(int x, int y)const; //是否是蛇身的一部分

//移動蛇身

int movebody(map &map, dessert &d);

//操作符入佇列

void inmoves(move d);

int getv();

};

1.使用佇列快取操作.

2.蛇要移動的時候,先從操作佇列中讀取操作,如果為空,預設移動的方向為當前的方向.

參考**:

int snack::movebody(map &map, dessert &d)	}	

if(!flag) //沒有操作時自動行走

move = this->dirction;

this->dirction = move; //更新運動方向

switch(move)

if(!map.isvaildpoint(p.x, p.y) || this->isbody(p.x, p.y))

p.draw('#'); //畫新蛇頭

head.draw('*'); //更新舊蛇頭

if(d.x == p.x && d.y == p.y)

tail.draw(' '); //去掉舊蛇尾

for(int i = 0; i < len - 1; i++)

body[len - 1] = p;

return 2;

}void snack::inmoves(move d)

class gameplayer

; int getv();

void movehandle();

void updatemark();

int getmark();

};

1.     

把遊戲邏輯的處理交給遊戲類

2.     

presshandle();

處理按鍵輸入和執行

3.     

getpress();

是內部方法,應該隱藏起來

4.     

movehandle();

處理蛇身移動

#include #include #include #include "gameplayer.h"

#include #include #include using namespace std;

int main()

game.movehandle();

} cin.get();

return 0;

}

C 貪吃蛇二

小菜學習winform 一 貪吃蛇 說到oo可能一說一大堆,這裡面小菜只是簡單的把貪吃蛇抽象出來,先來說蛇,具有的屬性和行為,屬性比如蛇的長度 蛇的寬度 蛇的行動方向等 行為比如是否吃到食物 是否撞牆等,那我們可以抽象乙個蛇的類,這樣實現 1 using system 2using system.c...

C語言貪吃蛇

include include include include include include define screen width 40 遊戲螢幕寬度 define screen length 15 遊戲螢幕長度 define start x 16 螢幕起始x座標 define start y ...

C語言 貪吃蛇

include include include define framewidght 22 define frameheight 22 short generaterandnumber short a,short b void posconsolecursor short x,short y voi...