-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.cpp
More file actions
80 lines (75 loc) · 2.42 KB
/
main.cpp
File metadata and controls
80 lines (75 loc) · 2.42 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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <cstdlib>
#include <ctime>
#include <cassert>
#include "MinesweeperBoard.h"
#include "MSBoardTestView.h"
#include "MSTextController.h"
// tests for MinesweeperBoard class
void MinesweeperBoardTests(){
MinesweeperBoard test(6, 6, DEBUG);
assert(test.getBoardWidth()==6);
assert(test.getBoardHeight()==6);
assert(test.getMineCount()==13);
assert(test.countMines(2,-3)==-1);
assert(test.countMines(1,0)==-1);
test.revealField(1,0);
assert(test.countMines(1,0)==4);
assert(test.hasFlag(10000,0)==false);
assert(test.hasFlag(1,0)==false);
assert(test.hasFlag(0,0)==false);
test.toggleFlag(2,2);
assert(test.hasFlag(2,2)==true);
test.toggleFlag(1,0);
assert(test.hasFlag(1,0)==false);
test.revealField(-1,-1);
assert(test.isRevealed(-1,-1)==false);
test.revealField(2,2);
assert(test.isRevealed(2,2)==false);
test.revealField(2,5);
test.revealField(2,5);
assert(test.isRevealed(2,5)==true);
assert(test.isRevealed(2,4)==true);
assert(test.isRevealed(2,3)==false);
assert(test.updateGameState()==RUNNING);
assert(test.getFieldInfo(-3,3)=='#');
assert(test.getFieldInfo(0,0)=='_');
assert(test.getFieldInfo(2,2)=='F');
assert(test.getFieldInfo(2,5)==' ');
assert(test.getFieldInfo(1,0)=='4');
//gameState==FINISHED_LOSS
test.revealField(0,4);
assert(test.isRevealed(0,4)==true);
assert(test.updateGameState()==FINISHED_LOSS);
assert(test.countMines(0,4)==2);
test.toggleFlag(0,5);
assert(test.hasFlag(0,5)==false);
test.revealField(1,2);
assert(test.isRevealed(1,2)==false);
assert(test.getFieldInfo(0,4)=='x');
//gameState==FINISHED_WIN
MinesweeperBoard test1(1,1, DEBUG);
assert(test1.updateGameState()==FINISHED_WIN);
//gameState!=DEBUG
MinesweeperBoard test2(1,2,EASY);
test2.revealField(0,0);
assert(test2.isRevealed(0,0)==true);
assert(test2.updateGameState()==FINISHED_WIN);
}
// tests for MSBoardTestView class
void MSBoardTestViewTests(){
MinesweeperBoard board(5, 5, DEBUG);
MSBoardTestView view(board);
assert(board.isRevealed(0, 0)==false);
view.revealField(0, 0);
assert(board.isRevealed(0,0)==true);
}
int main() {
srand(time(nullptr));
MinesweeperBoardTests();
MSBoardTestViewTests();
MinesweeperBoard board(7,5, DEBUG);
MSBoardTestView view(board);
MSTextController ctrl(board, view);
ctrl.play();
return 0;
}