protected IEnumerator _IEHandlePair(ILeeBoardItem a, ILeeBoardItem b) { _ResetPairHandler(); a.state = ELeeBoardItemState.SELECTED; b.state = ELeeBoardItemState.SELECTED; a.distance = 0; b.distance = 0; int cur = 0; bool exist = false; _q.Enqueue(a); _q.Enqueue(b); _was[a.row, a.column] = 1; _was[b.row, b.column] = -1; while (!exist && _q.Count != 0) { while (!exist && _q.Count != 0 && cur == _q.Peek().distance) { exist = ((_middlePoint = _HandleItem(_q.Dequeue())) != null); } ++cur; yield return(new WaitForSeconds(_stepDelay)); } isValid = exist; if (exist) { List <ILeeBoardItem> path = new List <ILeeBoardItem>(); Debug.Log("EXIST"); yield return(StartCoroutine( _IERestorePath(a, b, _middlePoint, path))); var way = new LeeAlgorithmWay(a, b, path); } a.state = ELeeBoardItemState.DEFAULT; b.state = ELeeBoardItemState.DEFAULT; }
public void SetWay(LeeAlgorithmWay way) { _ways.AddWay(currentFrom, currentTo, way); }