diff options
Diffstat (limited to 'src/board/fen.cpp')
| -rw-r--r-- | src/board/fen.cpp | 35 |
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); } |
