private int ExplodeMine(int[,] field) { int row = 0, col = 0; SetNextMinePosition(field, out row, out col); Mine mine = new Mine(field[row, col]); int[,] explodeType = mine.ExplodeType(); int explodeMinesCount = 0; for (int i = -2; i < 3; i++) { for (int j = -2; j < 3; j++) { if (row + i >= 0 && row + i < field.GetLength(0) && col + j >= 0 && col + j < field.GetLength(1)) { if (explodeType[i + 2, j + 2] == 1) { if (field[row + i, col + j] > 0) { explodeMinesCount++; } field[row + i, col + j] = -1; } } } } return explodeMinesCount; }
public int ExplodeMine(int[,] field, int x, int y) { Mine mine = new Mine(field[x, y]); int[,] explodeType = mine.ExplodeType(); int explodeMinesCount = 0; for (int i = -2; i < 3; i++) { for (int j = -2; j < 3; j++) { if (x + i >= 0 && x + i < this.GameField && y + j >= 0 && y + j < this.GameField) { if (explodeType[i + 2, j + 2] == 1) { if (field[x + i, y + j] > 0) { explodeMinesCount++; } field[x + i, y + j] = -1; } } } } return explodeMinesCount; }
public void TestMethodExplodeTypeWithCorrectDataTypeOne() { Mine mine = new Mine(1); int[,] expected = {{0,0,0,0,0}, {0,1,0,1,0}, {0,0,1,0,0}, {0,1,0,1,0}, {0,0,0,0,0}}; int[,] actual = mine.ExplodeType(); CollectionAssert.AreEqual(expected, actual); }
public void TestMethodExplodeTypeWithInvalidData() { Mine mine = new Mine(4); int[,] expected = {{0,1,1,1,0}, {0,1,1,1,1}, {1,1,1,1,1}, {1,1,1,1,1}, {0,1,1,1,0}}; int[,] actual = mine.ExplodeType(); CollectionAssert.AreNotEqual(expected, actual); }