diff options
Diffstat (limited to 'src/engine.c')
| -rw-r--r-- | src/engine.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/engine.c b/src/engine.c index 8d22d23..52aa83b 100644 --- a/src/engine.c +++ b/src/engine.c @@ -1,6 +1,7 @@ #include <assert.h> #include "engine/bitboard.h" #include "engine/moves.h" +#include "engine/fen.h" #include "fcntl.h" #include "ipc.c" @@ -23,14 +24,22 @@ int main(void) { while (1) { char* x = read_queue(rx); log_infof("Received: %s", x); + + moves_t moves = moves_init(); + struct fen_load result = load_fen(x); free(x); - send_queue(tx, "Sending", 8); + if (result.failed) { + log_warnf("Invalid fen"); + send_queue(tx, "Failed", 7); + return 0; + } + log_infof("Valid fen"); - moves_t moves = moves_init(); - position_t position = position_starting(); + position_t position = result.position; get_moves(&moves, position); + send_queue(tx, "Sending", 8); char buf[128]; for (int i = 0; i <= moves.length / 32; i++) { for (int ii = 0; ii < 32; ii++) { @@ -52,3 +61,4 @@ int main(void) { #include "engine/bitboard.c" #include "engine/moves.c" +#include "engine/fen.c" |
