Beispiel #1
0
        public void run()
        {
            m_mainMenuView.showMainMenu();

            var input = Console.ReadKey();

            switch (input.Key)
            {
            // Classic Yahtzee
            case ConsoleKey.D1:
            case ConsoleKey.NumPad1:
                m_mainMenuView.showYahtzeeHeader();
                m_mainMenuView.showYahtzeMenu();

                m_classicYahtzee.runClassicYahtzee();
                break;

            //Strict-Yahtzee
            case ConsoleKey.D2:
            case ConsoleKey.NumPad2:
                m_mainMenuView.showYahtzeeHeader();
                m_mainMenuView.showYahtzeMenu();

                m_strictYahtzee.runStrictYahtzee();
                break;

            //Exit program
            case ConsoleKey.D3:
            case ConsoleKey.NumPad3:
                Environment.Exit(0);
                break;

            case ConsoleKey.Escape:
                Environment.Exit(0);
                break;

            default:
                run();
                break;
            }
        }
        protected void playGame()
        {
            bool playGame = true;

            if (loadedGame == false)
            {
                m_mainMenuView.showYahtzeeHeader();
                m_mainMenuView.showYahtzeMenu();
                m_yahtzeeGame.chooseNumberOfPlayers();
            }

            playerList = m_yahtzeeGame.getPlayers();
            do
            {
                m_mainMenuView.showYahtzeeHeader();
                m_yahtzeeView.showBoard(playerList);

                for (int i = 0; i < playerList.Count; i++)
                {
                    m_yahtzeeView.showPlayersTurn(playerList[i]);
                    m_yahtzeeView.rollTheDiceMessage();

                    while (true)
                    {
                        try
                        {
                            m_yahtzeeView.showSaveMessage();

                            //check if player list holds a computer player
                            //then skip read key and switch statement and do the
                            //call the computer roll sequence
                            //read more in the ComputerPlayer class

                            var input = Console.ReadKey();
                            switch (input.Key)
                            {
                            case ConsoleKey.R:
                                int[] dices = sequenceRollOfDices(playerList[i]);
                                m_yahtzeeView.showWereToPlaceScore();
                                switch (versionOfGame)
                                {
                                case 1:
                                    playerList[i].placePlayerScore(dices);
                                    break;

                                case 2:
                                    //Adds 1 to numbers of turns the player as done, 13 is max
                                    playerList[i].addOneToNumbersOfTurn();
                                    playerList[i].placePlayerScoreInOrder(dices, playerList[i].getNumbersOfTurn());
                                    break;
                                }

                                playerList[i].updateUpperScore();
                                playerList[i].updateTotalScore();

                                m_mainMenuView.showYahtzeeHeader();
                                m_yahtzeeView.showBoard(playerList);
                                if (playerList[i].checkIfEndOfGame())
                                {
                                    playGame = false;
                                }

                                break;

                            case ConsoleKey.S:
                                m_yahtzeeGame.saveOnGoingGame();
                                m_mainMenuView.showPressAnyKeyToQuit();
                                Console.ReadLine();
                                Environment.Exit(0);
                                break;

                            case ConsoleKey.Escape:
                                Environment.Exit(0);
                                break;
                            }
                            break;
                        }
                        catch (Exception)
                        {
                            m_mainMenuView.showYahtzeeHeader();
                            m_yahtzeeView.showBoard(playerList);
                            m_yahtzeeView.showPlayersTurn(playerList[i]);
                            m_yahtzeeView.rollTheDiceMessage();
                        }
                    }
                    playerList[i].setDate();
                }
            } while (playGame);

            m_mainMenuView.showPressAnyKeyToGoBackToMainMenu();
            m_yahtzeeGame.saveEndGameScore();
            Console.ReadLine();
            MasterController mc = new MasterController();

            mc.run();
        }