public int GiveCellIndexToMove(int startCellIndex, int endCellIndex) { FindPath(startCellIndex, endCellIndex); //выстраиваем путь от конца к началу var currentCellIndex = endCellIndex; while (currentCellIndex != startCellIndex) { var nextIndex = cellManager.GetCameFromIndexPF(currentCellIndex); cellManager.RememberMoveToIndex(nextIndex, currentCellIndex); //записываем путь currentCellIndex = nextIndex; } var result = cellManager.GetMoveToIndexPF(startCellIndex); cellManager.ClearCellsAfterPF(); return(result); }
private void SetCoinNegativePoints(int cellIndex, int distance, CellManager cellManager) { pathFinder.FindCellsInDistance(cellIndex, distance); for (int i = 0; i < cellManager.cells.Length; i++) { if ((cellManager.cells[i] & CellManager.maskGPF) != 0) { cellManager.CoinNegativePoint(i); } } cellManager.ClearCellsAfterPF(); }