public void AllSegmentsAreClosed() { var cricket = new Cricket(2); Assert.IsFalse(cricket.AllSegmentsAreClosed()); // Player 1, open 25, 20 cricket.RegisterDart(25, 2); cricket.RegisterDart(25, 1); Assert.IsTrue(getSegment(cricket, 25).IsOpen); cricket.RegisterDart(20, 3); Assert.IsTrue(getSegment(cricket, 20).IsOpen); cricket.NextPlayer(); // Player 2, close 25, 20 cricket.RegisterDart(25, 2); cricket.RegisterDart(25, 1); Assert.IsFalse(getSegment(cricket, 25).IsOpen); cricket.RegisterDart(20, 3); Assert.IsFalse(getSegment(cricket, 25).IsOpen); cricket.NextPlayer(); // Player 1, open 19, 18, 17 cricket.RegisterDart(19, 3); Assert.IsTrue(getSegment(cricket, 19).IsOpen); cricket.RegisterDart(18, 3); Assert.IsTrue(getSegment(cricket, 18).IsOpen); cricket.RegisterDart(17, 3); Assert.IsTrue(getSegment(cricket, 17).IsOpen); cricket.NextPlayer(); // Player 2, close 19, 18, 17 cricket.RegisterDart(19, 3); Assert.IsFalse(getSegment(cricket, 19).IsOpen); cricket.RegisterDart(18, 3); Assert.IsFalse(getSegment(cricket, 18).IsOpen); cricket.RegisterDart(17, 3); Assert.IsFalse(getSegment(cricket, 17).IsOpen); cricket.NextPlayer(); // Player 1, open 16, 15 cricket.RegisterDart(16, 3); Assert.IsTrue(getSegment(cricket, 16).IsOpen); cricket.RegisterDart(15, 3); Assert.IsTrue(getSegment(cricket, 15).IsOpen); cricket.RegisterDart(0, 0); cricket.NextPlayer(); // Player 2, close 16, 15 cricket.RegisterDart(16, 3); Assert.IsFalse(getSegment(cricket, 16).IsOpen); cricket.RegisterDart(15, 3); Assert.IsFalse(getSegment(cricket, 15).IsOpen); cricket.RegisterDart(0, 0); Assert.IsTrue(cricket.AllSegmentsAreClosed()); Assert.IsTrue(cricket.IsGameOver()); }
public void LeaderOwnsAllOpenSegments() { var cricket = new Cricket(2); Assert.IsFalse(cricket.LeaderOwnsAllOpenSegments()); // Player 1, open 25 and 20 cricket.RegisterDart(25, 2); cricket.RegisterDart(25, 1); cricket.RegisterDart(20, 3); cricket.NextPlayer(); // Player 2, open 19, 18, 17 cricket.RegisterDart(19, 3); cricket.RegisterDart(18, 3); cricket.RegisterDart(17, 3); cricket.NextPlayer(); // Player 1, open 16, 15, score 20 cricket.RegisterDart(16, 3); cricket.RegisterDart(15, 3); cricket.RegisterDart(20, 3); cricket.NextPlayer(); // Player 2, miss cricket.RegisterDart(0, 0); cricket.RegisterDart(0, 0); cricket.RegisterDart(0, 0); cricket.NextPlayer(); // Player 1, close 19, 18, 17 cricket.RegisterDart(19, 3); cricket.RegisterDart(18, 3); cricket.RegisterDart(17, 3); Assert.IsTrue(cricket.LeaderOwnsAllOpenSegments()); Assert.IsTrue(cricket.IsGameOver()); }