025e88c50b
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1289 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
43 lines
1.2 KiB
C++
43 lines
1.2 KiB
C++
//---------------------------------------------------------------
|
|
// game.h
|
|
// Definition of the class BombsGame, containing the data for a
|
|
// playfield
|
|
//---------------------------------------------------------------
|
|
#ifndef GAME_H
|
|
#define GAME_H
|
|
|
|
#define BG_HIDDEN 0x100
|
|
#define BG_BOMB 0x200
|
|
#define BG_MARKED 0x400
|
|
#define BG_EXPLODED 0x800
|
|
#define BG_MASK 0x0FF
|
|
|
|
|
|
#include <stddef.h>
|
|
|
|
class BombsGame
|
|
{ protected:
|
|
int width,height;
|
|
short *field;
|
|
int bombs,normal_cells;
|
|
public:
|
|
BombsGame() { width=height=0; field=NULL; };
|
|
~BombsGame();
|
|
int Init(int width, int height);
|
|
int GetWidth() { return width; };
|
|
int GetHeight() { return height; };
|
|
int Get(int x, int y) { return field[x+y*width]; };
|
|
void Mark(int x, int y);
|
|
void Unhide(int x, int y);
|
|
void Explode(int x, int y);
|
|
int IsHidden(int x, int y) { return Get(x,y) & BG_HIDDEN; };
|
|
int IsMarked(int x, int y) { return Get(x,y) & BG_MARKED; };
|
|
int IsBomb(int x, int y) { return Get(x,y) & BG_BOMB; };
|
|
int IsExploded(int x, int y) { return Get(x,y) & BG_EXPLODED; };
|
|
int GetBombs() { return bombs; };
|
|
int GetRemainingCells() { return normal_cells; };
|
|
};
|
|
|
|
#endif /* def GAME_H */
|
|
|