move method

bool move(
  1. Direction dir, {
  2. required Set<Point> walls,
})

Implementation

bool move(
  Direction dir, {
  required Set<Point> walls,
}) {
  final newHead = Point(
    _points.first.x +
        (dir == Direction.right
            ? 1
            : dir == Direction.left
                ? -1
                : 0),
    _points.first.y +
        (dir == Direction.down
            ? 1
            : dir == Direction.up
                ? -1
                : 0),
  );

  if (walls.contains(newHead) || isCollidingWithPoint(newHead)) {
    return false;
  }

  _points.addFirst(newHead);
  _oldTail = _points.removeLast();
  if (_oldTail != null) {
    _foodPoints.remove(_oldTail!);
  }

  return true;
}