public void Draw(GameSceneViewContext viewContext) { int currentPinScore = 0; while (true) { Console.Clear(); scoreBoardView.Draw(viewContext.LaneNumber, viewContext.UserScores); if (viewContext.IsGameCompleted) { return; } Console.WriteLine(); Console.WriteLine($" {viewContext.CurrentPlayerName} 턴 (0 ~ {viewContext.AvailableNextMaxPinScore} 중 선택, -1를 입력하면 타이틀로 돌아감)"); Console.Write($" => "); var input = Console.ReadLine(); if (InputConverter.TryConvertInteger(input, out currentPinScore)) { if (currentPinScore == -1) { OnGoToTitle?.Invoke(); return; } if (currentPinScore >= 0 && currentPinScore <= viewContext.AvailableNextMaxPinScore) { break; } } Console.WriteLine(); Console.WriteLine($" -1 ~ {viewContext.AvailableNextMaxPinScore} 사이 숫자만 입력해주세요."); Console.ReadLine(); } OnInputPinScore?.Invoke(currentPinScore); }
public void Draw() { int playerCount = 0; while (true) { Console.Clear(); Console.WriteLine(" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"); Console.WriteLine(" $$$ 볼링 한판?! $$$"); Console.WriteLine(" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"); Console.WriteLine(); Console.WriteLine($" 플레이 할 인원을 선택해주세요. (1명 ~ {maxPlayerCount}명 중 선택, 0을 입력하면 게임 종료)"); Console.Write(" => "); var input = Console.ReadLine(); if (InputConverter.TryConvertInteger(input, out playerCount) && playerCount >= 0 && playerCount <= maxPlayerCount) { break; } Console.WriteLine(); Console.Write($"0 ~ {maxPlayerCount} 사이 숫자만 입력해주세요."); Console.ReadLine(); } if (playerCount == 0) { Console.WriteLine(); Console.WriteLine($" 게임을 종료합니다."); OnEndGame?.Invoke(); } else { Console.WriteLine(); Console.WriteLine($" 플레이 인원은 {playerCount}명 입니다. 게임을 시작합니다!"); OnSelectPlayerCount?.Invoke(playerCount); } }