aboutsummaryrefslogtreecommitdiff
path: root/src/board/fen.cpp
diff options
context:
space:
mode:
authorAdam <adammegarules1@gmail.com>2026-07-31 19:07:24 +0200
committerAdam <adammegarules1@gmail.com>2026-07-31 19:07:24 +0200
commitc437220aab7b908995a87cf958d9a67e54d478cb (patch)
treeb87f0ce44bc91d6cef834b4e94e01548a7306826 /src/board/fen.cpp
parenta90ba2e3ef8010692d9b94f51ba03d19e7bcb457 (diff)
keeping track of were all the pieces are
Diffstat (limited to 'src/board/fen.cpp')
-rw-r--r--src/board/fen.cpp35
1 files changed, 18 insertions, 17 deletions
diff --git a/src/board/fen.cpp b/src/board/fen.cpp
index 4b8686e..91a2533 100644
--- a/src/board/fen.cpp
+++ b/src/board/fen.cpp
@@ -8,7 +8,7 @@
bool WHITE = true;
bool BLACK = false;
-void setBoardFen(std::string fen, Game *b) {
+void setBoardFen(std::string fen, Game *g) {
// example fen rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
int file = 0;
int rank = 0;
@@ -51,36 +51,36 @@ void setBoardFen(std::string fen, Game *b) {
}
if (state == CASTLE) {
if (fen[i] == '-') {
- b->blackCastleKing = false;
- b->blackCastleQueen = false;
- b->whiteCastleKing = false;
- b->whiteCastleQueen = false;
+ g->blackCastleKing = false;
+ g->blackCastleQueen = false;
+ g->whiteCastleKing = false;
+ g->whiteCastleQueen = false;
continue;
}
if (fen[i] == 'K') {
- b->whiteCastleKing = true;
+ g->whiteCastleKing = true;
continue;
}
if (fen[i] == 'Q') {
- b->whiteCastleQueen = true;
+ g->whiteCastleQueen = true;
continue;
}
if (fen[i] == 'k') {
- b->blackCastleKing = true;
+ g->blackCastleKing = true;
continue;
}
if (fen[i] == 'q') {
- b->blackCastleQueen = true;
+ g->blackCastleQueen = true;
continue;
}
}
if (state == TURN) {
if (toupper(fen[i]) == 'W') {
- b->turn = WHITE;
+ g->turn = WHITE;
continue;
}
if (toupper(fen[i]) == 'B') {
- b->turn = BLACK;
+ g->turn = BLACK;
continue;
}
}
@@ -107,41 +107,42 @@ void setBoardFen(std::string fen, Game *b) {
};
if (toupper(fen[i]) == 'N') {
Piece piece = createPiece(KNIGHT, isupper(fen[i]));
- b->pieces[rank * 8 + file] = piece;
+ g->pieces[rank * 8 + file] = piece;
file++;
continue;
};
if (toupper(fen[i]) == 'R') {
Piece piece = createPiece(ROOK, isupper(fen[i]));
- b->pieces[rank * 8 + file] = piece;
+ g->pieces[rank * 8 + file] = piece;
file++;
continue;
}
if (toupper(fen[i]) == 'Q') {
Piece piece = createPiece(QUEEN, isupper(fen[i]));
- b->pieces[rank * 8 + file] = piece;
+ g->pieces[rank * 8 + file] = piece;
file++;
continue;
}
if (toupper(fen[i]) == 'B') {
Piece piece = createPiece(BISHOP, isupper(fen[i]));
- b->pieces[rank * 8 + file] = piece;
+ g->pieces[rank * 8 + file] = piece;
file++;
continue;
}
if (toupper(fen[i]) == 'P') {
Piece piece = createPiece(PAWN, isupper(fen[i]));
- b->pieces[rank * 8 + file] = piece;
+ g->pieces[rank * 8 + file] = piece;
file++;
continue;
}
if (toupper(fen[i]) == 'K') {
Piece piece = createPiece(KING, isupper(fen[i]));
- b->pieces[rank * 8 + file] = piece;
+ g->pieces[rank * 8 + file] = piece;
file++;
continue;
}
}
break;
}
+ UpdateBitboards(g);
}