-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathpawn.cpp
More file actions
72 lines (60 loc) · 2.24 KB
/
pawn.cpp
File metadata and controls
72 lines (60 loc) · 2.24 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
#include "pawn.h"
#include "game.h"
#include <QDebug>
#include <typeinfo>
#include "king.h"
extern Game * game;
Pawn::Pawn(QString team,QGraphicsItem *parent):ChessPiece(team,parent)
{
setImage();
firstMove = true;
}
void Pawn::setImage()
{
if(side == "WHITE")
setPixmap(QPixmap(":/images/pawn1.png"));
else
setPixmap(QPixmap(":/images/pawn.png"));
}
void Pawn::moves()
{
location.clear();
int row = this->getCurrentBox()->rowLoc;
int col = this->getCurrentBox()->colLoc;
if(this->getSide() == "WHITE") {
if(col > 0 && row > 0 && game->collection[row-1][col-1]->getChessPieceColor() == "BLACK") {
location.append(game->collection[row-1][col-1]);
boxSetting(location.last());
}
if(col < 7 && row > 0 && game->collection[row-1][col+1]->getChessPieceColor() == "BLACK") {
location.append(game->collection[row-1][col+1]);
boxSetting(location.last());
}
if(row>0 && (!game->collection[row-1][col]->getHasChessPiece())) {
location.append(game->collection[row-1][col]);
boxSetting(location.last());
if(firstMove && !game->collection[row-2][col]->getHasChessPiece()){
location.append(game->collection[row-2][col]);
boxSetting(location.last());
}
}
}
else{
if(col > 0 && row < 7 && game->collection[row+1][col-1]->getChessPieceColor() == "WHITE") {//left
location.append(game->collection[row+1][col-1]);
boxSetting(location.last());
}
if(col < 7 && row < 7 && game->collection[row+1][col+1]->getChessPieceColor() == "WHITE") {//right
location.append(game->collection[row+1][col+1]);
boxSetting(location.last());
}
if(row<7 && (!game->collection[row+1][col]->getHasChessPiece())) {
location.append(game->collection[row+1][col]);
boxSetting(location.last());
if(firstMove && !game->collection[row+2][col]->getHasChessPiece()){
location.append(game->collection[row+2][col]);
boxSetting(location.last());
}
}
}
}