Пример #1
0
        public void UncoverMineCauseDefeat()
        {
            var minefield = new MineField(2, 2, new MineCell(1, 1));

            minefield.UncoverCell(0, 0);
            Assert.Equal(GameState.InProgress, minefield.GameState);
            minefield.ToggleFlagOnCell(0, 1);
            minefield.UncoverNeighbours(0, 0);

            Assert.Equal(GameState.Defeat, minefield.GameState);
            Assert.Equal(MineState.IncorrectlyFlagged, minefield.GetCell(0, 1).GetState());
            Assert.Equal(MineState.MineDetonated, minefield.GetCell(1, 1).GetVisibleState(false));
        }
Пример #2
0
        public void UncoverMineCauseDefeat()
        {
            var minefield = new MineField(2, 2, new MineCell(1, 1));

            minefield.UncoverCell(0, 0);
            Assert.Equal(GameState.InProgress, minefield.GameState);
            minefield.ToggleFlagOnCell(0, 1);
            minefield.UncoverNeighbours(0, 0);

            Assert.Equal(GameState.Defeat, minefield.GameState);
            Assert.Equal(MineState.IncorrectlyFlagged, minefield.GetCell(0, 1).GetState());
            Assert.Equal(MineState.MineDetonated, minefield.GetCell(1, 1).GetVisibleState(false));
        }
Пример #3
0
        public void FirstMoveWithFlagUncoverTheFirstCell()
        {
            var firstMove = new MineCell(4, 4);
            var minefield = new MineField(9, 9, 10);

            minefield.UncoverCell(firstMove.Row, firstMove.Col);
            Assert.Equal(GameState.InProgress, minefield.GameState);

            var uncoveredCell = minefield.GetCell(firstMove.Row, firstMove.Col);
            Assert.Equal(MineState.Uncovered, uncoveredCell.GetState());
            Assert.Equal(0, uncoveredCell.NeighbourhoodMineCount);
        }
Пример #4
0
        public void FirstMoveWithFlagUncoverTheFirstCell()
        {
            var firstMove = new MineCell(4, 4);
            var minefield = new MineField(9, 9, 10);

            minefield.UncoverCell(firstMove.Row, firstMove.Col);
            Assert.Equal(GameState.InProgress, minefield.GameState);

            var uncoveredCell = minefield.GetCell(firstMove.Row, firstMove.Col);

            Assert.Equal(MineState.Uncovered, uncoveredCell.GetState());
            Assert.Equal(0, uncoveredCell.NeighbourhoodMineCount);
        }
Пример #5
0
        private void PrintField()
        {
            tablePanel.ColumnCount = mineField.Width;
            tablePanel.RowCount    = mineField.Height;

            for (int y = 0; y < mineField.Height; y++)
            {
                for (int x = 0; x < mineField.Width; x++)
                {
                    cell = mineField.GetCell(x, y);

                    cell.Height = 35;
                    cell.Width  = 35;
                    cell.Dock   = DockStyle.Fill;
                    cell.Margin = new Padding(0);

                    cell.MouseUp += new MouseEventHandler(FieldButtonClick);

                    tablePanel.Controls.Add(cell);
                }
            }

            ClientSize = new Size(cell.Width * mineField.Width, cell.Height * mineField.Height + flowPanel.Height);
        }