49 lines
752 B
C
49 lines
752 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
#pragma once
|
|
|
|
#include <stdint.h>
|
|
#include "config.h"
|
|
|
|
typedef enum {
|
|
QUIT=0,
|
|
PUT,
|
|
POP,
|
|
MOVECOUNT
|
|
} move_t;
|
|
|
|
typedef int column_t;
|
|
|
|
typedef struct {
|
|
int player;
|
|
column_t *height;
|
|
column_t *column;
|
|
uint8_t rows;
|
|
uint8_t columns;
|
|
} board_t;
|
|
|
|
typedef struct {
|
|
column_t *vertical2;
|
|
column_t *horizontal2;
|
|
column_t *diagonalUp2;
|
|
column_t *diagonalDown2;
|
|
column_t *vertical4;
|
|
column_t *horizontal4;
|
|
column_t *diagonalUp4;
|
|
column_t *diagonalDown4;
|
|
} directions_t;
|
|
|
|
typedef struct {
|
|
int total;
|
|
int horizontal;
|
|
int vertical;
|
|
int diagonalUp;
|
|
int diagonalDown;
|
|
} wincount_t;
|
|
|
|
typedef struct {
|
|
wincount_t count0;
|
|
wincount_t count1;
|
|
column_t *win0;
|
|
column_t *win1;
|
|
directions_t same;
|
|
} wins_t;
|