Exemple #1
0
        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);
        }
Exemple #2
0
        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();
        }