diff options
Diffstat (limited to 'src/uci.cpp')
| -rw-r--r-- | src/uci.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/uci.cpp b/src/uci.cpp index 4e32d6f..b4e384a 100644 --- a/src/uci.cpp +++ b/src/uci.cpp @@ -15,6 +15,7 @@ #include <chrono> #include <fstream> #include <iomanip> +#include <unordered_map> std::ofstream uciLog("uci_log.txt", std::ios::app); @@ -44,7 +45,8 @@ Move UciToMove(string uci) { return {from, to}; } -static Game initBoard(string startingFEN) { +Game initBoard(string startingFEN, + std::unordered_map<uint64_t, float> *transPositions) { Game b{}; b.enPassant = IndexToPosition(0); // default value b.canEnpassant = false; @@ -53,7 +55,7 @@ static Game initBoard(string startingFEN) { b.castle = ""; b.halfMoveClock = 0; b.MoveClock = 0; - setBoardFen(startingFEN, &b); + b.Transpositions = transPositions; Piece EmptyPiece = { false, @@ -64,11 +66,15 @@ static Game initBoard(string startingFEN) { b.pieces[i] = EmptyPiece; }; + setBoardFen(startingFEN, &b); + return b; }; void Uci() { + unordered_map<uint64_t, float> transpositions = {}; Game game = - initBoard("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"); + initBoard("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1", + &transpositions); string line; @@ -85,7 +91,8 @@ void Uci() { cout.flush(); } else if (cmd == "ucinewgame") { game = - initBoard("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"); + initBoard("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1", + &transpositions); } else if (cmd == "isready") { cout << "readyok\n"; cout.flush(); @@ -126,7 +133,8 @@ void Uci() { if (token == "startpos") { game = initBoard( - "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"); + "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1", + &transpositions); } else if (token == "fen") { string fen; string part; @@ -139,7 +147,7 @@ void Uci() { fen += part; } - game = initBoard(fen); + game = initBoard(fen, &transpositions); } // check for moves |
