Ejemplo n.º 1
0
        private void button1_Click(object sender, EventArgs e)
        {
            MinesweeperGrid nextForm = new MinesweeperGrid(difficulty);

            this.Hide();
            nextForm.Show();
        }
Ejemplo n.º 2
0
        public void AdjacentMines()
        {
            bool[,] testGrid =
            {
                { true,  false },
                { false, true  }
            };

            MinesweeperGrid grid = new MinesweeperGrid(testGrid);

            Assert.AreEqual(2, grid.Height);
            Assert.AreEqual(2, grid.Width);

            // Top row.
            Assert.IsTrue(grid[0, 0].HasMine);
            Assert.AreEqual(2, grid[0, 0].NumberOfNearbyMines);
            Assert.IsFalse(grid[0, 1].HasMine);
            Assert.AreEqual(2, grid[0, 1].NumberOfNearbyMines);

            // Bottom row.
            Assert.IsFalse(grid[1, 0].HasMine);
            Assert.AreEqual(2, grid[1, 0].NumberOfNearbyMines);
            Assert.IsTrue(grid[1, 1].HasMine);
            Assert.AreEqual(2, grid[1, 1].NumberOfNearbyMines);
        }
Ejemplo n.º 3
0
        public void Constructor_TestIfInitializesEmptyCells()
        {
            int             gridRows = 10, gridCols = 10, minesCount = 4;
            MinesweeperGrid grid = new MinesweeperGrid(gridRows, gridCols, minesCount);

            bool existsNonEmptyCell = false;

            for (int i = 0; i < gridRows; i++)
            {
                for (int j = 0; j < gridCols; j++)
                {
                    if (grid.GetCellValue(i, j) != MinesweeperCell.EmptyCell)
                    {
                        existsNonEmptyCell = true;
                        break;
                    }
                }

                if (existsNonEmptyCell)
                {
                    break;
                }
            }

            Assert.IsFalse(existsNonEmptyCell);
        }
Ejemplo n.º 4
0
        public void GetCellValue_TestWithInvalidCellPosition_ShouldThrowException()
        {
            int             gridRows = 10, gridCols = 10, minesCount = 4;
            MinesweeperGrid grid = new MinesweeperGrid(gridRows, gridCols, minesCount);

            grid.SetCellValue(10, 2, '+');
        }
Ejemplo n.º 5
0
        public void IsValidCell_TestWithValidCellPosition_ShouldReturnTrue()
        {
            int             gridRows = 10, gridCols = 10, minesCount = 4;
            MinesweeperGrid grid = new MinesweeperGrid(gridRows, gridCols, minesCount);

            Assert.IsTrue(grid.IsValidCell(8, 4));
        }
Ejemplo n.º 6
0
        public void GetCell_TestWithValidCellPosition()
        {
            int             gridRows = 10, gridCols = 10, minesCount = 4;
            MinesweeperGrid grid = new MinesweeperGrid(gridRows, gridCols, minesCount);
            MinesweeperCell cell = grid.GetCell(1, 1);

            Assert.AreEqual(MinesweeperCell.EmptyCell, cell.Value);
        }
Ejemplo n.º 7
0
        public void GetCellValue_TestWithValidCellPosition()
        {
            int             gridRows = 10, gridCols = 10, minesCount = 4;
            MinesweeperGrid grid = new MinesweeperGrid(gridRows, gridCols, minesCount);

            grid.SetCellValue(1, 1, '+');
            Assert.AreEqual('+', grid.GetCellValue(1, 1));
        }
Ejemplo n.º 8
0
        public void RevealCell_WhenTheCellIsInvalid_ShouldThrowException()
        {
            int             gridRows = 10, gridCols = 10, minesCount = 4;
            MinesweeperGrid grid = new MinesweeperGrid(gridRows, gridCols, minesCount);

            grid.SetCellValue(1, 1, '*');
            grid.RevealCell(1, 10);
        }
        public void PrintGridTest1()
        {
            bool[,] testGrid = { { true } };

            MinesweeperGrid grid = new MinesweeperGrid(testGrid);

            var gridText       = Program.PrintGrid(grid).ToString();
            var expectedOutput = "+---+\n| * |\n+---+\n";

            Assert.AreEqual(expectedOutput, gridText);
        }
Ejemplo n.º 10
0
        public void RevealCell_WhenTheCellIsMine()
        {
            int             gridRows = 10, gridCols = 10, minesCount = 4;
            MinesweeperGrid grid = new MinesweeperGrid(gridRows, gridCols, minesCount);

            grid.SetCellValue(1, 1, '*');

            char revealedValue = grid.RevealCell(1, 1);

            Assert.AreEqual('*', revealedValue);
        }
Ejemplo n.º 11
0
        public void MarkCell_WhenThereAreUnrevealedCells()
        {
            int             gridRows = 10, gridCols = 10, minesCount = 4;
            MinesweeperGrid grid = new MinesweeperGrid(gridRows, gridCols, minesCount);

            grid.SetCellValue(0, 0, '*');
            grid.SetCellValue(0, 1, '*');
            grid.SetCellValue(1, 0, '*');
            grid.SetCellValue(1, 2, '-');
            grid.MarkCell('+');

            Assert.AreEqual('+', grid.GetCellValue(1, 2));
        }
