From 97389401cb0a346be6fc08170138b6e19d26940e Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Fri, 29 Jan 2021 02:17:14 -0500 Subject: Don't let the snake snap its own neck --- snake.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/snake.c b/snake.c index 3eb28f5..4b36ff9 100644 --- a/snake.c +++ b/snake.c @@ -175,14 +175,19 @@ static void input(void) { ch = getch(); nodelay(stdscr, true); } + int dy = head.dy; + int dx = head.dx; switch (ch) { - break; case 'h': case KEY_LEFT: head.dy = 0; head.dx = -1; - break; case 'j': case KEY_DOWN: head.dy = +1; head.dx = 0; - break; case 'k': case KEY_UP: head.dy = -1; head.dx = 0; - break; case 'l': case KEY_RIGHT: head.dy = 0; head.dx = +1; + break; case 'h': case KEY_LEFT: dy = 0; dx = -1; + break; case 'j': case KEY_DOWN: dy = +1; dx = 0; + break; case 'k': case KEY_UP: dy = -1; dx = 0; + break; case 'l': case KEY_RIGHT: dy = 0; dx = +1; break; case 'q': over = "You are satisfied."; break; case ERR: exit(EXIT_FAILURE); } + if (dy == -head.dy && dx == -head.dx) return; + head.dy = dy; + head.dx = dx; } uint playSnake(void) { -- cgit 1.4.1