From bfe933551554abeaf5a0dca638428fe42387b13a Mon Sep 17 00:00:00 2001 From: k Date: Thu, 19 Jun 2025 03:48:31 -0400 Subject: [PATCH] pic random move --- src/main.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main.c b/src/main.c index 094594a..3b3e771 100644 --- a/src/main.c +++ b/src/main.c @@ -5,6 +5,7 @@ #include #include #include +#include #include "moves.h" #include "types.h" #include "help.h" @@ -50,12 +51,14 @@ int main() { playMoves(g, lineRest); } else if (!strcmp("ucinewgame", token)) { } else if (!strcmp("isready", token)) { + srand(time(NULL)); printf("readyok\n"); } else if (!strcmp("go", token)) { - - move mov[200]; - int cnt = knightMove(g, mov); - move *m = &mov[0]; + move mov[1500];//big dumb buffer + int cnt = 0; + cnt += pawnMove(g,mov); + cnt += knightMove(g,(mov+cnt)); + move *m = &mov[rand() % cnt]; char *end = ""; int yTo, xTo, yFrom, xFrom; @@ -64,9 +67,9 @@ int main() { xFrom = m->From % 8; yFrom = m->From / 8 + 1; - if ((g->whiteToMove && yTo == 8) || (!g->whiteToMove && yTo == 1)) { - // end = "q\n"; - end = "\n"; + long long bit = 1LL << m->From; + if (((g->whiteToMove && yTo == 8) || (!g->whiteToMove && yTo == 1)) && ((findSet(g,bit) == &g->white.pawns) || (findSet(g,bit) == &g->black.pawns))) { + end = "q\n"; } else { end = "\n"; }