-
Notifications
You must be signed in to change notification settings - Fork 0
/
atoms_test.cc
65 lines (56 loc) · 5.07 KB
/
atoms_test.cc
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
#include <iostream>
#include <iomanip>
#include "atoms.hh"
#include <cassert>
#include <random>
#include <ios>
void dump_state(const Atoms &atoms) {
std::ios_base::fmtflags f( std::cout.flags() );
for ( int i = 0; i < 10; i++ ) {
for ( int j = 0; j < 10; j++ ) {
std::cout << std::setfill('0') << std::setw(2) << atoms.player[i][j]<< ":";
}
std::cout << "\n";
}
std::cout << "\n";
for ( int i = 0; i < 10; i++ ) {
for ( int j = 0; j < 10; j++ ) {
std::cout << std::setfill('0') << std::setw(2) << atoms.get_content(i , j ) << ":";
}
std::cout << "\n";
}
std::cout.flags( f );
std::cout << "\n";
for ( int i = 0; i < 10; i++ ) {
for ( int j = 0; j < 10; j++ ) {
std::cout << std::setfill('0') << std::setw(2) << atoms.world[i][j] << ":";
}
std::cout << "\n";
}
std::cout.flags( f );
std::cout << "\n";
std::cout << (atoms.game_over() ? "Game over" : "Game not over") << "\n";
for (int i = 0; i< 4; i++ ){
std::cout << (atoms.is_player_dead( i ) ? "true " : "false") << ":" << atoms.get_player_score(i) << "\n";
}
std::cout << "\n";
}
int main() {
Atoms atoms(10,10);
// Remove random atoms
atoms.clear( false );
int clicks[][2] = { { 9, 4 }, { 8, 3 }, { 9, 1 }, { 7, 6 }, { 5, 0 }, { 9, 3 }, { 6, 5 }, { 1, 2 }, { 3, 0 }, { 5, 1 }, { 8, 1 }, { 6, 8 }, { 9, 0 }, { 9, 0 }, { 1, 0 }, { 6, 7 }, { 5, 7 }, { 6, 3 }, { 5, 2 }, { 5, 7 }, { 8, 7 }, { 6, 8 }, { 2, 5 }, { 0, 2 }, { 5, 1 }, { 2, 2 }, { 5, 8 }, { 0, 0 }, { 2, 8 }, { 2, 5 }, { 4, 1 }, { 1, 5 }, { 1, 8 }, { 9, 1 }, { 0, 4 }, { 8, 8 }, { 4, 3 }, { 7, 6 }, { 4, 1 }, { 3, 7 }, { 2, 2 }, { 1, 0 }, { 5, 7 }, { 1, 9 }, { 2, 3 }, { 2, 2 }, { 6, 4 }, { 0, 6 }, { 4, 8 }, { 6, 3 }, { 9, 9 }, { 2, 5 }, { 8, 3 }, { 2, 2 }, { 0, 3 }, { 1, 7 }, { 3, 3 }, { 3, 5 }, { 5, 3 }, { 7, 2 }, { 5, 6 }, { 0, 2 }, { 3, 6 }, { 7, 1 }, { 4, 0 }, { 8, 6 }, { 7, 7 }, { 5, 0 }, { 0, 0 }, { 3, 1 }, { 6, 4 }, { 2, 4 }, { 7, 7 }, { 7, 1 }, { 3, 7 }, { 1, 8 }, { 6, 3 }, { 9, 4 }, { 0, 7 }, { 8, 3 }, { 5, 2 }, { 4, 9 }, { 9, 0 }, { 7, 6 }, { 8, 7 }, { 4, 9 }, { 4, 1 }, { 7, 6 }, { 3, 6 }, { 9, 4 }, { 4, 2 }, { 0, 7 }, { 0, 5 }, { 5, 8 }, { 7, 9 }, { 5, 9 }, { 9, 8 }, { 5, 6 }, { 5, 8 }, { 6, 6 }, { 5, 6 }, { 4, 8 }, { 2, 3 }, { 7, 2 }, { 2, 2 }, { 1, 0 }, { 5, 6 }, { 6, 2 }, { 3, 3 }, { 0, 7 }, { 7, 1 }, { 3, 7 }, { 6, 7 }, { 7, 0 }, { 5, 7 }, { 6, 7 }, { 7, 7 }, { 3, 8 }, { 7, 0 }, { 7, 7 }, { 5, 2 }, { 7, 4 }, { 1, 7 }, { 5, 7 }, { 2, 8 }, { 9, 9 }, { 3, 9 }, { 9, 3 }, { 8, 7 }, { 4, 1 }, { 4, 6 }, { 2, 8 }, { 1, 3 }, { 5, 8 }, { 8, 5 }, { 5, 5 }, { 1, 4 }, { 8, 7 }, { 1, 9 }, { 7, 1 }, { 3, 8 }, { 5, 3 }, { 2, 8 }, { 4, 7 }, { 5, 6 }, { 9, 5 }, { 4, 3 }, { 6, 0 }, { 1, 4 }, { 2, 9 }, { 5, 1 }, { 9, 1 }, { 6, 7 }, { 0, 7 }, { 3, 6 }, { 6, 8 }, { 9, 8 }, { 8, 8 }, { 7, 7 }, { 1, 8 }, { 0, 0 }, { 4, 8 }, { 6, 9 }, { 7, 4 }, { 9, 4 }, { 4, 5 }, { 1, 5 }, { 3, 1 }, { 4, 1 }, { 9, 3 }, { 3, 9 }, { 9, 6 }, { 9, 5 }, { 8, 3 }, { 2, 5 }, { 2, 0 }, { 9, 7 }, { 4, 8 }, { 1, 3 }, { 2, 3 }, { 3, 7 }, { 4, 6 }, { 7, 3 }, { 0, 5 }, { 1, 6 }, { 6, 1 }, { 6, 3 }, { 0, 9 }, { 2, 7 }, { 7, 7 }, { 4, 9 }, { 7, 5 }, { 7, 1 }, { 6, 8 }, { 7, 3 }, { 4, 1 }, { 4, 9 }, { 7, 8 }, { 3, 8 }, { 1, 0 }, { 1, 7 }, { 9, 4 }, { 9, 5 }, { 2, 4 }, { 7, 3 }, { 3, 4 }, { 6, 0 }, { 2, 9 }, { 2, 3 }, { 5, 1 }, { 6, 4 }, { 2, 7 }, { 8, 3 }, { 8, 5 }, { 4, 3 }, { 5, 1 }, { 5, 2 }, { 4, 2 }, { 6, 3 }, { 3, 7 }, { 3, 3 }, { 2, 6 }, { 0, 3 }, { 4, 3 }, { 3, 0 }, { 8, 1 }, { 1, 7 }, { 3, 9 }, { 3, 0 }, { 6, 7 }, { 3, 7 }, { 0, 6 }, { 5, 4 }, { 4, 0 }, { 5, 2 }, { 5, 7 }, { 1, 5 }, { 8, 2 }, { 3, 7 }, { 6, 1 }, { 1, 0 }, { 1, 2 }, { 1, 3 }, { 8, 6 }, { 6, 7 }, { 2, 4 }, { 3, 6 }, { 4, 1 }, { 8, 1 }, { 1, 3 }, { 2, 5 }, { 1, 6 }, { 8, 3 }, { 5, 6 }, { 5, 0 }, { 9, 9 }, { 1, 7 }, { 6, 6 }, { 9, 3 }, { 3, 0 }, { 8, 2 }, { 6, 8 }, { 3, 2 }, { 0, 1 }, { 8, 7 }, { 4, 7 }, { 8, 2 }, { 6, 3 }, { 0, 6 }, { 8, 2 }, { 8, 2 }, { 3, 0 }, { 2, 7 }, { 8, 5 }, { 5, 1 }, { 9, 2 }, { 7, 1 }, { 2, 4 }, { 9, 0 }, { 9, 3 }, { 6, 3 }, { 1, 1 }, { 4, 6 }, { 2, 4 }, { 3, 5 }, { 6, 9 }, { 5, 9 }, { 5, 5 }, { 7, 2 }, { 6, 1 }, { 4, 8 }, { 5, 7 }, { 5, 3 }, { 7, 5 }, { 5, 9 }, { 3, 5 }, { 3, 0 }, { 5, 3 }, { 9, 8 }, { 7, 5 }, { 0, 2 }, { 7, 5 }, { 7, 3 }, { 6, 2 }, { 4, 8 }, { 4, 3 }, { 3, 9 }, { 5, 3 }, { 3, 7 }, { 7, 6 }, { 1, 4 }, { 8, 5 }, { 6, 1 }, { 6, 1 }, { 9, 2 }, { 2, 6 }, { 2, 1 }, { 1, 5 }, { 2, 1 }, { 1, 2 }, { 6, 4 }, { 3, 0 }, { 5, 5 }, { 9, 8 }, { 2, 6 }, { 4, 2 }, { 7, 1 }, { 9, 3 }, { 4, 6 }, { 7, 0 }, { 3, 5 }, { 1, 5 }, { 4, 8 }, { 6, 7 }, { 4, 2 }, { 7, 1 }, { 5, 1 }, { 5, 6 }, { 2, 0 }, { 7, 1 }, { 9, 5 }, { 8, 9 }, { 5, 3 }, { 0, 0 }, { 3, 3 }, { 1, 8 }, { 8, 6 }, { 5, 8 }, { 5, 7 } };
dump_state(atoms);
for ( auto &click : clicks ) {
std::cout << "[ " << click[0] << ", " << click[1] << " ]\n";
atoms.click(click[0],click[1]);
dump_state(atoms);
while (!atoms.finished && !atoms.game_over()) {
atoms.recalculate_board();
dump_state(atoms);
}
}
dump_state(atoms);
std::cout << atoms.get_current_player() << "\n";
return 0;
}