Browse Source

update

main
Justin Senn 2 years ago
parent
commit
3a4bd06af0
  1. 55
      src/main/java/Snake/Snake.java

55
src/main/java/Snake/Snake.java

@ -30,4 +30,59 @@ public class Snake {
bodySegments.add(new Point(gridSize/2, gridSize/2 + 2)); bodySegments.add(new Point(gridSize/2, gridSize/2 + 2));
} }
public void update()
{
for (int i = bodySegments.size() - 1; i > 0; --i)
{
bodySegments.set(i, (Point)bodySegments.get(i - 1).clone());
}
Point headPosition = bodySegments.get(0);
switch (direction)
{
case UP:
headPosition.setLocation(headPosition.getX(), headPosition.getY() - 1);
break;
case RIGHT:
headPosition.setLocation(headPosition.getX() + 1, headPosition.getY());
break;
case DOWN:
headPosition.setLocation(headPosition.getX(), headPosition.getY() + 1);
break;
case LEFT:
headPosition.setLocation(headPosition.getX() - 1, headPosition.getY());
break;
default:
break;
}
if(headPosition.getX() >= gridSize)
headPosition.setLocation(0, headPosition.getY());
else if(headPosition.getX() < 0)
headPosition.setLocation(gridSize - 1, headPosition.getY());
if(headPosition.getY() >= gridSize)
headPosition.setLocation(headPosition.getX(), 0);
else if(headPosition.getY() < 0)
headPosition.setLocation(headPosition.getX(), gridSize - 1);
}
public void grow()
{
bodySegments.add((Point)bodySegments.get(bodySegments.size() - 1).clone());
}
public Point getHeadPosition()
{
return bodySegments.get(0);
}
public ArrayList<Point> getBodySegments()
{
return bodySegments;
}
} }
Loading…
Cancel
Save