Made configuring column size easier

This commit is contained in:
AnnaSnoeijs 2025-06-06 21:31:59 +02:00
parent b7a6b41b38
commit 07e65019bc
2 changed files with 21 additions and 14 deletions

View file

@ -19,6 +19,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <limits.h>
#include <getopt.h>
#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

26
types.h
View file

@ -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;