diff options
| -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; |
