My Project
 All Classes
Playground.h
1 #pragma once
2 
3 #include <iostream>
4 #include <unordered_map>
5 #include <utility>
6 #include <ClanLib/core.h>
7 #include <ClanLib/display.h>
8 #include "Snake.h"
9 #include "Area.h"
10 #include "Koord.h"
11 #include "ItemFactory.h"
12 
13 
14 /* config area */
15 
16 // default port
17 #define DEFAULT_PORT "1337"
18 //
19 #define SNAKE_START_SIZE 20
20 
21 // speed (steps/sec)
22 #define SPEED1 13
23 #define SPEED2 18
24 
25 // duration of each lvl
26 #define LVL1 2
27 #define LVL2 10
28 #define LVL3 1000
29 /* end: config area */
30 class Controller;
31 
32 
34 {
35  public:
37  ~Playground();
38  void keyAction(int id);
39  void syncSnakesArea();
40  void stepSnakes();
41  void start();
42  void stop();
43  void pause();
44  void quit();
45  void reset();
46  void end();
47  void setLvl(int lvl);
48  void shrinkArea(int distance);
49  void setResetting();
50  void doneResetting();
51  void enableItems();
52  void disableItems();
53  void setItems();
54  void setItemLimit(int i);
55  void turnSnake(char snake, DIRECTION dir);
56  char getPos(int height, int width);
57  char requestSnake();
58  void releaseSnake(char c);
59  void setSpeed(int speed);
60  int getSpeed();
61  int getSnake();
62  int getLvl();
63  int getActiveSnakes();
64  bool hasQuit();
65  bool isRunning();
66  std::string getAreaString();
67  int getLives(int i);
68  Area getArea();
69  void setScore();
70  void setWinnerLengths();
71  int getWinnerLvl1Length();
72  int getWinnerLength();
73  char getWinner();
74  int winnerLvl1Length;
75  int winnerLength;
76  std::unordered_map<char,Snake> snakes;
77 
78  private:
79  Area area;
80  Controller *super;
81  ItemFactory itemfact;
82 
83  char winner;
84  std::pair <int,int> lengthAfterLvl1;
85  bool _running;
86  bool _end;
87  bool _quit;
88  bool _reset;
89  bool itemsEnabled;
90  int lvl;
91  unsigned int itemLimit;
92  std::vector<Koord> clearSquare;
93  std::unordered_map<Item,char,std::hash<int>> itemRef;
94  char b;
95  int speed;
96 
97  private:
98  void addClearSquare(std::vector<Koord> adding);
99  void addClearSquare(Koord adding);
100  void clearItems(const Koord k);
101 
102 
103 };
104