private static void AddSpare() { var secondRoll = SecondRoll(); secondRoll.NextRoll = BuildRoll.From(RawLine[Index + 2]); secondRoll.KnockedPins -= FirstRoll().KnockedPins; Line.AddFrame(new SpareFrame(FirstRoll(), secondRoll)); }
private static void AddStrike() { var firstRoll = FirstRoll(); firstRoll.NextRoll = BuildRoll.From(RawLine[Index + 1]); firstRoll.NextRoll.NextRoll = BuildRoll.From(RawLine[Index + 2]); Line.AddFrame(new StrikeFrame(firstRoll)); Index -= 1; }
private static bool ThereIsAStrikeInTheLastFrame() { return(BuildRoll.From(RawLine[Index + 1]).KnockedPins == 10 && Index + 4 == RawLine.Length); }
private static Roll SecondRoll() => BuildRoll.From(RawLine[Index + 1]);
private static Roll FirstRoll() => BuildRoll.From(RawLine[Index]);