summaryrefslogtreecommitdiff
path: root/snake.c
diff options
context:
space:
mode:
Diffstat (limited to 'snake.c')
-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;