-
Notifications
You must be signed in to change notification settings - Fork 0
/
GameHandler.h
53 lines (48 loc) · 1.75 KB
/
GameHandler.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#pragma once
#define _CRT_SECURE_NO_WARNINGS //uzywane tylko do localtime
#include "Player.h"
#include "ProfessionsFactory.h"
#include <time.h>
#include <iomanip>
#include <algorithm>
class GameHandler
{
char positionData[BOARD_SIZE][BOARD_SIZE];//przechowuje tutaj znaki do wyswietlania jednostek na planszy
std::vector<Player*> players;
int playerid;
Profession* professionBoardData[BOARD_SIZE][BOARD_SIZE];
int roundsCounter;
ProfessionsFactory* pf;
int linesInDisplayBoard;
std::vector<std::string> gameLOG;
/////////////////////////////////////
void displayBoard();
void clearBoard();
void updatePositionData(); //po ruchu trzeba odswiezyc dane, jesli jednostka zmienila poycje/umarla powinna nie byc wyswietlana
void displayAllplayersUnitsAndBasicStats();//wyswietlanie podstawowych statystyk i położenia kazdej jednostki
void displayLog(); //wyswietlanie Logu gry, 5 ostatnich ruchów
void createPlayer();
void askPlayerToBuyUnits(Player* _p);
void putAllPlayerUnitsOnBoard(Player* _p);
std::pair<int, int> askPlayersForCordsToPutUnit();
void updateAllUnitsStatsAfterRound(); //przyrost many co runde dla jednostek itp
bool checkIfPlayersUnitsAreAlive(); //sprawdzam czy wszystkie jednostki jednego z graczy sš martwe, jesli tak to gra się konczy
void printGameLogToFileAndDelete();
template<typename T>
void destroyVector(std::vector<T>& _v) //metoda do usuwania dynamicznej pamieci w wektorze
{
while (!_v.empty())
{
delete _v.back();
_v.pop_back();
}
}
public:
GameHandler();
~GameHandler();
GameHandler(const GameHandler& _copy) = delete; //zasada trzech
GameHandler operator=(GameHandler& _other) = delete; //zasada trzech
void createProfessionsFactory();
void manageGame(); //glowna metoda do zarzadzania gra
void resetData();
};