diff options
Diffstat (limited to 'src/engine/bitboard.c')
| -rw-r--r-- | src/engine/bitboard.c | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/src/engine/bitboard.c b/src/engine/bitboard.c deleted file mode 100644 index 565f425..0000000 --- a/src/engine/bitboard.c +++ /dev/null @@ -1,58 +0,0 @@ -#include "bitboard.h" -#include <stdio.h> -#include <inttypes.h> -#include <assert.h> - -position_t position_starting() { - return (position_t) { - .bitboards = { - 16ULL, - 8ULL, - 129ULL, - 36ULL, - 66ULL, - 65280ULL, - 1152921504606846976ULL, - 576460752303423488ULL, - 9295429630892703744ULL, - 2594073385365405696ULL, - 4755801206503243776ULL, - 71776119061217280ULL, - }, - .castling = - WHITE_SHORT_CASTLE | WHITE_LONG_CASTLE | - BLACK_SHORT_CASTLE | BLACK_LONG_CASTLE, - .turn = WHITE_TURN, - .passantable_file = 0, - .halfmove_clock = 0, - .fullmove_clock = 1 - }; -} - -void assert_valid_position(position_t position) { - assert(check_valid_position(position) == true); -} - -bool check_valid_position(position_t position) { - if (position.castling > - ( - WHITE_SHORT_CASTLE | WHITE_LONG_CASTLE | - BLACK_SHORT_CASTLE | BLACK_LONG_CASTLE - ) - ) return false; - if (position.turn != WHITE_TURN && position.turn != BLACK_TURN) return false; - if (position.passantable_file > 8) return false; // 0 means no passant - if (position.bitboards[WHITE_KING] == 0) return false; - if (position.bitboards[BLACK_KING] == 0) return false; - return true; -} - -void print_bitboard(bitboard_t bitboard) { - printf("Bitboard(%" PRIu64 ")\n", bitboard); - for (int i = 7; i >= 0; i--) { - for (int j = 0; j < 8; j++) { - printf("%" PRIu64 "", (bitboard >> (8 * i + j)) & 1); - } - printf("\n"); - } -} |
