예제 #1
0
        public void ShouldProvideAMechanismToCheckIfACellIsOpen()
        {
            var board = new Board(2);

            Assert.IsFalse(board.IsOpen(1, 1));

            board.Open(1, 1);

            Assert.IsTrue(board.IsOpen(1, 1));
        }
예제 #2
0
        public void ShouldOpenAdjacentCellsIfTheOneBeingOpenedHasNoBombsAroundAndNoBomb()
        {
            var board = new Board(10);
            board.AddBombAt(0, 0);

            board.Open(0, 0);
            Assert.IsTrue(board.IsOpen(0, 0));
            Assert.IsFalse(board.IsOpen(0, 1));
            Assert.IsFalse(board.IsOpen(1, 0));
            Assert.IsFalse(board.IsOpen(1, 1));

            board.AddBombAt(5, 5);
            board.Open(5, 6);
            Assert.IsFalse(board.IsOpen(5, 5));
            Assert.IsFalse(board.IsOpen(5, 7));
            Assert.IsFalse(board.IsOpen(4, 6));
            Assert.IsFalse(board.IsOpen(6, 5));

            board.Open(9, 9);
            Assert.IsTrue(board.IsOpen(9, 9));
            Assert.IsTrue(board.IsOpen(9, 8));
            Assert.IsTrue(board.IsOpen(9, 7));
            Assert.IsTrue(board.IsOpen(9, 6));
            Assert.IsTrue(board.IsOpen(9, 5));
            Assert.IsTrue(board.IsOpen(9, 4));
            Assert.IsTrue(board.IsOpen(9, 3));
            Assert.IsTrue(board.IsOpen(8, 2));
            Assert.IsTrue(board.IsOpen(8, 4));
            Assert.IsTrue(board.IsOpen(8, 3));
            Assert.IsTrue(board.IsOpen(7, 2));
        }