From 07e65019bccf393e42ad7b0630dc699555f2364f Mon Sep 17 00:00:00 2001 From: AnnaSnoeijs Date: Fri, 6 Jun 2025 21:31:59 +0200 Subject: [PATCH] Made configuring column size easier --- connect4.c | 9 +++++++-- types.h | 26 ++++++++++++++------------ 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/connect4.c b/connect4.c index 896557b..536c327 100644 --- a/connect4.c +++ b/connect4.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include "macros.h" #include "config.h" @@ -131,10 +132,14 @@ int main( int argc, char *argv[] ){ fprintf( stderr, "ERR: AMOUT OF ROWS MUST BE AT LEAST 1\n" ); return -1; } - if( playboard.rows >= 32 ){ - fprintf( stderr, "ERR: AMOUT OF ROWS MUST BE LESS THAN 32\n" ); +#define ROWOVERFLOW ( sizeof(column_t) * CHAR_BIT ) + if( playboard.rows >= ROWOVERFLOW ){ + fprintf( stderr, + "ERR: AMOUT OF ROWS MUST BE LESS THAN %d\n", (int)ROWOVERFLOW + ); return -1; } +#undef ROWOVERFLOW // Start the actual program printf( VERSIONSTRING diff --git a/types.h b/types.h index b55d6d6..a31977c 100644 --- a/types.h +++ b/types.h @@ -11,23 +11,25 @@ typedef enum { MOVECOUNT } move_t; +typedef int column_t; + typedef struct { int player; - int *height; - int *column; + column_t *height; + column_t *column; uint8_t rows; uint8_t columns; } board_t; typedef struct { - int *vertical2; - int *horizontal2; - int *diagonalUp2; - int *diagonalDown2; - int *vertical4; - int *horizontal4; - int *diagonalUp4; - int *diagonalDown4; + 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 { @@ -41,7 +43,7 @@ typedef struct { typedef struct { wincount_t count0; wincount_t count1; - int *win0; - int *win1; + column_t *win0; + column_t *win1; directions_t same; } wins_t;