public static HashSet <Vector2Int> SimpleRandomWalk(Vector2Int startPosition, int walkLength)
    {
        HashSet <Vector2Int> path = new HashSet <Vector2Int>();

        path.Add(startPosition);
        var previousPosition = startPosition;

        for (int i = 0; i < walkLength; i++)
        {
            var newPosition = previousPosition + Direction2D.GetRandomCardinalDirection();
            path.Add(newPosition);
            previousPosition = newPosition;
        }
        return(path);
    }
Esempio n. 2
0
    public static List <Vector2Int> RandomWalkCorridor(Vector2Int startPos, int corridorLenght)                 // List to keep access to the last element
    {
        List <Vector2Int> corridor = new List <Vector2Int>();
        var direction  = Direction2D.GetRandomCardinalDirection();
        var currentPos = startPos;

        corridor.Add(currentPos);                                                                                                                                               // new start pos AKA the end pos of last corridor
        for (int i = 0; i < corridorLenght; i++)
        {
            currentPos += direction;
            corridor.Add(currentPos);
        }

        return(corridor);
    }
    public static List <Vector2Int> RandomCorridor(Vector2Int startPosition, int corridorLength)
    {
        List <Vector2Int> corridor = new List <Vector2Int>();
        var direction       = Direction2D.GetRandomCardinalDirection();
        var currentPosition = startPosition;

        corridor.Add(currentPosition);
        for (int i = 0; i < corridorLength; i++)
        {
            currentPosition += direction;
            corridor.Add(currentPosition);
        }

        return(corridor);
    }
Esempio n. 4
0
    public static HashSet <Vector2Int> SimpleRandomWalk(Vector2Int startPos, int walkLength)             // Haset have no duplicate
    {
        HashSet <Vector2Int> path = new HashSet <Vector2Int>();

        path.Add(startPos);

        var previousPos = startPos;

        for (int i = 0; i < walkLength; i++)
        {
            var newPos = previousPos + Direction2D.GetRandomCardinalDirection();                                        // get a new random pos from the previous pos
            path.Add(newPos);
            previousPos = newPos;
        }

        return(path);
    }