private static string GetRollsOfLastFrame(Frame f) { if (f.GetRollCount() == 0) return " "; if (f.GetRollCount() == 1) { if (StrikeRule.IsStrike(f[0])) return " X "; return string.Format(" {0} ", f[0].GetPin()); } if (f.GetRollCount() == 2) { if (StrikeRule.IsStrike(f[0])) { if (StrikeRule.IsStrike(f[1])) return " XX "; return string.Format(" X{0} ", f[1].GetPin()); } if (SpareRule.IsSpare(f)) return string.Format(" {0}/ ", f[0].GetPin()); return string.Format(" {0} {1}", f[0].GetPin(), f[1].GetPin()); } if (f.GetRollCount() == 3) { if (StrikeRule.IsStrike(f[0])) { if (StrikeRule.IsStrike(f[1])) { if (StrikeRule.IsStrike(f[2])) return " XXX"; return string.Format(" XX{0}", f[2].GetPin()); } if (SpareRule.IsSpare(f[1], f[2])) return string.Format(" X{0}/", f[1].GetPin()); return string.Format(" X{0}{1}", f[1].GetPin(), f[2].GetPin()); } if (StrikeRule.IsStrike(f[2])) return string.Format(" {0}/X", f[0].GetPin()); return string.Format(" {0}/{1}", f[0].GetPin(), f[2].GetPin()); } throw new Exception(); }
private static bool IsCountMatch(Frame f) { return f.GetRollCount() == 1; }
private static bool IsFullLastFrame(Frame f) { if (f.GetRollCount() == 2) return SumPin(f) < PinNumberRule.GetMax(); return f.GetRollCount() == 3; }
private static bool IsCountFull(Frame f) { return f.GetRollCount() == 2; }