12
char * my_fcs_move_to_string(fcs_move_t move)
17
case FCS_MOVE_TYPE_STACK_TO_STACK:
18
sprintf(string, "Move %i cards from stack %i to stack %i",
19
move.num_cards_in_sequence,
26
case FCS_MOVE_TYPE_FREECELL_TO_STACK:
27
sprintf(string, "Move a card from freecell %i to stack %i",
34
case FCS_MOVE_TYPE_FREECELL_TO_FREECELL:
35
sprintf(string, "Move a card from freecell %i to freecell %i",
42
case FCS_MOVE_TYPE_STACK_TO_FREECELL:
43
sprintf(string, "Move a card from stack %i to freecell %i",
50
case FCS_MOVE_TYPE_STACK_TO_FOUNDATION:
51
sprintf(string, "Move a card from stack %i to the foundations",
58
case FCS_MOVE_TYPE_FREECELL_TO_FOUNDATION:
59
sprintf(string, "Move a card from freecell %i to the foundations",
70
return strdup(string);
74
int main(int argc, char * argv[])
82
user = freecell_solver_user_alloc();
84
in = fopen("/home/shlomi/progs/freecell-test/0000.board", "rt");
85
fread(buffer, sizeof(buffer[0]), sizeof(buffer)/sizeof(buffer[0]), in);
88
freecell_solver_user_limit_iterations(user, 10000);
90
ret = freecell_solver_user_solve_board(user, buffer);
92
if (ret == FCS_STATE_SUSPEND_PROCESS)
94
freecell_solver_user_limit_iterations(user, -1);
95
ret = freecell_solver_user_resume_solution(user);
98
if (ret == FCS_STATE_WAS_SOLVED)
100
while (freecell_solver_user_get_next_move(user, &move) == 0)
104
string = my_fcs_move_to_string(move);
106
printf("\n%s\n", string);
112
freecell_solver_user_free(user);