version 1.4.58b
[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 // defines\r
14 \r
15 #define ListSize 256\r
16 \r
17 // types\r
18 \r
19 typedef struct {\r
20    sint16 size;\r
21    move_t move[ListSize];\r
22    sint16 value[ListSize];\r
23 } list_t;\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);\r
31 extern void list_add_ex   (list_t * list, int move, int value);\r
32 \r
33 extern void list_remove   (list_t * list, int index);\r
34 \r
35 extern bool list_is_empty (const list_t * list);\r
36 extern int  list_size     (const list_t * list);\r
37 \r
38 extern int  list_move     (const list_t * list, int index);\r
39 extern int  list_value    (const list_t * list, int index);\r
40 \r
41 extern void list_copy     (list_t * dst, const list_t * src);\r
42 \r
43 extern void list_note     (list_t * list);\r
44 extern void list_sort     (list_t * list);\r
45 \r
46 extern bool list_contain  (const list_t * list, int move);\r
47 extern bool list_equal    (list_t * list_1, list_t * list_2);\r
48 \r
49 extern void list_disp     (const list_t * list, const board_t * board);\r
50 \r
51 #endif // !defined LIST_H\r
52 \r
53 // end of list.h\r
54 \r