diff --git a/nsnake b/nsnake index fe9d052..6db3c59 100755 Binary files a/nsnake and b/nsnake differ diff --git a/obj/main.o b/obj/main.o index 712eeb3..8be61bb 100644 Binary files a/obj/main.o and b/obj/main.o differ diff --git a/src/main.c b/src/main.c index 9b9a623..cb578fd 100644 --- a/src/main.c +++ b/src/main.c @@ -58,11 +58,23 @@ int main(void) { field_print(f); switch (c) { - case up_key: dirn = UP; break; - case down_key: dirn = DOWN; break; - case right_key: dirn = RIGHT; break; - case left_key: dirn = LEFT; break; - case quit_key: goto quit; + case up_key: + if (dirn != DOWN) + dirn = UP; + break; + case down_key: + if (dirn != UP) + dirn = DOWN; + break; + case right_key: + if (dirn != LEFT) + dirn = RIGHT; + break; + case left_key: + if (dirn != RIGHT) + dirn = LEFT; + break; + case quit_key: goto quit; } snake_forward(s, dirn); snake_print(s);