diff options
| author | Adam <adammegarules1@gmail.com> | 2026-07-27 20:14:54 +0200 |
|---|---|---|
| committer | Adam <adammegarules1@gmail.com> | 2026-07-27 20:14:54 +0200 |
| commit | 51d27e1ab9058c9e0fafb399e22edf7b38470510 (patch) | |
| tree | f0528298123fcb33eb426a5aa099afd2a8d00a90 /src/repl.cpp | |
| parent | f1ded0290393709d437c6e149861ceb91d241c64 (diff) | |
adding uci
Diffstat (limited to 'src/repl.cpp')
| -rw-r--r-- | src/repl.cpp | 162 |
1 files changed, 0 insertions, 162 deletions
diff --git a/src/repl.cpp b/src/repl.cpp deleted file mode 100644 index b936af0..0000000 --- a/src/repl.cpp +++ /dev/null @@ -1,162 +0,0 @@ -#include "repl.hpp" -#include "board.hpp" -#include "bot.hpp" -#include "moves.hpp" -#include <algorithm> -#include <cctype> -#include <cstdint> -#include <cstdlib> -#include <iostream> -#include <print> -#include <string> - -bool isValidChessRank(char rank) { - if (rank >= '1' && rank <= '8') { - return true; - } else { - return false; - } -} -bool isValidChessFile(char rank) { - if (rank >= 'A' && rank <= 'H') { - return true; - } else { - return false; - } -} -int startREPL(Board *b) { - printBoard(b); - while (true) { - GetLegalMoves(b); - if (b->state == STALEMATE) { - printBoard(b); - std::println(); - std::cout << "\033[1mStalemate\033[0m" << "\n"; - std::println(); - return 0; - } - if (b->state == DRAW) { - printBoard(b); - std::println(); - std::cout << "\033[1mDraw\033[0m" << "\n"; - std::println(); - return 0; - } - if (b->state == WHITE_WON) { - printBoard(b); - std::cout << "\033[1mChechmate White won\033[0m" << "\n"; - return 0; - } - if (b->state == BLACK_WON) { - printBoard(b); - std::cout << "\033[1mCheckmate Black won\033[0m" << "\n"; - return 0; - } - if (b->state == TURN) { - if (true) { - Move move = EngineGetBestMove(b); - PlayMove(move, b); - printBoard(b); - continue; - } - } - std::cout << "> "; - std::string command; - if (!(std::cin >> command)) { - std::println(); - std::cout << "Exiting...\n"; - return EXIT_SUCCESS; - } - - std::transform(command.begin(), command.end(), command.begin(), ::toupper); - - std::cout << command << "\n"; - if (command == "EXIT") { - std::println(); - std::cout << "Exiting...\n"; - return EXIT_SUCCESS; - } - if (command == "RESING") { - std::cout << "\033[1mOK\033[0m" << "\n"; - if (b->turn) { - b->state = BLACK_WON; - } else { - b->state = WHITE_WON; - } - continue; - } - if (command == "BOARD") { - printBoard(b); - continue; - } - if (command == "MOVES" || command == "MOVE") { - auto moves = GetLegalMoves(b); - PrintMoves(moves); - continue; - } - if (command.length() != 4) { - std::cout << "Unknown Command, use EXIT to exit"; - std::println(); - continue; - } - if (b->state == TURN) { - if (!isValidChessFile(command[0])) { - std::cout << "ERROR: Expected valid file at first place"; - std::println(); - continue; - } - - if (!isValidChessRank(command[1])) { - std::cout << "ERROR: Expected valid rank at second place"; - std::println(); - continue; - } - - if (!isValidChessFile(command[2])) { - std::cout << "ERROR: Expected valid file at third place"; - std::println(); - continue; - } - - if (!isValidChessRank(command[3])) { - std::cout << "ERROR: Expected valid rank at four place"; - std::println(); - continue; - } - - // we know its a valid chess pos - int fromFile = command[0] - 'A'; - int fromRank = '8' - command[1]; - int toFile = command[2] - 'A'; - int toRank = '8' - command[3]; - std::cout << fromFile << "\n"; - std::cout << fromRank << "\n"; - std::cout << toFile << "\n"; - std::cout << toRank << "\n"; - Move move = { - {static_cast<uint8_t>(fromRank), static_cast<uint8_t>(fromFile)}, - {static_cast<uint8_t>(toRank), static_cast<uint8_t>(toFile)}}; - - auto moves = GetLegalMoves(b); - if (!(std::ranges::find(moves, move) != moves.end())) { - std::cout << "Invalid move!"; - std::println(); - PrintMoves(moves); - continue; - } - std::println(); - PlayMove(move, b); - printBoard(b); - } - } -} - -void PrintMoves(const std::vector<Move> &moves) { - std::cout << "Moves (" << moves.size() << "):\n"; - - for (const Move &move : moves) { - std::cout << (char)((int)move.From.file + 'A') << 8 - (int)move.From.rank - << " -> " << (char)((int)move.To.file + 'A') - << 8 - (int)move.To.rank << "\n"; - } -} |