Ejemplo n.º 12
0
        public void RevealMines_WhenTheGridContainsMines()
        {
            int             gridRows = 10, gridCols = 10, minesCount = 4;
            MinesweeperGrid grid = new MinesweeperGrid(gridRows, gridCols, minesCount);

            grid.SetCellValue(0, 0, '*');
            grid.SetCellValue(0, 1, '*');
            grid.SetCellValue(1, 0, '*');
            grid.SetCellValue(1, 2, '*');

            grid.RevealMines();
            Assert.AreEqual(4, grid.RevealedCount());
        }
Ejemplo n.º 13
0
        public void SingleCell()
        {
            bool[,] testGrid = { { true } };

            MinesweeperGrid grid = new MinesweeperGrid(testGrid);

            Assert.AreEqual(1, grid.Height);
            Assert.AreEqual(1, grid.Width);
            Assert.IsTrue(grid[0, 0].HasMine);
            Assert.AreEqual(1, grid[0, 0].NumberOfNearbyMines);
            Assert.Throws <IndexOutOfRangeException>(delegate() { var cell = grid[0, 1]; });
            Assert.Throws <IndexOutOfRangeException>(delegate() { var cell = grid[1, 0]; });
        }
Ejemplo n.º 14
0
        public void RevealedCount_TestWhenSomeMinesAreRevealed()
        {
            int             gridRows = 10, gridCols = 10, minesCount = 4;
            MinesweeperGrid grid = new MinesweeperGrid(gridRows, gridCols, minesCount);

            grid.SetCellValue(0, 0, '*');
            grid.SetCellValue(0, 1, '*');
            grid.SetCellValue(1, 0, '*');
            grid.SetCellValue(1, 2, '*');

            grid.RevealCell(0, 0);
            grid.RevealCell(0, 1);

            Assert.AreEqual(2, grid.RevealedCount());
        }
Ejemplo n.º 15
0
        public void SingleRow()
        {
            bool[,] testGrid =
            {
                { true, false }
            };

            MinesweeperGrid grid = new MinesweeperGrid(testGrid);

            Assert.AreEqual(1, grid.Height);
            Assert.AreEqual(2, grid.Width);
            Assert.IsTrue(grid[0, 0].HasMine);
            Assert.AreEqual(1, grid[0, 0].NumberOfNearbyMines);
            Assert.IsFalse(grid[0, 1].HasMine);
            Assert.AreEqual(1, grid[0, 1].NumberOfNearbyMines);
        }
Ejemplo n.º 16
0
    public void StartGame(int minesCount)
    {
        foreach (Transform cell in _container)
        {
            Destroy(cell.gameObject);
        }

        Cell[,] cells = new Cell[10, 10];
        for (int i = 0; i < 10; i++)
        {
            for (int j = 0; j < 10; j++)
            {
                Cell c = GameObject.Instantiate(_cellPrefab, _container, false);
                c.Init(i, j);
                c.Button.onClick.AddListener(OnCellClick);
                cells[i, j] = c;
            }
        }

        _minesweeper  = new MinesweeperGrid(10, minesCount, cells);
        SafeZonesLeft = 100;
    }
Ejemplo n.º 17
0
        public void SimpleGrid()
        {
            bool[,] testGrid =
            {
                { true,  false, false },
                { false, false, false },
                { false, false, true  }
            };

            MinesweeperGrid grid = new MinesweeperGrid(testGrid);

            Assert.AreEqual(3, grid.Height);
            Assert.AreEqual(3, grid.Width);

            // Top row.
            Assert.IsTrue(grid[0, 0].HasMine);
            Assert.AreEqual(1, grid[0, 0].NumberOfNearbyMines);
            Assert.IsFalse(grid[0, 1].HasMine);
            Assert.AreEqual(1, grid[0, 1].NumberOfNearbyMines);
            Assert.IsFalse(grid[0, 2].HasMine);
            Assert.AreEqual(0, grid[0, 2].NumberOfNearbyMines);

            // Middle row.
            Assert.IsFalse(grid[1, 0].HasMine);
            Assert.AreEqual(1, grid[1, 0].NumberOfNearbyMines);
            Assert.IsFalse(grid[1, 1].HasMine);
            Assert.AreEqual(2, grid[1, 1].NumberOfNearbyMines);
            Assert.IsFalse(grid[1, 2].HasMine);
            Assert.AreEqual(1, grid[1, 2].NumberOfNearbyMines);

            // Bottom row.
            Assert.IsFalse(grid[2, 0].HasMine);
            Assert.AreEqual(0, grid[2, 0].NumberOfNearbyMines);
            Assert.IsFalse(grid[2, 1].HasMine);
            Assert.AreEqual(1, grid[2, 1].NumberOfNearbyMines);
            Assert.IsTrue(grid[2, 2].HasMine);
            Assert.AreEqual(1, grid[2, 2].NumberOfNearbyMines);
        }
Ejemplo n.º 18
0
 public void GetCell_TestWithInvalidCellPosition_ShouldThrowException()
 {
     int             gridRows = 10, gridCols = 10, minesCount = 4;
     MinesweeperGrid grid = new MinesweeperGrid(gridRows, gridCols, minesCount);
     MinesweeperCell cell = grid.GetCell(10, 1);
 }