-
Notifications
You must be signed in to change notification settings - Fork 1
/
Input.h
113 lines (87 loc) · 1.96 KB
/
Input.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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/*
* File: Input.h
* Author: Tomáš Čerevka, Adam Činčura
*
* Created on November 2, 2011, 10:28 AM
*/
#ifndef INPUT_H
#define INPUT_H
#include <string>
#include <sstream>
#include <fstream>
#include "Board.h"
using namespace std;
/**
* Obsluha zpracovani vstupnich dat.
* @author Tomáš Čerevka
* @author Adam Činčura
*/
class Input {
public:
/**
* Konstruktor.
* @param Board* Deska, ktera se ma pripravit.
*/
Input(Board*);
/**
* Destruktor.
*/
virtual ~Input();
/**
* Vrati pocet vezi.
* @return int Celkovy pocet vezi.
*/
inline int getTowersCount(void) const {
return towersCount;
}
/**
* Vrati index cilove veze.
* @return int Index cilove veze.
*/
inline int getTargetTower(void) const {
return targetTower;
}
/**
* Vrati maximalni hloubku.
* @return int Maximalni hloubka prohledavaneho prosturu.
*/
inline int getMaxDepth(void) const {
return maxDepth;
}
/**
* Zpracuje vstupni argumenty.
* @param int Pocet argumentu.
* @param char** Pole argumentu.
*/
void parseArguments(int, char**);
/**
* Vytiskne sumarizaci vstupu.
*/
void printTask(void) const;
private:
/** Vytvarena deska. */
Board* board;
/** Celkovy pocet vezi. */
int towersCount;
/** Pocet tokenu na vezich. */
int tokensCount;
/** Index cilove veze. */
int targetTower;
/** Maximalni hloubka. */
int maxDepth;
/** Nazev souboru se vstupnimi daty. */
string fileName;
/**
* Zprarsuje vstupni soubor s nazvem {@link #filename}.
*/
void parseFile(void);
/**
* Vygeneruje desku dle sveho vnitrniho stavu.
*/
void generateBoard(void);
/**
* Vytiskne napovedu.
*/
void printHelp(void) const;
};
#endif /* INPUT_H */