24bf9fb30750f47dedb4b170ef58f5a2e7e57df4
[Project_algorithmic_C.git] / lib / othello.h
1 /*
2 * =====================================================================================
3 *
4 * Filename: othello.h
5 *
6 * Description: Header for othello board handling functions
7 *
8 * Version: 1.0
9 * Created: 25/04/2017 15:16:37
10 * Revision: none
11 * Compiler: gcc
12 *
13 * Author: Jerome Benoit (fraggle), jerome.benoit@piment-noir.org
14 * Organization: Piment Noir
15 *
16 * =====================================================================================
17 */
18
19 #ifndef OTHELLO_H
20 #define OTHELLO_H
21
22 #include "constants.h"
23 #include "list.h"
24
25 struct shots_list {
26 struct list_head list;
27 unsigned int*** pawn_array_member;
28 };
29
30 unsigned int current_player(unsigned int round_count);
31 unsigned int eval_winner(unsigned int nb_white, unsigned int nb_black);
32
33 int** init_pawns(unsigned int pawn_array[board_size][board_size]);
34 unsigned int get_box_value(int y, int x, unsigned int pawn_array[board_size][board_size]);
35 int** set_pawn(int y, int x, unsigned int type, unsigned int pawn_array[board_size][board_size]);
36
37 bool is_valid_input(int y, int x, unsigned int pawn_array[board_size][board_size]);
38 bool is_box_type(int y, int x, unsigned int pawn_array[board_size][board_size], unsigned int type);
39 bool is_board_full(unsigned int pawn_array[board_size][board_size]);
40
41 unsigned int count_pawn_type(unsigned int pawn_array[board_size][board_size], unsigned int type);
42
43 #endif /* OTHELLO_H */