From 72f3431418f51373e553110248256a77bb597ad3 Mon Sep 17 00:00:00 2001 From: Karma Riuk Date: Thu, 6 Feb 2025 16:15:56 +0100 Subject: [PATCH] big refactoring: put everything in model to allow for better mvc structure (yes i'm doing view in cpp) --- cpp/src/main.cpp | 14 +++++++++----- cpp/src/{ => model}/ais/ai.hpp | 2 +- cpp/src/{ => model}/ais/v0_random.cpp | 0 cpp/src/{ => model}/ais/v1_simple.cpp | 2 +- cpp/src/{ => model/board}/board.cpp | 6 +++--- cpp/src/{ => model/board}/board.hpp | 6 +++--- cpp/src/{ => model/board}/castle_side.hpp | 0 cpp/src/{ => model/perft}/perft.cpp | 6 +++--- cpp/src/{ => model/perft}/perft.hpp | 0 cpp/src/{ => model}/pieces/bishop.cpp | 6 +++--- cpp/src/{ => model}/pieces/king.cpp | 5 +++-- cpp/src/{ => model}/pieces/knight.cpp | 6 +++--- cpp/src/{ => model}/pieces/pawn.cpp | 11 +++++------ cpp/src/{ => model}/pieces/piece.cpp | 5 +++-- cpp/src/{ => model}/pieces/piece.hpp | 0 cpp/src/{ => model}/pieces/queen.cpp | 6 +++--- cpp/src/{ => model}/pieces/rook.cpp | 6 +++--- cpp/src/{ => model/utils}/coords.hpp | 0 cpp/src/{ => model/utils}/move.hpp | 4 ++-- cpp/src/{ => model/utils}/threadpool.hpp | 0 20 files changed, 45 insertions(+), 40 deletions(-) rename cpp/src/{ => model}/ais/ai.hpp (95%) rename cpp/src/{ => model}/ais/v0_random.cpp (100%) rename cpp/src/{ => model}/ais/v1_simple.cpp (98%) rename cpp/src/{ => model/board}/board.cpp (99%) rename cpp/src/{ => model/board}/board.hpp (94%) rename cpp/src/{ => model/board}/castle_side.hpp (100%) rename cpp/src/{ => model/perft}/perft.cpp (98%) rename cpp/src/{ => model/perft}/perft.hpp (100%) rename cpp/src/{ => model}/pieces/bishop.cpp (85%) rename cpp/src/{ => model}/pieces/king.cpp (96%) rename cpp/src/{ => model}/pieces/knight.cpp (87%) rename cpp/src/{ => model}/pieces/pawn.cpp (92%) rename cpp/src/{ => model}/pieces/piece.cpp (95%) rename cpp/src/{ => model}/pieces/piece.hpp (100%) rename cpp/src/{ => model}/pieces/queen.cpp (90%) rename cpp/src/{ => model}/pieces/rook.cpp (85%) rename cpp/src/{ => model/utils}/coords.hpp (100%) rename cpp/src/{ => model/utils}/move.hpp (93%) rename cpp/src/{ => model/utils}/threadpool.hpp (100%) diff --git a/cpp/src/main.cpp b/cpp/src/main.cpp index 3c18d61..a6df091 100644 --- a/cpp/src/main.cpp +++ b/cpp/src/main.cpp @@ -1,4 +1,6 @@ -#include "ais/ai.hpp" +#include "model/ais/ai.hpp" +#include "model/board/board.hpp" +#include "model/perft/perft.hpp" #include @@ -6,9 +8,11 @@ int main(int argc, char* argv[]) { std::string pos = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"; - ai::v1_simple ai; - - std::string move = ai.search(pos, 4); - std::cout << move << std::endl; + perft(); + // ai::v1_simple ai; + // + // Board b = Board::setup_fen_position(pos); + // Move move = ai.search(b, true); + // std::cout << move << std::endl; return 0; } diff --git a/cpp/src/ais/ai.hpp b/cpp/src/model/ais/ai.hpp similarity index 95% rename from cpp/src/ais/ai.hpp rename to cpp/src/model/ais/ai.hpp index 7e56206..158522d 100644 --- a/cpp/src/ais/ai.hpp +++ b/cpp/src/model/ais/ai.hpp @@ -1,6 +1,6 @@ #pragma once -#include "../board.hpp" +#include "../board/board.hpp" #include diff --git a/cpp/src/ais/v0_random.cpp b/cpp/src/model/ais/v0_random.cpp similarity index 100% rename from cpp/src/ais/v0_random.cpp rename to cpp/src/model/ais/v0_random.cpp diff --git a/cpp/src/ais/v1_simple.cpp b/cpp/src/model/ais/v1_simple.cpp similarity index 98% rename from cpp/src/ais/v1_simple.cpp rename to cpp/src/model/ais/v1_simple.cpp index 32bb6ab..56972c5 100644 --- a/cpp/src/ais/v1_simple.cpp +++ b/cpp/src/model/ais/v1_simple.cpp @@ -1,5 +1,5 @@ #include "../pieces/piece.hpp" -#include "../threadpool.hpp" +#include "../utils/threadpool.hpp" #include "ai.hpp" #include diff --git a/cpp/src/board.cpp b/cpp/src/model/board/board.cpp similarity index 99% rename from cpp/src/board.cpp rename to cpp/src/model/board/board.cpp index 415ab24..32dac06 100644 --- a/cpp/src/board.cpp +++ b/cpp/src/model/board/board.cpp @@ -1,8 +1,8 @@ #include "board.hpp" -#include "coords.hpp" -#include "move.hpp" -#include "pieces/piece.hpp" +#include "../pieces/piece.hpp" +#include "../utils/coords.hpp" +#include "../utils/move.hpp" #include #include diff --git a/cpp/src/board.hpp b/cpp/src/model/board/board.hpp similarity index 94% rename from cpp/src/board.hpp rename to cpp/src/model/board/board.hpp index b2d8e0d..76d1dad 100644 --- a/cpp/src/board.hpp +++ b/cpp/src/model/board/board.hpp @@ -1,8 +1,8 @@ #pragma once -#include "coords.hpp" -#include "move.hpp" -#include "pieces/piece.hpp" +#include "../pieces/piece.hpp" +#include "../utils/coords.hpp" +#include "../utils/move.hpp" #include diff --git a/cpp/src/castle_side.hpp b/cpp/src/model/board/castle_side.hpp similarity index 100% rename from cpp/src/castle_side.hpp rename to cpp/src/model/board/castle_side.hpp diff --git a/cpp/src/perft.cpp b/cpp/src/model/perft/perft.cpp similarity index 98% rename from cpp/src/perft.cpp rename to cpp/src/model/perft/perft.cpp index 41f7e62..b05bd4c 100644 --- a/cpp/src/perft.cpp +++ b/cpp/src/model/perft/perft.cpp @@ -1,8 +1,8 @@ #include "perft.hpp" -#include "board.hpp" -#include "move.hpp" -#include "threadpool.hpp" +#include "../board/board.hpp" +#include "../utils/move.hpp" +#include "../utils/threadpool.hpp" #include #include diff --git a/cpp/src/perft.hpp b/cpp/src/model/perft/perft.hpp similarity index 100% rename from cpp/src/perft.hpp rename to cpp/src/model/perft/perft.hpp diff --git a/cpp/src/pieces/bishop.cpp b/cpp/src/model/pieces/bishop.cpp similarity index 85% rename from cpp/src/pieces/bishop.cpp rename to cpp/src/model/pieces/bishop.cpp index 472c83e..3bca3d1 100644 --- a/cpp/src/pieces/bishop.cpp +++ b/cpp/src/model/pieces/bishop.cpp @@ -1,6 +1,6 @@ -#include "../board.hpp" -#include "../coords.hpp" -#include "../move.hpp" +#include "../board/board.hpp" +#include "../utils/coords.hpp" +#include "../utils/move.hpp" #include "piece.hpp" #include diff --git a/cpp/src/pieces/king.cpp b/cpp/src/model/pieces/king.cpp similarity index 96% rename from cpp/src/pieces/king.cpp rename to cpp/src/model/pieces/king.cpp index 5dd0024..ffdda83 100644 --- a/cpp/src/pieces/king.cpp +++ b/cpp/src/model/pieces/king.cpp @@ -1,5 +1,6 @@ -#include "../board.hpp" -#include "../coords.hpp" +#include "../board/board.hpp" +#include "../utils/coords.hpp" +#include "../utils/move.hpp" #include "piece.hpp" static bool is_clear_king_side(const Board& b, const Coords xy) { diff --git a/cpp/src/pieces/knight.cpp b/cpp/src/model/pieces/knight.cpp similarity index 87% rename from cpp/src/pieces/knight.cpp rename to cpp/src/model/pieces/knight.cpp index e38c0c5..79b0ac2 100644 --- a/cpp/src/pieces/knight.cpp +++ b/cpp/src/model/pieces/knight.cpp @@ -1,6 +1,6 @@ -#include "../board.hpp" -#include "../coords.hpp" -#include "../move.hpp" +#include "../board/board.hpp" +#include "../utils/coords.hpp" +#include "../utils/move.hpp" #include "piece.hpp" #include diff --git a/cpp/src/pieces/pawn.cpp b/cpp/src/model/pieces/pawn.cpp similarity index 92% rename from cpp/src/pieces/pawn.cpp rename to cpp/src/model/pieces/pawn.cpp index c5e6487..dbac2b3 100644 --- a/cpp/src/pieces/pawn.cpp +++ b/cpp/src/model/pieces/pawn.cpp @@ -1,6 +1,6 @@ -#include "../board.hpp" -#include "../coords.hpp" -#include "../move.hpp" +#include "../board/board.hpp" +#include "../utils/coords.hpp" +#include "../utils/move.hpp" #include "piece.hpp" std::vector pawn_moves(const Board& b, const Coords xy) { @@ -16,12 +16,11 @@ std::vector pawn_moves(const Board& b, const Coords xy) { if (my_colour != b.colour_at(left)) if ((my_colour == White && left.y == 7) || (my_colour == Black && left.y == 0)) - for (auto piece : {Rook, Knigt, Bishop, Queen}) ret.push_back(Move{ xy.to_index(), left.to_index(), - .promoting_to = (int8_t) (my_colour | piece) + (int8_t) (my_colour | piece) }); else ret.push_back(Move{xy.to_index(), left.to_index()}); @@ -42,7 +41,7 @@ std::vector pawn_moves(const Board& b, const Coords xy) { ret.push_back(Move{ xy.to_index(), right.to_index(), - .promoting_to = (int8_t) (my_colour | piece) + (int8_t) (my_colour | piece) }); else ret.push_back(Move{xy.to_index(), right.to_index()}); diff --git a/cpp/src/pieces/piece.cpp b/cpp/src/model/pieces/piece.cpp similarity index 95% rename from cpp/src/pieces/piece.cpp rename to cpp/src/model/pieces/piece.cpp index c6e638a..4eeace0 100644 --- a/cpp/src/pieces/piece.cpp +++ b/cpp/src/model/pieces/piece.cpp @@ -1,7 +1,8 @@ #include "piece.hpp" -#include "../board.hpp" -#include "../coords.hpp" +#include "../board/board.hpp" +#include "../utils/coords.hpp" +#include "../utils/move.hpp" std::vector keep_only_blocking(const std::vector candidates, const Board& board) { diff --git a/cpp/src/pieces/piece.hpp b/cpp/src/model/pieces/piece.hpp similarity index 100% rename from cpp/src/pieces/piece.hpp rename to cpp/src/model/pieces/piece.hpp diff --git a/cpp/src/pieces/queen.cpp b/cpp/src/model/pieces/queen.cpp similarity index 90% rename from cpp/src/pieces/queen.cpp rename to cpp/src/model/pieces/queen.cpp index adc03bc..94cad27 100644 --- a/cpp/src/pieces/queen.cpp +++ b/cpp/src/model/pieces/queen.cpp @@ -1,6 +1,6 @@ -#include "../board.hpp" -#include "../coords.hpp" -#include "../move.hpp" +#include "../board/board.hpp" +#include "../utils/coords.hpp" +#include "../utils/move.hpp" #include "piece.hpp" #include diff --git a/cpp/src/pieces/rook.cpp b/cpp/src/model/pieces/rook.cpp similarity index 85% rename from cpp/src/pieces/rook.cpp rename to cpp/src/model/pieces/rook.cpp index 1d389d7..b216719 100644 --- a/cpp/src/pieces/rook.cpp +++ b/cpp/src/model/pieces/rook.cpp @@ -1,6 +1,6 @@ -#include "../board.hpp" -#include "../coords.hpp" -#include "../move.hpp" +#include "../board/board.hpp" +#include "../utils/coords.hpp" +#include "../utils/move.hpp" #include "piece.hpp" #include diff --git a/cpp/src/coords.hpp b/cpp/src/model/utils/coords.hpp similarity index 100% rename from cpp/src/coords.hpp rename to cpp/src/model/utils/coords.hpp diff --git a/cpp/src/move.hpp b/cpp/src/model/utils/move.hpp similarity index 93% rename from cpp/src/move.hpp rename to cpp/src/model/utils/move.hpp index 0f358b6..e893176 100644 --- a/cpp/src/move.hpp +++ b/cpp/src/model/utils/move.hpp @@ -1,8 +1,8 @@ #pragma once -#include "castle_side.hpp" +#include "../board/castle_side.hpp" +#include "../pieces/piece.hpp" #include "coords.hpp" -#include "pieces/piece.hpp" #include #include diff --git a/cpp/src/threadpool.hpp b/cpp/src/model/utils/threadpool.hpp similarity index 100% rename from cpp/src/threadpool.hpp rename to cpp/src/model/utils/threadpool.hpp