Repository navigation
Expand file tree
/
Copy pathStatistics.cpp
More file actions
66 lines (56 loc) · 1.97 KB
/
Copy pathStatistics.cpp
File metadata and controls
66 lines (56 loc) · 1.97 KB
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
#include "Statistics.h"
#include "Tile.h"
#include <iostream>
using std::cout;
using std::endl;
Statistics::Statistics() : Command("statistics"),
toggle_player_(0), remaining_tiles_(0), used_tiles_(0), red_tiles_topcolor_(0),
white_tiles_topcolor_(0), cross_(0), left(0), right(0)
{
}
Statistics::~Statistics()
{
}
int Statistics::execute(Game &board, std::vector<std::string> ¶ms)
{
toggle_player_ = board.getTogglePlayer();
remaining_tiles_ = board.getRemainingTiles();
used_tiles_ = 63 - board.getRemainingTiles();
// write head to binary file
char write_active_player = static_cast<char>(board.getActivePlayer());
signed char write_smallest_x = static_cast<signed char>(board.getMinX());
signed char write_smallest_y = static_cast<signed char>(board.getMinY());
signed char write_biggest_x = static_cast<signed char>(board.getMaxX());
signed char write_biggest_y = static_cast<signed char>(board.getMaxY());
Tile *field_type;
for(; write_smallest_y <= write_biggest_y; write_smallest_y++)
{
for (int x = write_smallest_x; x <= write_biggest_x; x++)
{
field_type = (board.getTileAtPosition(x, write_smallest_y));
if(field_type->getTopColor() == 1)
white_tiles_topcolor_++;
if(field_type->getTopColor() == 2)
red_tiles_topcolor_++;
if(field_type->getSide() == 1)
cross_++;
if(field_type->getSide() == 2)
left++;
if(field_type->getSide() == 3)
right++;
}
}
cout << "toggle player " << toggle_player_ << endl;
cout << "remaining tiles " << remaining_tiles_ << endl;
cout << "used tiles " << used_tiles_ << endl;
cout << "white tiles " << white_tiles_topcolor_ << endl;
cout << "red tiles " << red_tiles_topcolor_ << endl;
cout << "cross " << cross_ << endl;
cout << "left " << left << endl;
cout << "right " << right << endl;
return 0;
}
unsigned int Statistics::getParamCnt()
{
return 0;
}