| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- ///////////////////////////////////////////////////////////////////////////////
- // Name: game.h
- // Purpose: Bombs game
- // Author: P. Foggia 1996
- // Modified by: Wlodzimierz Skiba (ABX) since 2003
- // Created: 1996
- // Copyright: (c) 1996 P. Foggia
- // Licence: wxWindows licence
- ///////////////////////////////////////////////////////////////////////////////
- #ifndef _WX_DEMOS_BOMBS_GAME_H_
- #define _WX_DEMOS_BOMBS_GAME_H_
- #define BG_HIDDEN 0x100
- #define BG_BOMB 0x200
- #define BG_MARKED 0x400
- #define BG_EXPLODED 0x800
- #define BG_SELECTED 0x080
- #define BG_MASK 0x03F
- #include <stddef.h>
- class BombsGame
- {
- public:
- BombsGame()
- {
- m_width = m_height = 0;
- m_field = NULL;
- };
- ~BombsGame();
- int GetWidth() const { return m_width; };
- int GetHeight() const { return m_height; };
- int Get(int x, int y) const
- {
- return m_field[x+y*m_width];
- };
- int IsFocussed(int x, int y) const
- {
- return (m_gridFocusX == x) && (m_gridFocusY == y);
- }
- int IsHidden(int x, int y) const
- {
- return Get(x,y) & BG_HIDDEN;
- };
- int IsMarked(int x, int y) const
- {
- return Get(x,y) & BG_MARKED;
- };
- int IsBomb(int x, int y) const
- {
- return Get(x,y) & BG_BOMB;
- };
- int IsExploded(int x, int y) const
- {
- return Get(x,y) & BG_EXPLODED;
- };
- int IsSelected(int x, int y) const
- {
- return Get(x,y) & BG_SELECTED;
- };
- int GetNumBombs() const
- {
- return m_numBombCells;
- };
- int GetNumRemainingCells() const
- {
- return m_numRemainingCells;
- };
- int GetNumMarkedCells() const
- {
- return m_numMarkedCells;
- };
- bool Init(int width, int height, bool easyCorner = false);
- // Marks/unmarks a cell
- void Mark(int x, int y);
- // Unhides a cell
- void Unhide(int x, int y, bool b_selected);
- // Makes a cell exploded
- void Explode(int x, int y);
- int m_gridFocusX;
- int m_gridFocusY;
- private:
- // Current difficulty level (Determines grid size).
- //int m_level;
- int m_width, m_height;
- short *m_field;
- int m_numBombCells, m_numRemainingCells, m_numMarkedCells;
- };
- #endif // #ifndef _WX_DEMOS_BOMBS_GAME_H_
|