00001
00008 #ifndef _GAMEAREA_
00009 #define _GAMEAREA_
00010
00011 #include "GameTile.h"
00012 #include "CoveredGameTileModel.h"
00013 #include "UncoveredGameTileModel.h"
00014
00015 #include <stdexcept>
00016
00018 #define EASYBOMBS 3
00019
00020 #define EASYLIFES 3
00021
00022 #define EASYTIMEF 3
00023
00024 #define EASYSIZE 3
00025
00027 #define MEDIUMBOMBS 25
00028
00029 #define MEDIUMLIFES 5
00030
00031 #define MEDIUMTIMEF 2
00032
00033 #define MEDIUMSIZE 10
00034
00036 #define HARDBOMBS 55
00037
00038 #define HARDLIFES 0
00039
00040 #define HARDTIMEF 1
00041
00042 #define HARDSIZE 12
00043
00044 using namespace std;
00045
00046 class GameArea {
00047
00048 public:
00049
00057 enum Level {EASY, MEDIUM, HARD};
00058
00059
00065 GameTile *gameTileArray;
00066
00068 CoveredGameTileModel *coveredGT;
00070 UncoveredGameTileModel *uncoveredGT;
00071
00073 Level level;
00075 int dim;
00077 int tiles;
00078
00079
00080 public:
00081 GameArea(Level level);
00082 ~GameArea() {
00083 delete[] gameTileArray;
00084 }
00085
00086 bool spreadItems(GameTile::InvisibleState it, int count);
00087 bool createItems(Level l);
00088 void updateCounters(int index, int x, int y, int bombValue, int goodieValue);
00089 void updateCounterArray(int index, int x, int y, int v, int *field);
00090 void renderGameArea();
00091 void uncoverTile(int v, int h);
00092 void debugArrays(bool items, bool bombs, bool goodies);
00093
00094 };
00095 #endif
00096