עבור לתוכן

האם מבנה המשחק שבניתי נכון?

Featured Replies

פורסם

שלום,

אתמול בניתי משחק סנייק קטן ב-C++ ומשום מה המשחק שוקל 2 מגה ומשחקי סנייק אחרים שראיתי שוקלים הרבה פחות (כמה קילובייטים..).

ואז התחלתי להתלבט אם המבנה של המשחק שבניתי נכון או שאולי סתם סיבכתי אותו יותר מדי.

למי שמעוניין להוריד את המשחק:

http://www.fileflyer.com/view/GCI3nB7

(המקשים הם W-למעלה, A-שמאלה, S-למטה, D-ימינה)

המבנה הוא ככה:

בעיקרון יש Segment שזה בעצם תו כלשהו

Snake שזה כל הנחש עצמו שהמשתנה העיקרי שלו הוא מערך של Segment

Board לוח המשחק

Game המחלקה הראשית שמריצה את לולאת המשחק ומודיעה על סוף המשחק.

האם המבנה הזה נכון או שסתם עשיתי יותר מדי מחלקות?

זה המבנה היותר מפורט:

Segment

class Segment {
private:
int x;
int y;
char sign;

public:
Segment();
Segment(int m_x, int m_y, char m_sign);

void SetX(int m_x);
void SetY(int m_y);
void SetSign(char m_sign);
int GetX();
int GetY();
char GetSign();

void Draw();
};

Snake

class Snake {
private:
Segment** snake;
int length;
int x0, y0;
int sspeed;
char lastMove;

public:
~Snake();
Snake();
Snake(int m_length,int m_x0, int m_y0);

void DoMove(char m_move);

void AddSegment(Segment* sg);
void AddSegments(int num, char sign);
void RemoveSegments(int num);

void SetX0(int m_x);
void SetY0(int m_y);
void SetSpeed(int m_speed);
int GetX0();
int GetY0();
int GetSpeed();
int GetLength();

Segment* GetHead();

bool IsGameOver(int min_x, int min_y, int max_x, int max_y);

void Draw();
void UnDraw();
};

Board

class Board {
private:
int x0,y0;
int width, height;

public:
Board();
Board(int m_x0, int m_y0);

void SetX0(int m_x0);
void SetY0(int m_y0);
void SetWidth(int m_width);
void SetHeight(int m_height);
int GetX0();
int GetY0();
int GetWidth();
int GetHeight();

void Draw();
};

Game

class Game {
private:
Board* board;
Snake* snake;
Segment* food;
int score;

public:
~Game();
Game();
void Play();
void Draw();
void GameOver();
};

פורסם

המבנה זניח ...שאלה שלי ..במה את מקמפל ? GCC .? CL ?

כנראה אתה מקמפל ספריות נוספות כגיון WINDOWS .ו LIBS של מערכת הפעלה ...

פורסם
  • מחבר

אני מקמפל עם GCC (DEV C++).

וכן אני מוסיף את הקובץ windows.h כדי לממש את הפונקציה gotoxy, לא מצאתי דרך אחרת.

פורסם

תתחיל בבדיקה שאתה מקמפל בלי סימני דיבאג ועם אופטימיזציות.

פורסם
  • מחבר

תתחיל בבדיקה שאתה מקמפל בלי סימני דיבאג ועם אופטימיזציות.

ניסיתי וזה לא עוזר..

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים