Пример #1
0
        private Model.AbstractCell[,] CreateCellGrid()
        {
            var cellGrid = new Model.AbstractCell[NumberOfRows, NumberOfColumns];

            InitGrid(cellGrid);
            CalculateHints(cellGrid);

            return(cellGrid);
        }
Пример #2
0
 private static string Draw(Model.AbstractCell cell)
 {
     if (cell is Model.HintCell)
     {
         return(Draw((Model.HintCell)cell));
     }
     else if (cell is Model.MineCell)
     {
         return(Draw((Model.MineCell)cell));
     }
     else
     {
         throw new Exception("Unhandled Draw method for type " + cell.GetType());
     }
 }
Пример #3
0
        private int CountAdjacentCells(Model.AbstractCell cell, Model.AbstractCell[,] cellGrid)
        {
            int count      = 0;
            int prevRow    = Math.Max(0, cell.Row - 1);
            int nextRow    = Math.Min(NumberOfRows - 1, cell.Row + 1);
            int prevColumn = Math.Max(0, cell.Column - 1);
            int nextColumn = Math.Min(NumberOfColumns - 1, cell.Column + 1);

            for (var i = prevRow; i <= nextRow; i++)
            {
                for (var j = prevColumn; j <= nextColumn; j++)
                {
                    var isSameCell = i == cell.Row && j == cell.Column;
                    if (!isSameCell && cellGrid[i, j] is Model.MineCell)
                    {
                        count++;
                    }
                }
            }
            return(count);
        }