git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34081 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			116 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
///////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        game.h
 | 
						|
// Purpose:     Bombs game
 | 
						|
// Author:      P. Foggia 1996
 | 
						|
// Modified by: Wlodzimierz Skiba (ABX) since 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
 | 
						|
#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_
 |