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(); }