private void Execute(string input = null) { int inputLine = 0; try { int resetTop = Console.CursorTop; if (this.CheckShipHitCount()) { message = consoleHelper.CompletedMessage; } consoleHelper.WriteLine( $"[Hit: {playerStats.Hit}] [Miss: {playerStats.Miss}] [Ship(s) Sunk : {playerStats.Sunk}]"); consoleHelper.ClearBufferToWriteLine($"Message : {message}"); inputLine = Console.CursorTop - 2; if (string.IsNullOrEmpty(input)) { input = consoleHelper.ReadLine(); } this.Exit(input); message = consoleHelper.GetUserInput(input); consoleHelper.ClearLine(inputLine); //gridGenerator.RedrawGrid(); Console.SetCursorPosition(0, resetTop); } catch (ArgumentException) { message = consoleHelper.InvalidMessage; consoleHelper.ClearLine(inputLine); } catch (Exception) { message = consoleHelper.ApplicationErrorMessage; consoleHelper.ClearLine(inputLine); } }