version 1.4b27
[polyglot.git] / list.h
1 \r
2 // list.h\r
3 \r
4 #ifndef LIST_H\r
5 #define LIST_H\r
6 \r
7 // includes\r
8 \r
9 #include "board.h"\r
10 #include "move.h"\r
11 #include "util.h"\r
12 \r
13 // constants\r
14 \r
15 const int ListSize = 256;\r
16 \r
17 // types\r
18 \r
19 struct list_t {\r
20    sint16 size;\r
21    move_t move[ListSize];\r
22    sint16 value[ListSize];\r
23 };\r
24 \r
25 // functions\r
26 \r
27 extern bool list_is_ok    (const list_t * list);\r
28 \r
29 extern void list_clear    (list_t * list);\r
30 extern void list_add      (list_t * list, int move, int value = 0);\r
31 extern void list_remove   (list_t * list, int index);\r
32 \r
33 extern bool list_is_empty (const list_t * list);\r
34 extern int  list_size     (const list_t * list);\r
35 \r
36 extern int  list_move     (const list_t * list, int index);\r
37 extern int  list_value    (const list_t * list, int index);\r
38 \r
39 extern void list_copy     (list_t * dst, const list_t * src);\r
40 \r
41 extern void list_note     (list_t * list);\r
42 extern void list_sort     (list_t * list);\r
43 \r
44 extern bool list_contain  (const list_t * list, int move);\r
45 extern bool list_equal    (list_t * list_1, list_t * list_2);\r
46 \r
47 extern void list_disp     (const list_t * list, const board_t * board);\r
48 \r
49 #endif // !defined LIST_H\r
50 \r
51 // end of list.h\r
52 \r