Example #1
0
        /// <summary>
        /// Prints "Invalid move!" every time invalid coordinates for a mine on 
        /// the field are inputted. Outputs the coordinates to mineRow, mineCol.
        /// </summary>
        private static void TryGetInputMineCoordinatesUntilValid(
            ConsoleBattleField game, out int mineRow, out int mineCol)
        {
            mineRow = -1;
            mineCol = -1;

            bool validInput = game.TryGetInputCoordinates(out mineRow, out mineCol);
            while (mineRow == -1 || !validInput || !game.CellIsMine(mineRow, mineCol))
            {
                Console.WriteLine("Invalid input!");
                validInput = game.TryGetInputCoordinates(out mineRow, out mineCol);
            }
        }
        public void TestTryGetInputCoordinates_ValidCoordinates()
        {
            ConsoleBattleField testGame = new ConsoleBattleField();
            testGame.InitializeGameField(5);
            int mineRow = 2,
                mineCol = 2;

            using (var reader = new StringReader(String.Format("{0} {1}", mineRow, mineCol)))
            {
                Console.SetIn(reader);
                var validCoords = testGame.TryGetInputCoordinates(out mineRow, out mineCol);
                Assert.IsTrue(validCoords);
            }
        }
        public void TestTryGetInputCoordinates_GibberishCoords()
        {
            ConsoleBattleField testGame = new ConsoleBattleField();
            testGame.InitializeGameField(5);
            int mineRow = -1,
                mineCol = -1;

            using (var reader = new StringReader("3 dsafgf"))
            {
                Console.SetIn(reader);
                var validCoords = testGame.TryGetInputCoordinates(out mineRow, out mineCol);
                Assert.IsFalse(validCoords);
            }
        }