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; } } }
public IEnumerable <TermResult> GetResults(IDieRoller dieRoller) { IEnumerable <TermResult> results = from i in Enumerable.Range(0, Multiplicity) select new TermResult { Scalar = Scalar, Value = dieRoller.RollDie(Sides), Type = "d" + Sides }; return(results.OrderByDescending(d => d.Value).Take(Choose)); }