Пример #1
0
 public void ConstructorShouldThrowWhenGivenNullGameRulesFactory()
 {
     Assert.Throws <ArgumentNullException>(delegate()
     {
         sut = new Yahtzee(MockedPlayerFactory, null);
     });
 }
Пример #2
0
 public void Test_1s()
 {
     Assert.True(Yahtzee.Ones(1, 2, 3, 4, 5) == 1);
     Assert.Equal(2, Yahtzee.Ones(1, 2, 1, 4, 5));
     Assert.Equal(0, Yahtzee.Ones(6, 2, 2, 4, 5));
     Assert.Equal(4, Yahtzee.Ones(1, 2, 1, 1, 1));
 }
Пример #3
0
    public void Example()
    {
        int expected = 6 * 9;
        int actual   = new Yahtzee().Answer;

        Assert.AreEqual(expected, actual);
    }
Пример #4
0
        static void Main(string[] args)
        {
            // Create a list of dice
            List <Dice> scoreableDice = new List <Dice>();

            Console.WriteLine($"Aces:        {Yahtzee.calculateAces(scoreableDice)}");
            Console.WriteLine($"             {Yahtzee.calculateBonus(scoreableDice, Yahtzee.calculateAces(scoreableDice))}");
        }
Пример #5
0
        public void Chance_scores_sum_of_all_dice()
        {
            int expected = 15;
            int actual   = Yahtzee.Chance(2, 3, 4, 5, 1);

            Assert.Equal(expected, actual);
            Assert.Equal(16, Yahtzee.Chance(3, 3, 4, 5, 1));
        }
Пример #6
0
        public void Yahtzee_scores_50()
        {
            int expected = 50;
            int actual   = Yahtzee.yahtzee(4, 4, 4, 4, 4);

            Assert.Equal(expected, actual);
            Assert.Equal(50, Yahtzee.yahtzee(6, 6, 6, 6, 6));
            Assert.Equal(0, Yahtzee.yahtzee(6, 6, 6, 6, 3));
        }
Пример #7
0
        public void ShouldAddXPlayers()
        {
            // This verifies that a player, any player, has been added.
            sut = new Yahtzee(MockedPlayerFactory, MockedGameRulesFactory);

            sut.AddPlayer("Niklas af Eriksson");
            sut.AddPlayer("Jonathan von Alklid");

            Assert.Equal(2, sut.PlayerCount);
        }
Пример #8
0
        public void ConsolidateDice()
        {
            Yahtzee yahtzee = new Yahtzee();
            var     result  = yahtzee.ConsolidateDice(new List <int> {
                1, 4, 4, 3, 3
            });

            result[1].Should().Be(1);
            result[4].Should().Be(2);
            result[3].Should().Be(2);
        }
Пример #9
0
        public void SaveThreeKind2()
        {
            //Arrange
            Yahtzee target = new Yahtzee();

            //Act
            target.SetDiceArrayValues(4, 4, 4, 1, 1);
            bool pass = target.SaveThreeKind();

            //Assert
            Assert.True(pass);
        }
Пример #10
0
        public void FullHouseBug2()
        {
            //Arrange
            Yahtzee target = new Yahtzee();

            //Act
            target.SetDiceArrayValues(1, 1, 1, 5, 5);
            //Assert
            Assert.True(target.SaveFullHouse());

            //target.Close();
        }
Пример #11
0
        public void TestYahtzeeRollingNotAYahtzee()
        {
            TestingNumberGenerator random = new TestingNumberGenerator(
                new List <int>
            {
                1, 2, 3, 4, 5
            });
            Yahtzee testYahtzee = new Yahtzee(random);

            testYahtzee.roll();
            Assert.IsFalse(testYahtzee.checkForYahtzee());
        }
Пример #12
0
        public void SaveTwos1Dice()
        {
            //Arrange
            Yahtzee target = new Yahtzee();

            //Act
            target.SetDiceArrayValues(2, 4, 3, 4, 5);
            bool pass = target.SaveTwos();

            //Assert
            Assert.True(pass);
        }
