Пример #1
0
 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);
 }
Пример #2
0
 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);
 }
Пример #3
0
        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;
        }
Пример #4
0
 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);
 }
Пример #5
0
 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);
 }
Пример #6
0
 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;
 }
Пример #7
0
 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);
 }