public void PlayTurn(Player player) { PlayerGameState.StartTurn(); UserInterface.TellUserStartingNewTurn(player); var dieArray = DieRoller.RollDie(); PlayerGameState.DecrementRollsLeft(); while (PlayerGameState.RollsAreLeftInTurn()) { UserInterface.ShowDieRoll(dieArray); if (UserInterface.AskIfUserWantsToScoreDie(PlayerGameState.NumberRollsLeftInTurn)) { ChooseCategoryAndScoreDieRoll(dieArray); break; } var rerollDieArray = UserInterface.AskDieToReroll(dieArray); dieArray = DieRoller.RerollDie(dieArray, rerollDieArray); PlayerGameState.DecrementRollsLeft(); if (!PlayerGameState.RollsAreLeftInTurn()) { ChooseCategoryAndScoreDieRoll(dieArray); break; } } }