summaryrefslogtreecommitdiff
path: root/snake.c
diff options
context:
space:
mode:
Diffstat (limited to 'snake.c')
-rw-r--r--snake.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/snake.c b/snake.c
index 2afd70d..242ea27 100644
--- a/snake.c
+++ b/snake.c
@@ -3,6 +3,7 @@
#include <time.h>
#include <pthread.h>
#include <signal.h> //handling ctrl-c
+#include <sys/ioctl.h> //terminal size
#include "vector.h"
#include "snake.h"
#include "conio.h"
@@ -14,13 +15,21 @@ void interrupt_handler(int sig) {
INT_CTRL_C = 1;
}
-int boardSize = 12;
+int boardSize = 15;
const int updateInterval = 300000000L;
vectorp_t snakePositions;
vector_t foodPos;
vector_t lastMoveDir;
int main(int argc, char **argv) {
+ //get terminal size
+ struct winsize win;
+ ioctl(fileno(stdout), TIOCGWINSZ, &win);
+ int width = (int)(win.ws_col);
+ int height = (int)(win.ws_row);
+ //multiplied by 2 to account for the fact that the board is twice as wide as high
+ int smallestAxis = width / 2 < height ? width / 2 : height;
+ boardSize = smallestAxis < boardSize ? smallestAxis : boardSize;
//hide cursor
printf("\e[?25l");
//make a new thread handling interrupts