Example #1
0
        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());
        }