summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpreston <preston@openbsd-preston.prestonpan.tech>2023-03-05 00:44:46 -0800
committerpreston <preston@openbsd-preston.prestonpan.tech>2023-03-05 00:44:46 -0800
commitcfcdffe92b7248b3982f53b2c14b67d94a42b210 (patch)
treee4c659b86890d82a6303b2f61fcbadccaf061883
parent56bab06f7ba8a853eedfbf9c07d97a340efc2824 (diff)
add q command
-rw-r--r--src/leaderboard.c1
-rw-r--r--src/snake.c8
2 files changed, 8 insertions, 1 deletions
diff --git a/src/leaderboard.c b/src/leaderboard.c
index 755cff7..8ebb412 100644
--- a/src/leaderboard.c
+++ b/src/leaderboard.c
@@ -4,6 +4,7 @@
#include <sys/file.h>
#include <string.h>
#include "leaderboard.h"
+
leaderScore_t init_leaderscore(char* name, unsigned long int score) {
leaderscore_t score;
score.name = name;
diff --git a/src/snake.c b/src/snake.c
index 577c832..7f9a32a 100644
--- a/src/snake.c
+++ b/src/snake.c
@@ -176,6 +176,10 @@ int main(int argc, char **argv) {
nanosleep(&time, NULL);
/* read the most recent value emitted by the listener */
vector_t dir = parse_dir(*(char*)lastInput);
+
+ if (dir.mx == -2) {
+ goto EXIT;
+ }
/* if the player inputted a valid direction, use it. otherwise, use his last valid input */
if((dir.mx != 0 || dir.my != 0) && !(dir.mx == 1 && lastMoveDir.mx == -1) && !(dir.mx == -1 && lastMoveDir.mx == 1) && !(dir.my == 1 && lastMoveDir.my == -1) && !(dir.my == -1 && lastMoveDir.my == 1)) {
lastMoveDir = dir;
@@ -256,7 +260,9 @@ vector_t parse_dir(char cDir) {
}
else if(cDir == 'a' || cDir == 'h') {
return init_vector(-1, 0);
- }
+ } else if (cDir == 'q') {
+ return init_vector(-2, -2);
+ }
else {
return init_vector(0, 0);
}