Esempio n. 1
0
    public override void Assign()
    {
        int fillAmount = 0;

        if (_rowFiller != null)
        {
            fillAmount = _rowFiller.fillAmount;
        }
        List <int> indexesAvailable = new List <int> ();

        for (int i = 0 + fillAmount; i < _units - fillAmount; i++)
        {
            indexesAvailable.Add(i);
        }
        indexesAvailable.Shuffle();
        int        randomIdx;
        GameObject obs;
        Transform  previousRow = RowController.Instance.PreviousRow;

        if (previousRow != null)
        {
            PathFiller pf = previousRow.GetComponent <PathFiller> ();
            if (pf != null)
            {
                Transform[] previousPaths       = previousRow.GetInmediateChildren().ToArray();
                List <int>  continuousAvailable = new List <int> ();
                for (int i = 0; i < pf._continuousPathIdx.Length; i++)
                {
                    continuousAvailable.Add(i);
                }
                continuousAvailable.Shuffle();
                for (int i = 0; i < _continuousPathIdx.Length && i < pf._continuousPathIdx.Length; i++)
                {
                    Transform previousPath = previousPaths [continuousAvailable[i]];
                    randomIdx = Random.Range(0, paths.Length);
                    obs       = Instantiate(paths [randomIdx]);
                    float xPos = previousPath.position.x;
                    obs.transform.position = new Vector3(xPos, obs.transform.position.y, transform.position.z);
                    obs.transform.SetParent(transform);
                    indexesAvailable.Remove((int)xPos);
                    pathsAmount--;
                    _continuousPathIdx [_continuousPathIdx.Length - continuousPaths] = continuousAvailable [i];
                    continuousPaths--;
                    continuousAvailable.Remove(continuousAvailable [i]);
                }
            }
        }
        for (int i = 0; i < pathsAmount && i < _units - fillAmount * 2; i++)
        {
            randomIdx = Random.Range(0, paths.Length);
            obs       = Instantiate(paths [randomIdx]);
            obs.transform.position = new Vector3(indexesAvailable[i], obs.transform.position.y, transform.position.z);
            obs.transform.SetParent(transform);
            if (continuousPaths > 0)
            {
                _continuousPathIdx [_continuousPathIdx.Length - continuousPaths] = indexesAvailable [i];
                continuousPaths--;
            }
        }
    }
 public RectTriangleIFigure(Pen pen) : base(pen)
 {
     Reaction     = new NoReactionIReaction();
     Painter      = new PathIPainter();
     Filler       = new PathFiller();
     AnglesNumber = 3;
 }
Esempio n. 3
0
 public RectangleFigure(Pen pen) : base(pen)
 {
     Painter      = new PathIPainter();
     Reaction     = new NoReactionIReaction();
     Filler       = new PathFiller();
     AnglesNumber = 4;
 }
Esempio n. 4
0
 public NAngleAFigure(int numberFromNumeric, Pen pen) : base(pen)
 {
     AnglesNumber = numberFromNumeric;
     Painter      = new PathIPainter();
     Reaction     = new NoReactionIReaction();
     Filler       = new PathFiller();
 }
Esempio n. 5
0
 public Triangle3DFigure(Pen pen) : base(pen)
 {
     Reaction     = new Triangle3DIRightClickReaction(this);
     Painter      = new PathIPainter();
     Filler       = new PathFiller();
     AnglesNumber = 1;
 }
Esempio n. 6
0
 public FigureNDIFigure(Pen pen) : base(pen)
 {
     Reaction     = new FreeFigureIRightClickReaction(this);
     Painter      = new PathIPainter();
     Filler       = new PathFiller();
     AnglesNumber = 1;
 }
Esempio n. 7
0
 public EllipseFigure(Pen pen) : base(pen)
 {
     Painter      = new PathIPainter();
     Reaction     = new NoReactionIReaction();
     Filler       = new PathFiller();
     AnglesNumber = 0;
 }
        public override string GetSolution()
        {
            PathFiller filler = new PathFiller();

            filler.SetMapData(mapData);
            int steps = filler.Fill(target);

            Debug();
            DebugBitmap();

            Console.ReadKey();
            return(steps.ToString());
        }