From e7d16a3769cc05bf610dc5f81ac65fb588040a8f Mon Sep 17 00:00:00 2001 From: Kai Stevenson Date: Mon, 6 Feb 2023 23:04:48 -0800 Subject: cleaned up food eating --- snake.c | 11 ++++------- 1 file 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; -- cgit v1.3.1