Пример #13
0
        public void FourStraightBug()
        {
            //Arrange
            Yahtzee target = new Yahtzee();

            //Act
            target.SetDiceArrayValues(6, 4, 1, 5, 3);
            //Assert
            Assert.True(target.SaveFourStraight());

            //target.Close();
        }
Пример #14
0
        public void TestYahtzeeRollingLargeStraight()
        {
            TestingNumberGenerator random = new TestingNumberGenerator(
                new List <int>
            {
                1, 2, 3, 4, 5
            });
            Yahtzee testYahtzee = new Yahtzee(random);

            testYahtzee.roll();
            Assert.IsTrue(testYahtzee.checkForLargeStraight());
        }
Пример #15
0
        public void SaveFives5Dice()
        {
            //Arrange
            Yahtzee target = new Yahtzee();

            //Act
            target.SetDiceArrayValues(5, 5, 5, 5, 5);
            bool pass = target.SaveFives();

            //Assert
            Assert.True(pass);
        }
Пример #16
0
        public void SaveThreeKind2Pairs()
        {
            //Arrange
            Yahtzee target = new Yahtzee();

            //Act
            target.SetDiceArrayValues(2, 2, 6, 6, 1);
            bool pass = target.SaveThreeKind();

            //Assert
            Assert.False(pass);
        }
Пример #17
0
        public void SaveYahtzeeSixes()
        {
            //Arrange
            Yahtzee target = new Yahtzee();

            //Act
            target.SetDiceArrayValues(6, 6, 6, 6, 6);
            bool pass = target.SaveYahtzee();

            //Assert
            Assert.True(pass);
        }
Пример #18
0
        public void SaveYahtzee4Dice()
        {
            //Arrange
            Yahtzee target = new Yahtzee();

            //Act
            target.SetDiceArrayValues(6, 6, 6, 6, 5);
            bool pass = target.SaveYahtzee();

            //Assert
            Assert.IsFalse(pass);
        }
Пример #19
0
        public void TestYahtzeeRollingYahtzee()
        {
            TestingNumberGenerator random = new TestingNumberGenerator(
                new List <int>
            {
                1, 1, 1, 1, 1
            });
            Yahtzee testYahtzee = new Yahtzee(random);

            testYahtzee.roll();
            Assert.IsTrue(testYahtzee.checkForYahtzee());
        }
Пример #20
0
        public void SaveOnes5Dice()
        {
            //Arrange
            //Yahtzee target = new Yahtzee();
            target = new Yahtzee();

            //Act
            target.SetDiceArrayValues(1, 1, 1, 1, 1);
            bool pass = target.SaveOnes();

            //Assert
            Assert.True(pass);
        }
Пример #21
0
        public void SaveOnes0Dice()
        {
            //Arrange
            //Yahtzee target = new Yahtzee();
            target = new Yahtzee();

            //Act
            target.SetDiceArrayValues(2, 3, 3, 6, 4);
            bool pass = target.SaveOnes();

            //Assert
            Assert.False(pass);
        }
Пример #22
0
        public void CalculateRoll()
        {
            Yahtzee yahtzee = new Yahtzee();

            foreach (TestCase testCase in SetTestCases())
            {
                var result = yahtzee.CalculateRoll(testCase.Dice, testCase.OptionChosen);
                result.Should().Be(
                    testCase.Expected,
                    "For Dice {0}, on option {1} the expected result is {2}",
                    testCase.Dice.ToString(),
                    testCase.OptionChosen,
                    testCase.Expected);
            }
        }
        public void RollScoreTests()
        {
            //Arrange
            Yahtzee target = new Yahtzee();

            //Act
            target.SetDiceArrayValues(1, 2, 3, 4, 5);
            target.SaveOnes();
            //Assert
            Assert.AreEqual(1, target.RollScore);

            target.SetDiceArrayValues(1, 2, 3, 4, 1);
            target.RollScore = 0;
            target.SaveOnes();
            //Assert
            Assert.AreEqual(2, target.RollScore);
        }
