dev: added Pawn movement checks, working through legal move logic
This commit is contained in:
parent
c577c23f1f
commit
016654da2f
2 changed files with 102 additions and 2 deletions
24
Piece.hpp
24
Piece.hpp
|
|
@ -48,12 +48,13 @@ struct Move {
|
|||
};
|
||||
|
||||
class Piece {
|
||||
friend class Board;
|
||||
friend class Board;
|
||||
protected:
|
||||
PieceColour colour;
|
||||
bool hasMoved = false;
|
||||
|
||||
public:
|
||||
|
||||
Piece(PieceColour pColour) : colour(pColour) {
|
||||
}
|
||||
virtual ~Piece();
|
||||
|
|
@ -62,17 +63,34 @@ public:
|
|||
PieceColour getColour() const {
|
||||
return colour;
|
||||
}
|
||||
|
||||
bool checkIfMoved() const {
|
||||
return hasMoved;
|
||||
}
|
||||
};
|
||||
|
||||
class King : public Piece {
|
||||
friend class Board;
|
||||
public:
|
||||
|
||||
King(PieceColour colour) : Piece(colour) {
|
||||
}
|
||||
virtual std::vector<Move> getLegalMoves(const Square &from, const Board &board) const override;
|
||||
|
||||
bool checkForCheck() const {
|
||||
return inCheck;
|
||||
}
|
||||
|
||||
bool checkForCastle() const {
|
||||
return canCastle;
|
||||
}
|
||||
protected:
|
||||
bool canCastle = true;
|
||||
bool inCheck = false;
|
||||
};
|
||||
|
||||
class Rook : public Piece {
|
||||
friend class Board;
|
||||
public:
|
||||
|
||||
Rook(PieceColour colour) : Piece(colour) {
|
||||
|
|
@ -81,6 +99,7 @@ public:
|
|||
};
|
||||
|
||||
class Queen : public Piece {
|
||||
friend class Board;
|
||||
public:
|
||||
|
||||
Queen(PieceColour colour) : Piece(colour) {
|
||||
|
|
@ -89,6 +108,7 @@ public:
|
|||
};
|
||||
|
||||
class Knight : public Piece {
|
||||
friend class Board;
|
||||
public:
|
||||
|
||||
Knight(PieceColour colour) : Piece(colour) {
|
||||
|
|
@ -97,6 +117,7 @@ public:
|
|||
};
|
||||
|
||||
class Bishop : public Piece {
|
||||
friend class Board;
|
||||
public:
|
||||
|
||||
Bishop(PieceColour colour) : Piece(colour) {
|
||||
|
|
@ -105,6 +126,7 @@ public:
|
|||
};
|
||||
|
||||
class Pawn : public Piece {
|
||||
friend class Board;
|
||||
public:
|
||||
|
||||
Pawn(PieceColour colour) : Piece(colour) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue