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; }
public RectangleFigure(Pen pen) : base(pen) { Painter = new PathIPainter(); Reaction = new NoReactionIReaction(); Filler = new PathFiller(); AnglesNumber = 4; }
public NAngleAFigure(int numberFromNumeric, Pen pen) : base(pen) { AnglesNumber = numberFromNumeric; Painter = new PathIPainter(); Reaction = new NoReactionIReaction(); Filler = new PathFiller(); }
public Triangle3DFigure(Pen pen) : base(pen) { Reaction = new Triangle3DIRightClickReaction(this); Painter = new PathIPainter(); Filler = new PathFiller(); AnglesNumber = 1; }
public FigureNDIFigure(Pen pen) : base(pen) { Reaction = new FreeFigureIRightClickReaction(this); Painter = new PathIPainter(); Filler = new PathFiller(); AnglesNumber = 1; }
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()); }