public void PlayMatch()
        {
            var leg = new SinglePlayerLeg(126)

                      // Turn #1
                      .WithAdditionalThrow(ThrowResult.Triple(20))
                      .WithAdditionalThrow(ThrowResult.Double(20))
                      .WithAdditionalThrow(ThrowResult.Single(20))
                      // Score = 6

                      // Turn #2
                      .WithAdditionalThrow(ThrowResult.Outside)
                      .WithAdditionalThrow(ThrowResult.Outside)
                      .WithAdditionalThrow(ThrowResult.Outside)

                      // Turn #3. Bust! Not double!
                      .WithAdditionalThrow(ThrowResult.Triple(2))

                      // Turn #4. Bust! Too many!
                      .WithAdditionalThrow(ThrowResult.InnerBull)

                      // Turn #5. Bust! Can't leave 1.
                      .WithAdditionalThrow(ThrowResult.Single(5))

                      // Turn #6. Finished
                      .WithAdditionalThrow(ThrowResult.Double(3));

            Assert.AreEqual(6, leg.Turns.Count);
            Assert.AreEqual(0, leg.Score);
        }
Beispiel #2
0
        public void NotFinish_IfBothPlayersHasNonZeroScore()
        {
            var leg = new Leg("id", 20);

            leg.AddThrow(ThrowResult.Single(10));
            Assert.IsFalse(leg.Finished);
            Assert.AreEqual(-1, leg.WinnerIndex);
        }
Beispiel #3
0
        public void BeSerializable()
        {
            var turn = new Turn(301)
                       .WithAdditionalThrow(ThrowResult.Outside)
                       .WithAdditionalThrow(ThrowResult.Single(1))
                       .WithAdditionalThrow(ThrowResult.Double(2));
            var res = JsonConvert.SerializeObject(turn, new ThrowJsonConverter());

            Assert.AreEqual(@"{""Throws"":[""0"",""1"",""D2""],""ScoreBefore"":301,""ScoreAfter"":296,""Finished"":true,""Bust"":false}", res, res);
            var deserialized = JsonConvert.DeserializeObject <Turn>(res, new ThrowJsonConverter());

            Assert.AreEqual(turn, deserialized);
        }
Beispiel #4
0
        public void ChangePlayer_AfterTurnFinished()
        {
            var match = new Match("1", new[] { "p1", "p2" }, 301, 2);

            match.AddThrow(ThrowResult.Single(1));
            match.AddThrow(ThrowResult.Single(2));
            match.AddThrow(ThrowResult.Single(3));
            // Player 1 turn is finished

            match.AddThrow(ThrowResult.Single(4));

            Assert.AreEqual(1, match.CurrentLeg.GetPlayerTurns(0).Count);
            Assert.AreEqual(1, match.CurrentLeg.GetPlayerTurns(1).Count);
        }
Beispiel #5
0
        public void BeSerializable()
        {
            var leg = new Leg("1", 20);

            leg.AddThrow(ThrowResult.Single(10));            //#1
            leg.AddThrow(ThrowResult.Triple(20));            //#1 bust!
            leg.AddThrow(ThrowResult.Double(10));            //#2 finished

            var text = JsonConvert.SerializeObject(leg, Formatting.Indented, new ThrowJsonConverter());

            Console.WriteLine(text);
            var deserialized = JsonConvert.DeserializeObject <Leg>(text, new ThrowJsonConverter());
            var text2        = JsonConvert.SerializeObject(deserialized, Formatting.Indented, new ThrowJsonConverter());

            Console.WriteLine(text2);
            Assert.AreEqual(text, text2);
        }