Fixed a typo

This commit is contained in:
AnnaSnoeijs 2025-06-06 21:31:59 +02:00
parent 1855c2e1cf
commit b05a803cd8
6 changed files with 42 additions and 42 deletions

View file

@ -2,7 +2,7 @@
#pragma once #pragma once
#define BOARD_WIDTH 7 #define BOARD_WIDTH 7
#define BOARD_HEIGTH 6 #define BOARD_HEIGHT 6
#define FIRST_NUMBER 1 #define FIRST_NUMBER 1

View file

@ -38,7 +38,7 @@ int main(){
board_t playboard = { board_t playboard = {
.player = 0, .player = 0,
.column = {0}, .column = {0},
.heigth = {0}, .height = {0},
}; };
wins_t wins = { wins_t wins = {
.count0 = { .count0 = {

24
logic.c
View file

@ -26,12 +26,12 @@ static inline int bottom( const int a, const int b ){
return a < b ? a : b; return a < b ? a : b;
} }
static inline int heigthMask( const int a ){ static inline int heightMask( const int a ){
return ( 1 << a ) - 1; return ( 1 << a ) - 1;
} }
static inline int safeHeigthMask( const int a ){ static inline int safeHeigthMask( const int a ){
return a > 0 ? heigthMask( a ) : 0; return a > 0 ? heightMask( a ) : 0;
} }
static inline int bottomHeigthMask( const int a, const int b ){ static inline int bottomHeigthMask( const int a, const int b ){
@ -50,13 +50,13 @@ void playMove(
case PUT: // Put a new piece in the board case PUT: // Put a new piece in the board
#endif /* ! ONLYPUT */ #endif /* ! ONLYPUT */
boardptr->column [ column ] |= boardptr->column [ column ] |=
boardptr->player << boardptr->heigth [ column ]; boardptr->player << boardptr->height [ column ];
boardptr->heigth [ column ]++; boardptr->height [ column ]++;
#ifndef ONLYPUT #ifndef ONLYPUT
break; break;
case POP: // Pop out the lowest and make all above fall down case POP: // Pop out the lowest and make all above fall down
boardptr->column [ column ] >>= 1; boardptr->column [ column ] >>= 1;
boardptr->heigth [ column ]--; boardptr->height [ column ]--;
} }
#endif /* ! ONLYPUT */ #endif /* ! ONLYPUT */
} }
@ -73,7 +73,7 @@ void calcWins(
wins->same.vertical2 [ i ] = wins->same.vertical2 [ i ] =
~( board.column [ i ] ~( board.column [ i ]
^ board.column [ i ] >> 1 ) ^ board.column [ i ] >> 1 )
& safeHeigthMask( board.heigth [ i ] - 1 ); & safeHeigthMask( board.height [ i ] - 1 );
// Actually check for win // Actually check for win
wins->same.vertical4 [ i ] = wins->same.vertical4 [ i ] =
wins->same.vertical2 [ i ] wins->same.vertical2 [ i ]
@ -100,22 +100,22 @@ void calcWins(
~( board.column [ i ] ~( board.column [ i ]
^ board.column [ i + 1 ] ) ^ board.column [ i + 1 ] )
& bottomHeigthMask( & bottomHeigthMask(
board.heigth [ i ], board.height [ i ],
board.heigth [ i + 1 ] board.height [ i + 1 ]
); );
wins->same.diagonalUp2 [ i ] = wins->same.diagonalUp2 [ i ] =
~( board.column [ i ] ~( board.column [ i ]
^ board.column [ i + 1 ] >> 1 ) ^ board.column [ i + 1 ] >> 1 )
& bottomHeigthMask( & bottomHeigthMask(
board.heigth [ i ], board.height [ i ],
board.heigth [ i + 1 ] - 1 board.height [ i + 1 ] - 1
); );
wins->same.diagonalDown2 [ i ] = wins->same.diagonalDown2 [ i ] =
~( board.column [ i ] ~( board.column [ i ]
^ board.column [ i + 1 ] << 1 ) ^ board.column [ i + 1 ] << 1 )
& bottomHeigthMask( & bottomHeigthMask(
board.heigth [ i ], board.height [ i ],
board.heigth [ i + 1 ] + 1 board.height [ i + 1 ] + 1
) )
& ~1; // A diagonal line down ain't starts at the floor innit? & ~1; // A diagonal line down ain't starts at the floor innit?
} }

View file

@ -10,7 +10,7 @@ typedef enum {
typedef struct { typedef struct {
int player; int player;
int heigth [ BOARD_WIDTH ]; int height [ BOARD_WIDTH ];
int column [ BOARD_WIDTH ]; int column [ BOARD_WIDTH ];
} board_t; } board_t;

View file

@ -61,8 +61,8 @@
#define BOARD_DY 1 #define BOARD_DY 1
#endif #endif
#ifndef SCOREBOARD_HEIGTH #ifndef SCOREBOARD_HEIGHT
#define SCOREBOARD_HEIGTH 10 #define SCOREBOARD_HEIGHT 10
#endif #endif
void initBoard( void ){ void initBoard( void ){
@ -79,7 +79,7 @@ void initBoard( void ){
BOARD_X + BOARD_DX * ( column + 1 ), BOARD_X + BOARD_DX * ( column + 1 ),
colnum colnum
); );
for(int row = 0; row < BOARD_HEIGTH; row++){ for(int row = 0; row < BOARD_HEIGHT; row++){
mvaddstr( mvaddstr(
BOARD_Y + BOARD_DY * ( row + 1 ), BOARD_Y + BOARD_DY * ( row + 1 ),
BOARD_X + BOARD_DX * ( column + 1 ), BOARD_X + BOARD_DX * ( column + 1 ),
@ -87,12 +87,12 @@ void initBoard( void ){
); );
} }
mvaddstr( mvaddstr(
BOARD_Y + BOARD_DY * ( BOARD_HEIGTH + 1 ), BOARD_Y + BOARD_DY * ( BOARD_HEIGHT + 1 ),
BOARD_X + BOARD_DX * ( column + 1 ), BOARD_X + BOARD_DX * ( column + 1 ),
colnum colnum
); );
} }
for(int row = 0; row < BOARD_HEIGTH; row++ ){ for(int row = 0; row < BOARD_HEIGHT; row++ ){
char rownum[4]; char rownum[4];
sprintf( rownum, "%2d", row + FIRST_NUMBER ); sprintf( rownum, "%2d", row + FIRST_NUMBER );
mvaddstr( mvaddstr(
@ -106,7 +106,7 @@ void initBoard( void ){
rownum rownum
); );
} }
for( int y = 0; y < SCOREBOARD_HEIGTH; y++ ){ for( int y = 0; y < SCOREBOARD_HEIGHT; y++ ){
char *str; char *str;
switch(y){ switch(y){
case 0: str = "┌───────────────┬────┬────┐"; break; case 0: str = "┌───────────────┬────┬────┐"; break;
@ -134,9 +134,9 @@ void updateBoard(
const board_t board, const board_t board,
const int column const int column
){ ){
for(int row = 0; row < board.heigth[ column ]; row++){ for(int row = 0; row < board.height[ column ]; row++){
mvaddstr( mvaddstr(
BOARD_Y + BOARD_DY * ( BOARD_HEIGTH - row ), BOARD_Y + BOARD_DY * ( BOARD_HEIGHT - row ),
BOARD_X + 1 + BOARD_DX * ( column + 1 ), BOARD_X + 1 + BOARD_DX * ( column + 1 ),
board.column[ column ] & 1 << row ? "1" : "0" board.column[ column ] & 1 << row ? "1" : "0"
); );
@ -216,11 +216,11 @@ int askColumn(
if( board.player ) addstr( "p1" ); if( board.player ) addstr( "p1" );
else addstr( "p0" ); else addstr( "p0" );
refresh(); refresh();
for(; board.heigth[ column ] >= BOARD_HEIGTH; ) for(; board.height[ column ] >= BOARD_HEIGHT; )
column += ( column < BOARD_WIDTH - 1 ); column += ( column < BOARD_WIDTH - 1 );
for(;;){ for(;;){
int ch = mvgetch( int ch = mvgetch(
BOARD_Y + BOARD_DY * ( BOARD_HEIGTH - board.heigth[ column ] ), BOARD_Y + BOARD_DY * ( BOARD_HEIGHT - board.height[ column ] ),
BOARD_X + 1 + BOARD_DX * ( column + 1 ) BOARD_X + 1 + BOARD_DX * ( column + 1 )
); );
switch( ch ){ switch( ch ){
@ -233,7 +233,7 @@ int askColumn(
case KEY_DOWN: case KEY_DOWN:
return column; return column;
} }
for(; board.heigth[ column ] >= BOARD_HEIGTH; ) switch( ch ){ for(; board.height[ column ] >= BOARD_HEIGHT; ) switch( ch ){
case KEY_RIGHT: case KEY_RIGHT:
if( column >= BOARD_WIDTH ) ch = KEY_LEFT; if( column >= BOARD_WIDTH ) ch = KEY_LEFT;
else column++; else column++;
@ -277,13 +277,13 @@ int askColumn(
switch( move ){ switch( move ){
case PUT: case PUT:
#endif /* ! ONLYPUT */ #endif /* ! ONLYPUT */
if( board.heigth [ column ] < BOARD_HEIGTH ) if( board.height [ column ] < BOARD_HEIGHT )
return column; return column;
else addstr( "Pls enter a column that ain't full" ); else addstr( "Pls enter a column that ain't full" );
#ifndef ONLYPUT #ifndef ONLYPUT
break; break;
case POP: case POP:
if( board.heigth [ column ] != 0 ) if( board.height [ column ] != 0 )
return column; return column;
else addstr( "Pls enter a column that ain't empty" ); else addstr( "Pls enter a column that ain't empty" );
} }
@ -309,4 +309,4 @@ move_t askMove( void ){
#undef BOARD_Y #undef BOARD_Y
#undef BOARD_DX #undef BOARD_DX
#undef BOARD_DY #undef BOARD_DY
#undef SCOREBOARD_HEIGTH #undef SCOREBOARD_HEIGHT

View file

@ -23,16 +23,16 @@
#define BOARD_WIDTH_CHARS ( 3 * BOARD_WIDTH + 6 ) #define BOARD_WIDTH_CHARS ( 3 * BOARD_WIDTH + 6 )
#define SCOREBOARD_OFFSET 5 #define SCOREBOARD_OFFSET 5
#define SCOREBOARD_WIDTH 27 #define SCOREBOARD_WIDTH 27
#define SCOREBOARD_HEIGTH 9 #define SCOREBOARD_HEIGHT 9
void initBoard( void ){ void initBoard( void ){
for( int i = SCOREBOARD_HEIGTH - ( BOARD_HEIGTH + 2 ); i > 0; i-- ) for( int i = SCOREBOARD_HEIGHT - ( BOARD_HEIGTH + 2 ); i > 0; i-- )
putchar( '\n' ); putchar( '\n' );
printf( "\n " ); printf( "\n " );
for( int column = 0; column < BOARD_WIDTH; column++ ) for( int column = 0; column < BOARD_WIDTH; column++ )
printf( "%2d ", column + FIRST_NUMBER ); printf( "%2d ", column + FIRST_NUMBER );
putchar( '\n' ); putchar( '\n' );
for( int row = BOARD_HEIGTH - 1; row > -1; row-- ){ for( int row = BOARD_HEIGHT - 1; row > -1; row-- ){
// begin row // begin row
printf( "%2d " , row + FIRST_NUMBER ); printf( "%2d " , row + FIRST_NUMBER );
for( int column = 0; column < BOARD_WIDTH; column++ ) for( int column = 0; column < BOARD_WIDTH; column++ )
@ -48,7 +48,7 @@ void initBoard( void ){
for( int column = 0; column < BOARD_WIDTH; column++ ) for( int column = 0; column < BOARD_WIDTH; column++ )
printf( "%2d ", column + FIRST_NUMBER ); printf( "%2d ", column + FIRST_NUMBER );
#define SCOREBOARD_LINE_END "\033[B\033["XSTR(SCOREBOARD_WIDTH)"D" #define SCOREBOARD_LINE_END "\033[B\033["XSTR(SCOREBOARD_WIDTH)"D"
printf("\033["XSTR(SCOREBOARD_OFFSET)"C\033["XSTR(SCOREBOARD_HEIGTH)"A" printf("\033["XSTR(SCOREBOARD_OFFSET)"C\033["XSTR(SCOREBOARD_HEIGHT)"A"
"┌───────────────┬────┬────┐"SCOREBOARD_LINE_END "┌───────────────┬────┬────┐"SCOREBOARD_LINE_END
"│ player │ 0 │ 1 │"SCOREBOARD_LINE_END "│ player │ 0 │ 1 │"SCOREBOARD_LINE_END
"├───────────────┼────┼────┤"SCOREBOARD_LINE_END "├───────────────┼────┼────┤"SCOREBOARD_LINE_END
@ -70,25 +70,25 @@ void updateBoard(
const board_t board, const board_t board,
const int column const int column
){ ){
int heigth = board.heigth [ column ]; int height = board.heigth [ column ];
#ifndef ONLYPUT #ifndef ONLYPUT
switch( move ){ switch( move ){
case PUT: // Only print the put one case PUT: // Only print the put one
#endif /* ! ONLYPUT */ #endif /* ! ONLYPUT */
printf( printf(
"\033[%dA\033[%dC%c\033[%dB", "\033[%dA\033[%dC%c\033[%dB",
heigth + 3, height + 3,
column * 3 + 4, column * 3 + 4,
'0' + !!( board.player ), '0' + !!( board.player ),
heigth + 1 height + 1
); );
#ifndef ONLYPUT #ifndef ONLYPUT
break; break;
default: // Print all the pieces in the column and the air above default: // Print all the pieces in the column and the air above
printf( "\033[%dA", heigth + 4 ); printf( "\033[%dA", height + 4 );
if( heigth < BOARD_HEIGTH ) printf( "\033[%dC ", column * 3 + 4 ); if( height < BOARD_HEIGHT ) printf( "\033[%dC ", column * 3 + 4 );
else printf( "\033[%dC", column * 3 + 5 ); else printf( "\033[%dC", column * 3 + 5 );
for( int row = heigth; row --> 0; ) for( int row = height; row --> 0; )
printf( printf(
"\033[B\033[D%c", "\033[B\033[D%c",
'0' + !!( board.column [ column ] & ( 1 << row ) ) '0' + !!( board.column [ column ] & ( 1 << row ) )
@ -138,13 +138,13 @@ int askColumn(
switch( move ){ switch( move ){
case PUT: case PUT:
#endif /* ! ONLYPUT */ #endif /* ! ONLYPUT */
if( board.heigth [ column ] < BOARD_HEIGTH ) if( board.height [ column ] < BOARD_HEIGHT )
return column; return column;
else printf( "\033[2Apls enter a column that ain't full" ); else printf( "\033[2Apls enter a column that ain't full" );
#ifndef ONLYPUT #ifndef ONLYPUT
break; break;
case POP: case POP:
if( board.heigth [ column ] != 0 ) if( board.height [ column ] != 0 )
return column; return column;
else printf( "\033[2Apls enter a column that ain't empty" ); else printf( "\033[2Apls enter a column that ain't empty" );
} }
@ -166,4 +166,4 @@ move_t askMove( void ){
#undef BOARD_WIDTH_CHARS #undef BOARD_WIDTH_CHARS
#undef SCOREBOARD_OFFSET #undef SCOREBOARD_OFFSET
#undef SCOREBOARD_WIDTH #undef SCOREBOARD_WIDTH
#undef SCOREBOARD_HEIGTH #undef SCOREBOARD_HEIGHT