@Override public int perform(Grid grid, Organism self) { direction dir = self.getDir(); int x = self.getX(), y = self.getY(); int newx = x + dist * dir.dx; int newy = y + dist * dir.dy; if (grid.checkCoords(newx, newy) && grid.thingAt(newx, newy) == null) { grid.move(x, y, newx, newy); return next(1); } // System.out.println("Tried to move but failed"); return next(0); }