コード例 #1
0
        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());
        }
コード例 #2
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());
        }