diff options
| author | Kai Stevenson <kai@kaistevenson.com> | 2023-02-06 23:04:48 -0800 |
|---|---|---|
| committer | Kai Stevenson <kai@kaistevenson.com> | 2023-02-06 23:04:48 -0800 |
| commit | e7d16a3769cc05bf610dc5f81ac65fb588040a8f (patch) | |
| tree | d3f1f5f805a37b4cf9dd7620171cf480b2cc155e | |
| parent | a2a5a0e9ce44d397f197cbb25b2e626ff9f7e6a6 (diff) | |
cleaned up food eating
| -rw-r--r-- | snake.c | 11 |
1 files changed, 4 insertions, 7 deletions
@@ -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; |
