summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Stevenson <kai@kaistevenson.com>2023-02-06 23:04:48 -0800
committerKai Stevenson <kai@kaistevenson.com>2023-02-06 23:04:48 -0800
commite7d16a3769cc05bf610dc5f81ac65fb588040a8f (patch)
treed3f1f5f805a37b4cf9dd7620171cf480b2cc155e
parenta2a5a0e9ce44d397f197cbb25b2e626ff9f7e6a6 (diff)
cleaned up food eating
-rw-r--r--snake.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/snake.c b/snake.c
index 4aa05a1..ea1f7ca 100644
--- a/snake.c
+++ b/snake.c
@@ -180,9 +180,8 @@ int main(int argc, char **argv) {
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;
}
- /* check if snake landed on an obstacle */
int ateFood = 0;
- /* check if snake landed on the food */
+ /* check if snake is moving onto food */
if((snakePositions.vectors[0].mx + lastMoveDir.mx == foodPos.mx) && (snakePositions.vectors[0].my + lastMoveDir.my == foodPos.my)) {
ateFood = 1;
score += 1;
@@ -193,20 +192,17 @@ int main(int argc, char **argv) {
while(1) {
foodPos = init_vector(1 + (rand() % (boardSize - 2)), 1 + (rand() % (boardSize - 2)));
/* if food overlaps snake or obstacles, try again */
- int overlap = 0;
for(int i = 0; i < snakePositions.length; i++) {
if((snakePositions.vectors[i].mx == foodPos.mx) && (snakePositions.vectors[i].my == foodPos.my)) {
- overlap = 1;
+ continue;
}
}
for(int i = 0; i < obstaclePositions.length; i++) {
if((obstaclePositions.vectors[i].mx == foodPos.mx) && (obstaclePositions.vectors[i].my == foodPos.my)) {
- overlap = 1;
+ continue;
}
}
- if(!overlap) {
break;
- }
}
}
/* move the snake */
@@ -220,6 +216,7 @@ int main(int argc, char **argv) {
goto EXIT;
}
}
+ /* check if snake landed on obstacle */
for(int i = 0; i < obstaclePositions.length; i++) {
if((snakePositions.vectors[0].mx == obstaclePositions.vectors[i].mx) && (snakePositions.vectors[0].my == obstaclePositions.vectors[i].my)) {
goto EXIT;