From 70b1eef1d672e5693c91aee6d5506705c8ca1718 Mon Sep 17 00:00:00 2001 From: AnnaSnoeijs Date: Fri, 6 Jun 2025 21:31:59 +0200 Subject: [PATCH] Added option to input via arrow keys --- connect4.c | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/connect4.c b/connect4.c index e2dea63..1a64775 100644 --- a/connect4.c +++ b/connect4.c @@ -47,6 +47,8 @@ #define ONLYPUT +#define ARROWS + #ifndef ONLYPUT typedef enum { PUT, @@ -276,6 +278,27 @@ static int askColumn( #endif /* ONLYPUT */ ){ int column = 0; +#ifdef ARROWS + move( BOARD_Y, BOARD_X ); + if( board.player ) addstr( "1" ); + else addstr( "0" ); + for(;;){ + int ch = mvgetch( + BOARD_Y + BOARD_DY * ( BOARD_HEIGTH - board.heigth[ column ] ), + BOARD_X + 1 + BOARD_DX * ( column + 1 ) + ); + switch( ch ){ + case KEY_RIGHT: + column += ( column < BOARD_WIDTH - 1 ); + break; + case KEY_LEFT: + column -= ( column > 0 ); + break; + case KEY_DOWN: + return column; + } + } +#else /* !ARROWS */ for(;;){ mvaddstr( INPUT_Y, @@ -290,7 +313,6 @@ static int askColumn( #endif /* ONLYPUT */ addstr( " put the piece? " ); #ifndef ONLYPUT - break; case POP: addstr( " pop a piece? " ); } @@ -304,8 +326,7 @@ static int askColumn( INPUT_X ); clrtoeol(); - if( column >= 0 && column < BOARD_WIDTH ) // The collumn--; is a really - // temporary placeholder to make the unfinished shit compile at least + if( column >= 0 && column < BOARD_WIDTH ) #ifndef ONLYPUT switch( move ){ case PUT: @@ -323,6 +344,7 @@ static int askColumn( #endif /* ! ONLYPUT */ else addstr( "Pls enter a column that exists" ); } +#endif /* ! ARROWS */ } #ifndef ONLYPUT