-
Notifications
You must be signed in to change notification settings - Fork 0
/
HumanPlayer.cpp
59 lines (48 loc) · 1.1 KB
/
HumanPlayer.cpp
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
#include "HumanPlayer.hpp"
//constructors/destructors
HumanPlayer::HumanPlayer()
{
}
HumanPlayer::HumanPlayer(char symbolIn, int idIn)
: Player (symbolIn, idIn)
{
setShouldPickRandomly(false);
}
//initializers
//getters/setters
//misc functions
bool HumanPlayer::isHuman()
{
return true;
}
void HumanPlayer::runTurn(Board& boardIn)
{
boardIn.sendBoard();
io.sendLine(this->promptMoveMessage());
std::string move;
int moveNum;
io.read(move);
while (vldt.validateMove(move, boardIn) == vldt.getMoveFailToken())
{
io.read(move);
}
moveNum = vldt.validateMove(move, boardIn);
boardIn.takeSpot(this, moveNum);
io.sendLine(this->takeSpotMessage(stoi(move)));
if (boardIn.checkWin(this))
{
boardIn.sendBoard();
io.sendLine(playerWinMessage());
exit(0);
}
if (boardIn.checkTie())
{
boardIn.sendBoard();
io.sendLine(playerTieMessage());
exit(0);
}
if (getOtherPlayer()->getShouldPickRandomly())
{
getOtherPlayer()->setShouldPickRandomly(false);
}
}