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)); }
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); }
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); }