dev: Added QS/KS castle checking; simplified moveList pruning
This commit is contained in:
parent
e42457d3ab
commit
78749a6af2
2 changed files with 18 additions and 7 deletions
18
Piece.hpp
18
Piece.hpp
|
|
@ -11,6 +11,7 @@
|
|||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <algorithm>
|
||||
#include <utility>
|
||||
#include <string>
|
||||
#include <memory>
|
||||
|
|
@ -34,6 +35,10 @@ enum File {
|
|||
A = 0, B = 1, C = 2, D = 3, E = 4, F = 5, G = 6, H = 7, INVALID_FILE = 255
|
||||
};
|
||||
|
||||
enum CastleSide {
|
||||
KINGSIDE = 1, QUEENSIDE = 2
|
||||
};
|
||||
|
||||
struct Square {
|
||||
Rank rank;
|
||||
File file;
|
||||
|
|
@ -101,11 +106,18 @@ class King : public Piece {
|
|||
return inCheck;
|
||||
}
|
||||
|
||||
bool checkForCastle() const {
|
||||
return canCastle;
|
||||
bool checkForCastle(enum CastleSide side) const {
|
||||
if(side == KINGSIDE) {
|
||||
return canCastleKS;
|
||||
} else if(side == QUEENSIDE) {
|
||||
return canCastleQS;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
protected:
|
||||
bool canCastle = true;
|
||||
bool canCastleQS = true;
|
||||
bool canCastleKS = true;
|
||||
bool inCheck = false;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue