static void remember_previous_move_as_undecidable(void) { append_to_table(exclusive_chess_undecidable_continuations[parent_ply[nbply]]); TraceValue("%u",nbply); TraceValue("%u",parent_ply[nbply]); TraceValue("%u\n",table_length(exclusive_chess_undecidable_continuations[parent_ply[nbply]])); }
/* Try to solve in solve_nr_remaining half-moves. * @param si slice index * @note assigns solve_result the length of solution found and written, i.e.: * previous_move_is_illegal the move just played is illegal * this_move_is_illegal the move being played is illegal * immobility_on_next_move the moves just played led to an * unintended immobility on the next move * <=n+1 length of shortest solution found (n+1 only if in next * branch) * n+2 no solution found in this branch * n+3 no solution found in next branch * (with n denominating solve_nr_remaining) */ void threat_collector_solve(slice_index si) { TraceFunctionEntry(__func__); TraceFunctionParam("%u",si); TraceFunctionParamListEnd(); pipe_solve_delegate(si); if (move_has_solved()) append_to_table(threats[parent_ply[parent_ply[nbply]]]); TraceFunctionExit(__func__); TraceFunctionResultEnd(); }