X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/70d26c3f4ffb24d50457d405c9595fd23f9e5b7c..8329fea8ad89a4df6c2f0441facdc5ad189473ea:/demos/bombs/game.h?ds=sidebyside diff --git a/demos/bombs/game.h b/demos/bombs/game.h index ad16000de6..00cc83ea05 100644 --- a/demos/bombs/game.h +++ b/demos/bombs/game.h @@ -1,10 +1,16 @@ -//--------------------------------------------------------------- -// game.h -// Definition of the class BombsGame, containing the data for a -// playfield -//--------------------------------------------------------------- -#ifndef GAME_H -#define GAME_H +/////////////////////////////////////////////////////////////////////////////// +// Name: game.h +// Purpose: Bombs game +// Author: P. Foggia 1996 +// Modified by: Wlodzimierz Skiba (ABX) 2003 +// Created: 1996 +// RCS-ID: $Id$ +// 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 @@ -12,31 +18,88 @@ #define BG_EXPLODED 0x800 #define BG_MASK 0x0FF - #include 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 */ +{ +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 GetNumBombs() const + { + return m_numBombCells; + }; + + int GetNumRemainingCells() const + { + return m_numRemainingCells; + }; + + + + bool Init(int width, int height); + + + // Marks/unmarks a cell + void Mark(int x, int y); + + // Unhides a cell + void Unhide(int x, int y); + + // 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; + +}; +#endif // #ifndef _WX_DEMOS_BOMBS_GAME_H_