protected virtual int CalculateScore() { if (IsStrike() && SecondTry != 0) { throw new ArgumentOutOfRangeException(nameof(SecondTry), "Second try should not be play when it's strike."); } return FirstTry + SecondTry + Bonus(); }
private static void DisplayFrameContent(Frame frame) { string intermediateNewLine = $"{Environment.NewLine}\t"; var message = new StringBuilder(); message.Append($"* Frame n°{frame.FrameNumber}"); message.Append(intermediateNewLine); message.Append($"Intermediate score:\t{ frame.CalculateScore()}"); message.Append(intermediateNewLine); message.Append($"Is strike:\t{ frame.IsStrike}"); message.Append(intermediateNewLine); message.Append($"Is spare:\t{frame.IsSpare}"); message.Append(intermediateNewLine); message.Append($"First launch:\t{frame.FirstLaunch}"); message.Append(intermediateNewLine); message.Append($"Second launch:\t{frame.SecondLaunch}"); Console.WriteLine(message.ToString()); }