adjacent :: Activity -> Vertex -> Graph
adjacent activity start pos =
    let board = activity^.activityGame.gameBoard
        tiles = S.toList $ adjacentTiles board pos
        canEnter tile =
          let targetTile = fromMaybe WoodTile (tileAt board tile)
          in targetTile /= WoodTile
    in if pos == start || fromMaybe WoodTile (tileAt board pos) == FreeTile
          then filter canEnter tiles
          else []
adjacent :: Activity -> Vertex -> Graph
adjacent activity start pos =
    let board = activity^.activityGame.gameBoard
        tiles = S.toList $ adjacentTiles board pos
        canEnter tile =
          let targetTile = fromMaybe WoodTile (tileAt board tile)
          in targetTile /= WoodTile
    in if pos == start || fromMaybe WoodTile (tileAt board pos) == FreeTile
          then filter canEnter tiles
          else []
adjacent activity start pos =
    let board = activity^.activityGame.gameBoard
        tiles = S.toList $ adjacentTiles board pos
        canEnter tile =
          let targetTile = fromMaybe WoodTile (tileAt board tile)
          in targetTile /= WoodTile
    in if pos == start || fromMaybe WoodTile (tileAt board pos) == FreeTile
          then filter canEnter tiles
          else []