Implement the helper functions needed to list the playble shots
[Project_algorithmic_C.git] / lib / othello.h
index e590b02d9790aa014ee4e2e248069c60c0d8dc2b..9800676693bd58f59919d56269428f3ed00c30ad 100644 (file)
 #ifndef OTHELLO_H
 #define OTHELLO_H
 
+#include <stdbool.h>
+
+#include "constants.h"
+#include "list.h"
+
+/* linked list of can play shots */
+struct shots_list_s {
+    struct list_head list;
+    int y;
+    int x;
+    unsigned int type; /* can be white or black or hint allowed or hint_fordidden */
+};
+
+unsigned int current_player(unsigned int round_count);
+unsigned int eval_winner(unsigned int nb_white, unsigned int nb_black);
+
+void zero_pawns(unsigned int pawn_array[board_size][board_size]);
+void init_pawns(unsigned int pawn_array[board_size][board_size]);
+unsigned int get_box_value(int y, int x, unsigned int pawn_array[board_size][board_size]);
+void set_pawn(int y, int x, unsigned int type, unsigned int pawn_array[board_size][board_size]);
+
+bool is_box_type(int y, int x, unsigned int pawn_array[board_size][board_size], unsigned int type);
+bool is_board_full(unsigned int pawn_array[board_size][board_size]);
+
+unsigned int count_pawns_type(unsigned int pawn_array[board_size][board_size], unsigned int type);
+
+unsigned int valid_shot(int y, int x, unsigned int current_player, unsigned int pawn_array[board_size][board_size]);
+
 #endif /* OTHELLO_H */