Rev 1 | Rev 7 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1 | Rev 2 | ||
---|---|---|---|
Line 319... | Line 319... | ||
319 | if (!is_hint && (options.engine.blunder_chances > 0) && (rand () % 100 < options.engine.blunder_chances) |
319 | if (!is_hint && (options.engine.blunder_chances > 0) && (rand () % 100 < options.engine.blunder_chances) |
320 | && Move_FindRandomMove (&the_board.moves[the_board.move_count - 1], player->color, &move)) |
320 | && Move_FindRandomMove (&the_board.moves[the_board.move_count - 1], player->color, &move)) |
321 | { |
321 | { |
322 | Move_DescribeInSAN (&move); // build the forced move string |
322 | Move_DescribeInSAN (&move); // build the forced move string |
323 | Player_SendBuffer_Add (player, 1000, L"%s %s\n", options.engine.command_force, move.pgntext); // send it to the engine |
323 | Player_SendBuffer_Add (player, 1000, L"%s %s\n", options.engine.command_force, move.pgntext); // send it to the engine |
324 | #ifndef NDEBUG |
- | |
325 | Player_SendBuffer_Add (player, 1000, L"disp\n"); |
324 | Player_SendBuffer_Add (player, 1000, L"disp\n"); |
326 | #endif |
- | |
327 | Debug_Log (L"===Discarding engine move, forcing a blunderous move (%s) instead===\n", move.pgntext); // blunder |
325 | Debug_Log (L"===Discarding engine move, forcing a blunderous move (%s) instead===\n", move.pgntext); // blunder |
328 | } |
326 | } |
329 | 327 | ||
330 | // mark the engine's selected and hovered squares |
328 | // mark the engine's selected and hovered squares |
331 | Board_SetSelectedAndHovered (&the_board, move.source[0], move.source[1], move.target[0], move.target[1]); |
329 | Board_SetSelectedAndHovered (&the_board, move.source[0], move.source[1], move.target[0], move.target[1]); |
Line 385... | Line 383... | ||
385 | Player_SendBuffer_Add (player, 1000, L"%s %s\n", options.engine.command_setboard, the_board.moves[the_board.move_count - 1].fen_string); |
383 | Player_SendBuffer_Add (player, 1000, L"%s %s\n", options.engine.command_setboard, the_board.moves[the_board.move_count - 1].fen_string); |
386 | 384 | ||
387 | // and reset current obstinacy |
385 | // and reset current obstinacy |
388 | current_obstinacy = 0; |
386 | current_obstinacy = 0; |
389 | 387 | ||
390 | #ifndef NDEBUG |
- | |
391 | Player_SendBuffer_Add (player, 1000, L"disp\n"); |
388 | Player_SendBuffer_Add (player, 1000, L"disp\n"); |
392 | #endif |
- | |
393 | } |
389 | } |
394 | 390 | ||
395 | // have we been notified that players are swapping colors ? (N.B. when this happens in human vs. computer mode, it's always that the human player is *GIVING* his turn) |
391 | // have we been notified that players are swapping colors ? (N.B. when this happens in human vs. computer mode, it's always that the human player is *GIVING* his turn) |
396 | if (the_board.want_playerswap) |
392 | if (the_board.want_playerswap) |
397 | { |
393 | { |
Line 409... | Line 405... | ||
409 | { |
405 | { |
410 | // is it NOT a board setup AND has at least one move been played (meaning it was just the other's turn before) ? |
406 | // is it NOT a board setup AND has at least one move been played (meaning it was just the other's turn before) ? |
411 | if (!the_board.was_setup && (the_board.move_count > 1)) |
407 | if (!the_board.was_setup && (the_board.move_count > 1)) |
412 | { |
408 | { |
413 | Debug_Log (L"===Player just played, sending Crafty the chosen move===\n"); |
409 | Debug_Log (L"===Player just played, sending Crafty the chosen move===\n"); |
414 | #ifndef NDEBUG |
- | |
415 | Player_SendBuffer_Add (player, 1000, L"disp\n"); |
410 | Player_SendBuffer_Add (player, 1000, L"disp\n"); |
416 | #endif |
- | |
417 | 411 | ||
418 | // instruct it about its allowed search depth BEFORE each move (this ensures engine will be "ready" to handle the command) |
412 | // instruct it about its allowed search depth BEFORE each move (this ensures engine will be "ready" to handle the command) |
419 | // then build the move string, and send the move string to the engine |
413 | // then build the move string, and send the move string to the engine |
420 | Player_SendBuffer_Add (player, 1000, L"%s %d\n", options.engine.command_sd, options.engine.depth); |
414 | Player_SendBuffer_Add (player, 1000, L"%s %d\n", options.engine.command_sd, options.engine.depth); |
421 | Move_BuildString (&the_board.moves[the_board.move_count - 1], line_buffer, WCHAR_SIZEOF (line_buffer)); |
415 | Move_BuildString (&the_board.moves[the_board.move_count - 1], line_buffer, WCHAR_SIZEOF (line_buffer)); |
Line 459... | Line 453... | ||
459 | // instruct it about its allowed search depth BEFORE each table set (this ensures engine will be "ready" to handle the command) |
453 | // instruct it about its allowed search depth BEFORE each table set (this ensures engine will be "ready" to handle the command) |
460 | // then get the current game state in FEN format and feed it to the engine |
454 | // then get the current game state in FEN format and feed it to the engine |
461 | Player_SendBuffer_Add (player, 1000, L"%s %d\n", options.engine.command_sd, options.engine.depth); |
455 | Player_SendBuffer_Add (player, 1000, L"%s %d\n", options.engine.command_sd, options.engine.depth); |
462 | Player_SendBuffer_Add (player, 1000, L"%s %s\n", options.engine.command_setboard, the_board.moves[the_board.move_count - 1].fen_string); |
456 | Player_SendBuffer_Add (player, 1000, L"%s %s\n", options.engine.command_setboard, the_board.moves[the_board.move_count - 1].fen_string); |
463 | 457 | ||
464 | #ifndef NDEBUG |
- | |
465 | Player_SendBuffer_Add (player, 1000, L"disp\n"); |
458 | Player_SendBuffer_Add (player, 1000, L"disp\n"); |
466 | #endif |
- | |
467 | 459 | ||
468 | do_update = true; // remember to update the 3D scene |
460 | do_update = true; // remember to update the 3D scene |
469 | } |
461 | } |
470 | } |
462 | } |
471 | 463 |