summaryrefslogtreecommitdiff
path: root/src/engine.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine.c')
-rw-r--r--src/engine.c16
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"