Пример #24
0
        private void scoreLabel_PointerEntered(object sender, PointerRoutedEventArgs e)
        {
            ScoreCategory currentCategory =
                GameBoard.getScoreCategoryByTextBlockControl(sender as TextBlock);

            if (currentCategory.status == ScoreCategory.Status.Unused)
            {
                currentCategory.descriptionTextBlock.Foreground =
                    new SolidColorBrush(Colors.OrangeRed);

                // Display possible bonus points
                GameBoard.bonusScoreTextBlock.Text =
                    Yahtzee.calculateBonus(GameBoard.ScoreableDice,
                                           currentCategory.scoreValue).ToString();
            }

            return;
        }
Пример #25
0
        private void scoreLabel_PointerReleased(object sender, PointerRoutedEventArgs e)
        {
            #region Data
            ScoreCategory currentCategory =
                GameBoard.getScoreCategoryByTextBlockControl(sender as TextBlock);
            #endregion

            #region Logic
            if (currentCategory.status == ScoreCategory.Status.Unused)
            {
                currentCategory.status = ScoreCategory.Status.Used;

                // Apply points
                GameBoard.totalScore += currentCategory.scoreValue;
                GameBoard.totalScore +=
                    Yahtzee.calculateBonus(GameBoard.ScoreableDice, currentCategory.scoreValue);

                // Reset all the dice
                GameBoard.resetDice();
                foreach (Dice dice in GameBoard.RollableDice.Values)
                {
                    dice.roll();
                }

                // Enable the roll button
                resetRollDiceButton();

                // Calculate all the scores
                GameBoard.calculateAllScores();
            }

            if (GameBoard.isGameOver())
            {
                gameBoardMessageBox.Text = $"Game Over. Final Score: {GameBoard.totalScore.ToString()}";
                bt_rollDice.IsEnabled    = false;
                GameBoard.hideAllDice();
            }

            #endregion

            return;
        }
Пример #26
0
 public void four_of_a_knd()
 {
     Assert.Equal(12, Yahtzee.FourOfAKind(3, 3, 3, 3, 5));
     Assert.Equal(20, Yahtzee.FourOfAKind(5, 5, 5, 4, 5));
     Assert.Equal(0, Yahtzee.FourOfAKind(3, 3, 3, 3, 3));
 }
Пример #27
0
 public void three_of_a_kind()
 {
     Assert.Equal(9, Yahtzee.ThreeOfAKind(3, 3, 3, 4, 5));
     Assert.Equal(15, Yahtzee.ThreeOfAKind(5, 3, 5, 4, 5));
     Assert.Equal(0, Yahtzee.ThreeOfAKind(3, 3, 3, 3, 5));
 }
Пример #28
0
 public void two_Pair()
 {
     Assert.Equal(16, Yahtzee.TwoPair(3, 3, 5, 4, 5));
     Assert.Equal(0, Yahtzee.TwoPair(3, 3, 5, 5, 5));
 }
Пример #29
0
 public void Example()
 {
     int expected = 6 * 9;
     int actual = new Yahtzee().Answer;
     Assert.AreEqual(expected, actual);
 }
Пример #30
0
 public void one_pair()
 {
     Assert.Equal(6, Yahtzee.ScorePair(3, 4, 3, 5, 6));
     Assert.Equal(10, Yahtzee.ScorePair(5, 3, 3, 3, 5));
     Assert.Equal(12, Yahtzee.ScorePair(5, 3, 6, 6, 5));
 }
Пример #31
0
 public void test_threes()
 {
     Assert.Equal(6, Yahtzee.Threes(1, 2, 3, 2, 3));
     Assert.Equal(12, Yahtzee.Threes(2, 3, 3, 3, 3));
 }
Пример #32
-1
    public static void Main(string[] args)
    {
        if (args.Length < 1)
        {
            PrintUsage();
            return;
        }

        var rulesetArg = args[0];
        Ruleset ruleset;

        switch (rulesetArg)
        {
            case "yahtzee":
                ruleset = new Yahtzee();
                break;
            case "yatzy":
                ruleset = new Yatzy();
                break;
            default:
                Console.WriteLine("Unknown ruleset " + rulesetArg);
                return;
        }

        var solver = new Solver(ruleset);

        if (args.Length > 1)
        {
            var startStep = int.Parse(args[1]);
            solver.Solve(startStep);
        }
        else
        {
            solver.Solve();
        }
    }