public static string InputCycle(Board board) { string displayString = ""; bool moveMade = false; string input = cReadLine(); switch (input) { case "W": moveMade = CharacterController.Move(board, input); break; case "E": moveMade = CharacterController.Move(board, input); break; case "S": moveMade = CharacterController.Move(board, input); break; case "N": moveMade = CharacterController.Move(board, input); break; case "ATTACK": moveMade = Attack(board); break; case "EXIT": moveMade = false; break; default: moveMade = true; break; } if (!moveMade) { Console.WriteLine("Invalid move"); Console.WriteLine(PresentationController.PresentBoard(board)); InputCycle(board); } if (board.CharacterEscaped) { board = BoardController.Setup(); } if (moveMade) { Console.Clear(); Console.WriteLine(PresentationController.PresentBoard(board)); InputCycle(board); } return(displayString); }