diff options
| author | Adam <adammegarules1@gmail.com> | 2026-07-29 20:16:13 +0200 |
|---|---|---|
| committer | Adam <adammegarules1@gmail.com> | 2026-07-29 20:16:13 +0200 |
| commit | 53e58af35c46140a05b3ce4dcec9e425ca359529 (patch) | |
| tree | d4531fddfbcfaa50d920a5598ade3ec535de8340 /src/fen.cpp | |
| parent | d528a20684570fb70f0e6b13a78bc6504a1edd89 (diff) | |
new folder structer
Diffstat (limited to 'src/fen.cpp')
| -rw-r--r-- | src/fen.cpp | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/src/fen.cpp b/src/fen.cpp deleted file mode 100644 index 4b8686e..0000000 --- a/src/fen.cpp +++ /dev/null @@ -1,147 +0,0 @@ -#include "fen.hpp" -#include "board.hpp" -#include <cctype> -#include <cstdlib> -#include <print> -#include <string> - -bool WHITE = true; -bool BLACK = false; - -void setBoardFen(std::string fen, Game *b) { - // example fen rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 - int file = 0; - int rank = 0; - - enum parserState { - POSITION, - TURN, - CASTLE, - ENPASSANT, - CLOCK1, - CLOCK2, - }; - parserState state = POSITION; - - for (uint i = 0; i < fen.length(); i++) { - if (fen[i] == ' ') { - if (state == POSITION) { - state = TURN; - continue; - } - if (state == TURN) { - state = CASTLE; - continue; - } - if (state == CASTLE) { - state = ENPASSANT; - continue; - } - if (state == ENPASSANT) { - state = CLOCK1; - continue; - } - if (state == CLOCK1) { - state = CLOCK2; - continue; - } - } - if (state == ENPASSANT) { - continue; - } - if (state == CASTLE) { - if (fen[i] == '-') { - b->blackCastleKing = false; - b->blackCastleQueen = false; - b->whiteCastleKing = false; - b->whiteCastleQueen = false; - continue; - } - if (fen[i] == 'K') { - b->whiteCastleKing = true; - continue; - } - if (fen[i] == 'Q') { - b->whiteCastleQueen = true; - continue; - } - if (fen[i] == 'k') { - b->blackCastleKing = true; - continue; - } - if (fen[i] == 'q') { - b->blackCastleQueen = true; - continue; - } - } - if (state == TURN) { - if (toupper(fen[i]) == 'W') { - b->turn = WHITE; - continue; - } - if (toupper(fen[i]) == 'B') { - b->turn = BLACK; - continue; - } - } - if (state == POSITION) { - if (isdigit(fen[i])) { - int move = fen[i] - '0'; - file += move; - if (file > 8) { - std::println("Fatal: file was to big"); - exit(1); - return; // malformed rank - } - continue; - } - if (fen[i] == '/') { - file = 0; - rank++; - if (rank >= 8) { - std::println("Fatal: rank was to big"); - exit(1); - return; // malformed rank - } - continue; - }; - if (toupper(fen[i]) == 'N') { - Piece piece = createPiece(KNIGHT, isupper(fen[i])); - b->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; - file++; - continue; - } - if (toupper(fen[i]) == 'Q') { - Piece piece = createPiece(QUEEN, isupper(fen[i])); - b->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; - file++; - continue; - } - if (toupper(fen[i]) == 'P') { - Piece piece = createPiece(PAWN, isupper(fen[i])); - b->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; - file++; - continue; - } - } - break; - } -} |
