X-Git-Url: http://winboard.nl/cgi-bin?p=capablanca.git;a=blobdiff_plain;f=lasker-2.2.3%2Fsrc%2Feco.c;h=5f9826739a60f4fc20b6b737c93e10a49a5f4c55;hp=5d1373899349ee22e7ec7d4402ceb120ae945fc4;hb=5317b80b41045bd23473faf4748a9539a06e5f52;hpb=fc8a38817986f2ad7a034db0d413762e509a7cac diff --git a/lasker-2.2.3/src/eco.c b/lasker-2.2.3/src/eco.c old mode 100755 new mode 100644 index 5d13738..5f98267 --- a/lasker-2.2.3/src/eco.c +++ b/lasker-2.2.3/src/eco.c @@ -48,66 +48,66 @@ static int ECO_entries, NIC_entries, LONG_entries; void FEN_to_board(char* FENpos, struct game_state_t* gs) { - int f,r; - char next; -printf("FEN, var='%s'\n", gs->variant); - for (r=gs->ranks-1; r >=0; r--) { - f=0; - while (ffiles) { - next = *(FENpos++); - if (isalpha(next)) - gs->board[f++][r] = CharToPiece(next, gs->variant); - else if (next != '/') { - int t = (next - '0'); - if(*FENpos >= '0' && *FENpos <= '9') // [HGM] can be double-digit - t = 10*t + *(FENpos++) - '0'; - do - gs->board[f++][r] = NOPIECE; - while (--t && f < gs->files); - } - } - } - if (*(FENpos + 1) == 'w') /* the char after the space */ - gs->onMove = WHITE; - else - gs->onMove = BLACK; + int f,r; + char next; +printf("FEN='%s', var='%s'\n", FENpos, gs->variant); + for (r=gs->ranks-1; r >=0; r--) { + f=0; + while (ffiles) { + next = *(FENpos++); + if (isalpha(next)) + gs->board[f++][r] = CharToPiece(next, gs->variant); + else if (next != '/') { + int t = (next - '0'); + if(*FENpos >= '0' && *FENpos <= '9') // [HGM] can be double-digit + t = 10*t + *(FENpos++) - '0'; + do + gs->board[f++][r] = NOPIECE; + while (--t && f < gs->files); + } + } + } + if (*(FENpos + 1) == 'w') /* the char after the space */ + gs->onMove = WHITE; + else + gs->onMove = BLACK; } /* converts a board to a FEN pos */ static void board_to_FEN(char* FENpos, struct game_state_t* gs) { - int f,r,count; - char piece; - - for (r=gs->ranks-1; r>=0; r--) { - count = 0; - for (f=0; ffiles; f++) { - if ((piece = PieceToChar(gs->board[f][r])) != ' ') { - if (count) { - if(count > 9) { count -= 10; *(FENpos++) = '1'; } - *(FENpos++) = count + '0'; - count = 0; - } - *(FENpos++) = piece; - } else { - if (f == gs->files-1) { - if(count > 8) { count -= 10; *(FENpos++) = '1'; } - *(FENpos++) = count + '0' + 1; - } else - count++; - } - } - *(FENpos++) = '/'; - } - - *(--FENpos) = ' '; - - if (gs->onMove == WHITE) - *(++FENpos) = 'w'; - else - *(++FENpos) = 'b'; - *(++FENpos) = '\0'; + int f,r,count; + char piece; + + for (r=gs->ranks-1; r>=0; r--) { + count = 0; + for (f=0; ffiles; f++) { + if ((piece = PieceToChar(gs->board[f][r])) != ' ') { + if (count) { + if(count > 9) { count -= 10; *(FENpos++) = '1'; } + *(FENpos++) = count + '0'; + count = 0; + } + *(FENpos++) = piece; + } else { + if (f == gs->files-1) { + if(count > 8) { count -= 10; *(FENpos++) = '1'; } + *(FENpos++) = count + '0' + 1; + } else + count++; + } + } + *(FENpos++) = '/'; + } + + *(--FENpos) = ' '; + + if (gs->onMove == WHITE) + *(++FENpos) = 'w'; + else + *(++FENpos) = 'b'; + *(++FENpos) = '\0'; } char *boardToFEN(int g)