ForMiner.SaperCell.setNeighbour C# (CSharp) Method

setNeighbour() public method

public setNeighbour ( SaperCell cell, int position ) : void
cell SaperCell
position int
return void
        public void setNeighbour(SaperCell cell, int position)
        {
            neighbours[position] = cell;
            if (cell.value == 9)
                numberOf9TypeNeighbours++;
            if (cell.value == -1)
                numberOfFlags++;
        }

Usage Example

Ejemplo n.º 1
0
        //находит соседей для данной ячейки
        public void FindNeighboursOfCell(SaperCell cell)
        {
            cell.numberOf9TypeNeighbours = 0;
            cell.numberOfFlags           = 0;
            //если сверху есть сосед, то добавляем его
            if (cell.Y > 0)
            {
                cell.setNeighbour(saperField[cell.Y - 1, cell.X], 0);
            }

            //если сверху справа есть сосед, то добавляем его
            if (cell.Y > 0 && cell.X < 29)
            {
                cell.setNeighbour(saperField[cell.Y - 1, cell.X + 1], 1);
            }

            //если справа есть сосед, то добавляем его
            if (cell.X < 29)
            {
                cell.setNeighbour(saperField[cell.Y, cell.X + 1], 2);
            }

            //если справа снизу есть сосед, то добавляем его
            if (cell.Y < 15 && cell.X < 29)
            {
                cell.setNeighbour(saperField[cell.Y + 1, cell.X + 1], 3);
            }

            //если снизу есть сосед, то добавляем его
            if (cell.Y < 15)
            {
                cell.setNeighbour(saperField[cell.Y + 1, cell.X], 4);
            }

            //если снизу слева есть сосед, то добавляем его
            if (cell.Y < 15 && cell.X > 0)
            {
                cell.setNeighbour(saperField[cell.Y + 1, cell.X - 1], 5);
            }

            //если слева есть сосед, то добавляем его
            if (cell.X > 0)
            {
                cell.setNeighbour(saperField[cell.Y, cell.X - 1], 6);
            }

            //если сверху слева есть сосед, то добавляем его
            if (cell.Y > 0 && cell.X > 0)
            {
                cell.setNeighbour(saperField[cell.Y - 1, cell.X - 1], 7);
            }
        }
All Usage Examples Of ForMiner.SaperCell::setNeighbour