public void Bonus_Roll_If_is_A_Strike_In_10_Frame_Then_Additional_Role_Must_Be_Provide() { var frame = new Frame(10); frame.Rolls.Add(10); frame.Rolls.Add(10); Assert.IsFalse(frame.IsDone); }
public void A_Frame_Strike_Is_When_All_10_Pins_Where_Knocked_Down_With_The_First_Roll() { var frame = new Frame(1); frame.Rolls.Add(10); Assert.IsTrue(frame.IsDone); Assert.AreEqual((int)Mark.Strike, (int)frame.Mark); }
private int GetScore(Frame frame, int index) { int sum = frame.Rolls.PinsDown; if (index < 10) { if (frame.Mark == Mark.Strike) { if (index + 1 < 10) { if (Frames[index + 1].IsDone) { sum += GetTwoRolls(Frames[index + 1], index + 1); } } else { sum += frame.Rolls[2]; } } else if (frame.Mark == Mark.Spare) { if (index + 1 < 10) { if (Frames[index + 1].IsDone) { sum += Frames[index + 1].Rolls[0]; } } } } return sum; }
public void A_Frame_Open_Is_When_Some_Pins_Where_Left_Standing_After_The_Frame_Was_CompletedRolls() { var frame = new Frame(1); frame.Rolls.Add(1); frame.Rolls.Add(8); Assert.IsTrue(frame.IsDone); Assert.AreEqual((int)Mark.Open, (int)frame.Mark); }
public void A_Frame_Spare_Is_When_All_10_Pins_Where_Knocked_Down_Using_Two_Rolls() { var frame = new Frame(1); frame.Rolls.Add(1); frame.Rolls.Add(9); Assert.IsTrue(frame.IsDone); Assert.AreEqual((int)Mark.Spare, (int)frame.Mark); }
private int GetTwoRolls(Frame frame, int index) { if (frame.Mark == Mark.Strike) { if ((index + 1) < 10) { return 10 + Frames[index + 1].Rolls[0]; } return Frames[index].Rolls[1]; } return frame.Rolls.PinsDown; }
public void Bonus_Roll_If_is_A_Spare_In_10_Frame() { var frame = new Frame(10); frame.Rolls.Add(2); frame.Rolls.Add(8); frame.Rolls.Add(1); Assert.IsTrue(frame.IsDone); }