public MenuReturnType SelectedMenu()
        {
            MenuReturnType SelectedMenu   = MenuReturnType.None;
            bool           needToContinue = true;

            do
            {
                while (Console.KeyAvailable)
                {
                    ConsoleKeyInfo pressedChar = Console.ReadKey(true);
                    switch (pressedChar.Key)
                    {
                    case ConsoleKey.Q:
                        Console.Clear();
                        Environment.Exit(0);
                        break;

                    case ConsoleKey.M:
                        SelectedMenu   = MenuReturnType.GoToMenu;
                        needToContinue = false;
                        break;

                    case ConsoleKey.R:
                        SelectedMenu   = MenuReturnType.ReplayGame;
                        needToContinue = false;
                        break;
                    }
                }
            } while (needToContinue);
            return(SelectedMenu);
        }
        public MenuReturnType RunGame()
        {
            Render();

            bool needToContinue     = true;
            int  CurrentPlayerIndex = 0;

            do
            {
                while (Console.KeyAvailable)
                {
                    ConsoleKeyInfo pressedChar = Console.ReadKey(true);
                    if (pressedChar.Key == ConsoleKey.Escape)
                    {
                        needToContinue = false;
                    }
                }
                Recalculate(CurrentPlayerIndex);
                CurrentPlayerIndex++;
                //System.Threading.Thread.Sleep(250);
            } while (needToContinue && CurrentPlayerIndex < Players.Count);

            StatusLabel.Label = "Game finished. Press any key to continue...";
            StatusLabel.Render();
            Console.ReadKey();
            Console.Clear();

            int MaxScoresValue = Players.Max(p => p.Scores);
            var Winners        = from p in Players
                                 where p.Scores == MaxScoresValue
                                 select new { Name = p.GetPlayerName(), Score = p.Scores };

            foreach (var item in Winners)
            {
                Winner = Winner + " " + item.Name + " with " + item.Score + " scores;";
            }

            GameOverMenu gameOverMenu = new GameOverMenu(App.ScreenX, App.ScreenY, App.ScreenWidth - 1, App.ScreenY - 1, Winner);
            //gameOverMenu.Render();
            MenuReturnType menu = gameOverMenu.SelectedMenu();

            //Console.ReadKey();

            return(menu);
        }
        public void StartGame()
        {
            MenuReturnType rtype = MenuReturnType.None;

            do
            {
                // TO DO : Players Select Count
                Console.Clear();
                playerSelectionController = new PlayerSelectionController();
                gameStatus.PlayersCount   = playerSelectionController.GetPlayersCount();

                // TO DO :  DiecesSelect
                diceSelectionController = new DiceSelectionController();
                gameStatus.DicesCount   = diceSelectionController.GetDiceCount();
                //Console.WriteLine($"Pasirinkta {gameStatus.DicesCount}");

                // TO DO :  Run action..
                GameRunner gameRunner = new GameRunner(gameStatus.PlayersCount, gameStatus.DicesCount);
                rtype = gameRunner.RunGame();
            } while (rtype == MenuReturnType.ReplayGame);
        }