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