Exemple #1
0
        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);
        }
Exemple #2
0
        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);
            }
        }