pull/20/head
victor perez ngounou 3 years ago
parent 268bac1350
commit 23af5fd3da

@ -148,7 +148,7 @@ namespace BowlingLib.Model
this.IsSpare = true;
}
}
if (this.QuillesRestantes == 0 || this.Lancer2 != null)
if (this.QuillesRestantes == 0 || (this.Lancer2 != null && this.Numero != 10))
{
this.IsFinished = true;
}

@ -30,21 +30,18 @@ namespace BowlingLib.Model
for (int i = 0; i < Frames.Count; i++)
{
score += Frames[i].QuillesTombees;
if (i<Frames.Count-1)
if (Frames[i].IsStrike && i < Frames.Count - 1)
{
if (Frames[i].IsStrike)
score += Frames[i + 1].QuillesTombees;
if (Frames[i + 1].IsStrike && i < Frames.Count - 2)
{
score += Frames[i + 1].QuillesTombees;
if (Frames[i + 1].IsStrike && i < Frames.Count - 2)
{
score += Frames[i + 2].QuillesTombees;
}
}
else if (Frames[i].IsSpare)
{
score += Frames[i + 1].Lancer1.QuillesTombees;
score += Frames[i + 2].QuillesTombees;
}
}
else if (Frames[i].IsSpare && i < Frames.Count - 1)
{
score += Frames[i + 1].Lancer1.QuillesTombees;
}
}
return score;
}

@ -11,6 +11,7 @@ namespace BowlingAppUnitTest
{
public class UTPartie
{
//le cas ou le joueur ne fait que des strikes
[Fact]
public void TestGetScore()
{
@ -28,7 +29,7 @@ namespace BowlingAppUnitTest
partie.AddFrame(new Frame(8));
partie.AddFrame(new Frame(9));
partie.AddFrame(new Frame(10));
partie.AddFrame(new Frame(10));
partie.AddFrame(new Frame(11));
for (int i = 0; i < partie.Frames.Count; i++)
{
@ -41,5 +42,81 @@ namespace BowlingAppUnitTest
//Assert
Assert.Equal(300, score);
}
//le cas ou le joueur fait que des spares
[Fact]
public void TestGetScore2()
{
//Arrange
StubPartie stubPartie = new StubPartie();
List<Partie> listParties = stubPartie.ListParties();
Partie partie = listParties[0];
partie.AddFrame(new Frame(1));
partie.AddFrame(new Frame(2));
partie.AddFrame(new Frame(3));
partie.AddFrame(new Frame(4));
partie.AddFrame(new Frame(5));
partie.AddFrame(new Frame(6));
partie.AddFrame(new Frame(7));
partie.AddFrame(new Frame(8));
partie.AddFrame(new Frame(9));
partie.AddFrame(new Frame(10));
for (int i = 0; i < partie.Frames.Count; i++)
{
partie.Frames[i].Lancer(5);
partie.Frames[i].Lancer(5);
}
//Act
int? score = partie.GetScore();
//Assert
Assert.Equal(150, score);
}
//le cas ou le joueur fait que des spares et des strikes
[Fact]
public void TestGetScore3()
{
//Arrange
StubPartie stubPartie = new StubPartie();
List<Partie> listParties = stubPartie.ListParties();
Partie partie = listParties[0];
partie.AddFrame(new Frame(1));
partie.AddFrame(new Frame(2));
partie.AddFrame(new Frame(3));
partie.AddFrame(new Frame(4));
partie.AddFrame(new Frame(5));
partie.AddFrame(new Frame(6));
partie.AddFrame(new Frame(7));
partie.AddFrame(new Frame(8));
partie.AddFrame(new Frame(9));
partie.AddFrame(new Frame(10));
for (int i = 0; i < partie.Frames.Count; i++)
{
if (i % 2 == 0)
{
partie.Frames[i].Lancer(10);
}
else
{
partie.Frames[i].Lancer(5);
partie.Frames[i].Lancer(5);
}
}
//Act
int? score = partie.GetScore();
//Assert
Assert.Equal(200, score);
}
}
}
Loading…
Cancel
Save