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