aboutsummaryrefslogtreecommitdiff
path: root/src/board.cpp
diff options
context:
space:
mode:
authorAdam <adammegarules1@gmail.com>2026-07-26 19:16:57 +0200
committerAdam <adammegarules1@gmail.com>2026-07-26 19:16:57 +0200
commit7e8d89f357aaf8d8a6148ef051752dd53eb0285f (patch)
treeb169dcc4e0bc00bc2bb39c9c4b6ced2d3f518864 /src/board.cpp
parenta8b482443dca91f6410a60e9023c6d9dd853b400 (diff)
adding repl
Diffstat (limited to 'src/board.cpp')
-rw-r--r--src/board.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/board.cpp b/src/board.cpp
index 172a9be..54df662 100644
--- a/src/board.cpp
+++ b/src/board.cpp
@@ -36,7 +36,7 @@ Piece createPiece(pieceType type, bool color, bool moved) {
piece.moved = moved;
return piece;
};
-void printBoard(board *b) {
+void printBoard(Board *b) {
std::string line = " +-----------------+\n";
std::string whiteLetters = " a b c d e f g h\n";
std::string blackLetters = " h g f e d c b a\n";
@@ -89,4 +89,17 @@ void printBoard(board *b) {
std::println("Castling: {}", b->castle);
}
-// void PlayMove(Move move, board *b) { return; }
+void PlayMove(Move move, Board *b) {
+ // TODO: add all fide behavior
+ Piece piece = b->pieces[PositionToIndex(move.From)];
+ Piece piece2 = b->pieces[PositionToIndex(move.To)];
+ if (piece2.type != NONE) {
+ if (piece2.color == b->turn) {
+ assert(false && "capturing friendly piece error");
+ }
+ }
+ b->pieces[PositionToIndex(move.To)] = piece;
+ b->pieces[PositionToIndex(move.From)] = {false, NONE, false};
+ return;
+}
+int PositionToIndex(Position i) { return i.rank * 8 + i.file; }