private List<RegularRoom> createRegularRooms(List<ConcreteRoom> createdRooms, List<Vector2> candidateNeighbors, List<Vector2> lastInsertedNeighbors , float linearFactor, Dungeon dungeon)
    {
        List<RegularRoom> regularRooms = new List<RegularRoom>();
        RegularRoom auxRoom;
        int nRooms = dungeon.getNRooms() - createdRooms.Count - 1; // will not work if we have more than 1 final room.

        while(nRooms > 0)
        {
            auxRoom = createRandomRegularRoom(createdRooms, candidateNeighbors, lastInsertedNeighbors, linearFactor, dungeon);
            lastInsertedNeighbors = updateNeighbors(candidateNeighbors, getRoomPossibleNeighbors(auxRoom, dungeon));
            regularRooms.Add(auxRoom);
            nRooms--;
        }

        return regularRooms;
    }