~ubuntu-branches/ubuntu/natty/freecell-solver/natty

« back to all changes in this revision

Viewing changes to test_lib.c

  • Committer: Bazaar Package Importer
  • Author(s): RISKO Gergely
  • Date: 2005-03-30 20:12:47 UTC
  • mfrom: (1.1.1 upstream) (2.1.1 warty)
  • Revision ID: james.westby@ubuntu.com-20050330201247-8qdt6jhg7kxr3gjy
Tags: 2.8.10-1
* New upstream release
* fixed override disparity

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#include <stdio.h>
2
 
#include <stdlib.h>
3
 
#include <string.h>
4
 
 
5
 
#include "fcs_user.h"
6
 
 
7
 
#ifdef DMALLOC
8
 
#include "dmalloc.h"
9
 
#endif
10
 
 
11
 
 
12
 
char * my_fcs_move_to_string(fcs_move_t move)
13
 
{
14
 
    char string[256];
15
 
    switch(move.type)
16
 
    {
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,
20
 
                move.src_stack,
21
 
                move.dest_stack
22
 
                );
23
 
 
24
 
        break;
25
 
 
26
 
        case FCS_MOVE_TYPE_FREECELL_TO_STACK:
27
 
            sprintf(string, "Move a card from freecell %i to stack %i",
28
 
                move.src_freecell,
29
 
                move.dest_stack
30
 
                );
31
 
 
32
 
        break;
33
 
 
34
 
        case FCS_MOVE_TYPE_FREECELL_TO_FREECELL:
35
 
            sprintf(string, "Move a card from freecell %i to freecell %i",
36
 
                move.src_freecell,
37
 
                move.dest_freecell
38
 
                );
39
 
 
40
 
        break;
41
 
 
42
 
        case FCS_MOVE_TYPE_STACK_TO_FREECELL:
43
 
            sprintf(string, "Move a card from stack %i to freecell %i",
44
 
                move.src_stack,
45
 
                move.dest_freecell
46
 
                );
47
 
 
48
 
        break;
49
 
 
50
 
        case FCS_MOVE_TYPE_STACK_TO_FOUNDATION:
51
 
            sprintf(string, "Move a card from stack %i to the foundations",
52
 
                move.src_stack
53
 
                );
54
 
 
55
 
        break;
56
 
 
57
 
 
58
 
        case FCS_MOVE_TYPE_FREECELL_TO_FOUNDATION:
59
 
            sprintf(string, "Move a card from freecell %i to the foundations",
60
 
                move.src_freecell
61
 
                );
62
 
 
63
 
        break;
64
 
 
65
 
        default:
66
 
            string[0] = '\0';
67
 
        break;
68
 
    }
69
 
 
70
 
    return strdup(string);
71
 
 
72
 
}
73
 
 
74
 
int main(int argc, char * argv[])
75
 
{
76
 
    void * user;
77
 
    FILE * in;
78
 
    char buffer[2048];
79
 
    int ret;
80
 
    fcs_move_t move;
81
 
 
82
 
    user = freecell_solver_user_alloc();
83
 
 
84
 
    in = fopen("/home/shlomi/progs/freecell-test/0000.board", "rt");
85
 
    fread(buffer, sizeof(buffer[0]), sizeof(buffer)/sizeof(buffer[0]), in);
86
 
    fclose(in);
87
 
 
88
 
    freecell_solver_user_limit_iterations(user, 10000);
89
 
 
90
 
    ret = freecell_solver_user_solve_board(user, buffer);
91
 
 
92
 
    if (ret == FCS_STATE_SUSPEND_PROCESS)
93
 
    {
94
 
        freecell_solver_user_limit_iterations(user, -1);
95
 
        ret = freecell_solver_user_resume_solution(user);
96
 
    }
97
 
 
98
 
    if (ret == FCS_STATE_WAS_SOLVED)
99
 
    {
100
 
        while (freecell_solver_user_get_next_move(user, &move) == 0)
101
 
        {
102
 
            char * string;
103
 
 
104
 
            string = my_fcs_move_to_string(move);
105
 
 
106
 
            printf("\n%s\n", string);
107
 
 
108
 
            free(string);
109
 
        }
110
 
    }
111
 
 
112
 
    freecell_solver_user_free(user);
113
 
 
114
 
    return 0;
115
 
}