X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=lib%2Fothello.h;h=a591405db2563216aba4452a265b9d895fdc9801;hb=45ce2fe369cead248855111baa5fe0c0495acf69;hp=628f8e1c1a3a706c62d48b65777e0aefb332a5cb;hpb=74e2b93b658575fa792ada51c3bf1cdc3cfde247;p=Project_algorithmic_C.git diff --git a/lib/othello.h b/lib/othello.h index 628f8e1..a591405 100644 --- a/lib/othello.h +++ b/lib/othello.h @@ -20,18 +20,39 @@ #define OTHELLO_H #include "constants.h" - -/* FIXME: declare and initialize the array here */ -//unsigned int pawns[board_size][board_size]; +#include "list.h" + +/* TODO: must be used to replace the explicit pawns 2D array */ +struct pawns_s { + unsigned int pawns[board_size][board_size]; +}; + +/* linked list of played shots */ +struct shots_history_list_s { + struct list_head list; + unsigned int*** pawn_array_member; /* pointer to a cell of the pawns 2D array */ + /* struct* pawns_s pawn */ +}; + +/* linked list of can play shots */ +struct shots_exploration_s { + struct list_head list; + int y; + int x; + unsigned int type; +}; unsigned int current_player(unsigned int round_count); +unsigned int eval_winner(unsigned int nb_white, unsigned int nb_black); int** init_pawns(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); unsigned int get_box_value(int y, int x, unsigned int pawn_array[board_size][board_size]); int** set_pawn(int y, int x, unsigned int type, unsigned int pawn_array[board_size][board_size]); +bool is_valid_input(int y, int x, 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_pawn_type(unsigned int pawn_array[board_size][board_size], unsigned int type); #endif /* OTHELLO_H */