コード例 #1
0
        private void StandButton_Click(object sender, RoutedEventArgs e)
        {
            playerTurn--;

            if (playerTurn < 0)
            {
                HitButton.Visibility        = Visibility.Hidden;
                DoubleDownButton.Visibility = Visibility.Hidden;
                StandButton.Visibility      = Visibility.Hidden;
                SplitButton.Visibility      = Visibility.Hidden;

                TurnLabel.Content = "Turn:";
                BlackJackController.HouseTurn();
                UpdateHands();
                EndGame();
            }
            else
            {
                HitButton.Visibility        = Visibility.Hidden;
                DoubleDownButton.Visibility = Visibility.Hidden;
                StandButton.Visibility      = Visibility.Hidden;
                SplitButton.Visibility      = Visibility.Hidden;

                D1Button.Visibility  = Visibility.Visible;
                D5Button.Visibility  = Visibility.Visible;
                D10Button.Visibility = Visibility.Visible;

                TurnLabel.Content = $"Turn: {PlayerNameDisplays[playerTurn].Content.ToString()}";
                HideCurrentHand(false);
            }
        }
コード例 #2
0
        public void BeatHouseFail()
        {
            BlackJackController blackJack = new BlackJackController(1);
            Deck deck       = new Deck();
            Deck playerHand = new Deck(true);
            Deck houseHand  = new Deck(true);

            Card AceSpade  = new Card(Suit.SPADES, Face.ACE);
            Card KingSpade = new Card(Suit.SPADES, Face.KING);

            houseHand.Return(AceSpade);
            houseHand.Return(KingSpade);

            Card SevenClub = new Card(Suit.CLUBS, Face.SEVEN);
            Card TwoHeart  = new Card(Suit.HEARTS, Face.TWO);

            playerHand.Return(SevenClub);
            playerHand.Return(TwoHeart);

            bool beatHouse = false;

            if (blackJack.GetHandValue(playerHand) > blackJack.GetHandValue(houseHand) &&
                blackJack.GetHandValue(playerHand) < 21)
            {
                beatHouse = true;
            }

            Assert.IsFalse(beatHouse);
        }
コード例 #3
0
        public void HouseDrawFail()
        {
            BlackJackController blackJack = new BlackJackController(1);
            Deck deck       = new Deck();
            Deck playerHand = new Deck(true);
            Deck houseHand  = new Deck(true);

            Card TwoSpade   = new Card(Suit.SPADES, Face.TWO);
            Card SevenHeart = new Card(Suit.HEARTS, Face.SEVEN);

            playerHand.Return(TwoSpade);
            playerHand.Return(SevenHeart);

            Card SevenClub  = new Card(Suit.CLUBS, Face.SEVEN);
            Card QueenSpade = new Card(Suit.SPADES, Face.QUEEN);

            houseHand.Return(SevenClub);
            houseHand.Return(QueenSpade);

            bool drawHouse = false;

            if (blackJack.GetHandValue(playerHand) == blackJack.GetHandValue(houseHand) &&
                blackJack.GetHandValue(playerHand) < 21)
            {
                drawHouse = true;
            }

            Assert.IsFalse(drawHouse);
        }
コード例 #4
0
        private void InitializeGame()
        {
            int amountOfPlayers = ConsoleIO.PromptForInt("Enter How Many Players", 1, 5);

            c         = new BlackJackController();
            c.Winner += (winner, winCondition) =>
            {
                Console.WriteLine($"{winner} has won.");
                Console.ReadKey();
            };

            c.Bust += (busted) =>
            {
                if (currentPlayer == busted)
                {
                    turnActive = false;
                }
                Console.WriteLine($"{busted} has busted");
            };

            c.StartGame <ConsoleCardPlayer>(amountOfPlayers);
            players = c.Players.Cast <ConsoleCardPlayer>().ToList();

            foreach (var player in players)
            {
                player.Name = ConsoleIO.PromptForInput("Enter A Name", allowEmpty: false);
            }
        }
コード例 #5
0
        private void RunBusterMoves(BlackJackController blackJackController)
        {
            blackJackController.StartGame <CardPlayer>();
            var player = blackJackController.Players[0];

            blackJackController.TakeInitialBet(player, 100);

            for (int i = 0; i < 30; i++)
            {
                blackJackController.HitPlayer(player);
            }
        }
コード例 #6
0
        private void EndGame()
        {
            int dealerTotal = BlackJackController.GetTotal("", false, true);

            DealerTotal.Content = $":{dealerTotal}";
            for (int i = 0; i < NumPlayers; i++)
            {
                string name = PlayerNameDisplays[i].Content.ToString();
                int    bank = BlackJackController.PayoutForBankOnAPlayer(name);
                PlayerBankDisplays[i].Content = $"${bank}";
            }
        }
コード例 #7
0
        private void DoubleDownButton_Click(object sender, RoutedEventArgs e)
        {
            string playerName = GetCurrentPlayerName();

            BlackJackController.DoublingDown(playerName);
            PlayerBankDisplays[playerTurn].Content = $"${BlackJackController.blackjack.GetPlayer(playerName).Bank}";
            StandButton_Click(sender, e);
            if (playerTurn >= 0)
            {
                HideCurrentHand(true);
            }
        }
コード例 #8
0
        private void StartGame(List <string> names)
        {
            switch (game)
            {
            case Game.BlackJack:
                BlackJackController.StartGame(names.ToArray());
                AddUserControl(new BlackjackUC(names), true);
                break;

            case Game.Poker:
                AddUserControl(new PokerUC(names), true);
                break;
            }
        }
コード例 #9
0
        public void FireBustEventWhenHandIHitTooMuch()
        {
            //arrange
            var  blackJackController = new BlackJackController();
            bool busted = false;

            blackJackController.Bust += (busterBlader) => busted = true;

            //act
            RunBusterMoves(blackJackController);

            //assert
            Assert.IsTrue(busted);
        }
コード例 #10
0
        public void KeepHittingHouseHandWhileUnder17()
        {
            //arrange
            var blackJackController = new BlackJackController();

            blackJackController.StartGame <CardPlayer>();

            //act
            blackJackController.RunHouseTurn();
            List <Card> houseHand = blackJackController.House.Hand;

            //assert
            Assert.IsTrue(blackJackController.CountHand(houseHand) >= 17);
        }
コード例 #11
0
    public void Awake()
    {
        blackJackController = FindObjectOfType(typeof(BlackJackController)) as BlackJackController;
        cardController      = FindObjectOfType(typeof(CardController)) as CardController;
        dealerController    = FindObjectOfType(typeof(DealerController)) as DealerController;
        HitButtonState(false);
        StandButtonState(false);
        BetFieldState("clear");
        PlayerFundsState(false);
        ShowPlayerStatusState("clear");

        //Shows each players starting funds
        playerAvailableFunds.GetComponent <InputField>().text = playerFunds.ToString();
    }
        public void TheResultFromAddingAJackAndAnAceIs21()
        {
            var controller = new BlackJackController();
            var cards      = new List <Card>()
            {
                new Card(Rank.Ace, Suit.Club),
                new Card(Rank.Jack, Suit.Diamond)
            };
            var expected = 21;
            int actual;

            actual = controller.CountHand(cards);

            Assert.AreEqual(expected, actual);
        }
コード例 #13
0
        public void BlackJackPass()
        {
            BlackJackController blackJack = new BlackJackController(1);
            Deck deck       = new Deck();
            Deck playerHand = new Deck(true);

            Card AceSpade  = new Card(Suit.SPADES, Face.ACE);
            Card KingSpade = new Card(Suit.SPADES, Face.KING);

            playerHand.Return(AceSpade);
            playerHand.Return(KingSpade);

            bool isBlackjack = blackJack.BlackJack(playerHand);

            Assert.IsTrue(isBlackjack);
        }
        public void TheResultForTwoAcesAndaJackIsEleven()
        {
            var controller = new BlackJackController();
            var cards      = new List <Card>()
            {
                new Card(Rank.Ace, Suit.Club),
                new Card(Rank.Ace, Suit.Diamond),
                new Card(Rank.Jack, Suit.Spade),
            };
            var expected = 12;
            int actual;

            actual = controller.CountHand(cards);

            Assert.AreEqual(expected, actual);
        }
        public void TheResultAFourAcesIsFourteen()
        {
            var controller = new BlackJackController();
            var cards      = new List <Card>()
            {
                new Card(Rank.Ace, Suit.Club),
                new Card(Rank.Ace, Suit.Diamond),
                new Card(Rank.Ace, Suit.Spade),
                new Card(Rank.Ace, Suit.Heart)
            };
            var expected = 14;
            int actual;

            actual = controller.CountHand(cards);

            Assert.AreEqual(expected, actual);
        }
コード例 #16
0
        private void HitButton_Click(object sender, RoutedEventArgs e)
        {
            DoubleDownButton.Visibility = Visibility.Hidden;
            SplitButton.Visibility      = Visibility.Hidden;

            string playerName = GetCurrentPlayerName();

            BlackJackController.HitMe(playerName, false);
            if (BlackJackController.IsBusted(playerName, false))
            {
                HitButton.Visibility = Visibility.Hidden;
                PlayerBustDisplays[playerTurn].Content = "Busted";
            }
            //UpdateHands();
            DisplayCurrentHand();
            PlayerTotalDisplays[playerTurn].Content = $":{BlackJackController.GetTotal(GetCurrentPlayerName(), false)}";
        }
コード例 #17
0
        public void BlackJackFail()
        {
            BlackJackController blackJack = new BlackJackController(1);
            Deck deck       = new Deck();
            Deck playerHand = new Deck(true);

            Card AceSpade  = new Card(Suit.SPADES, Face.ACE);
            Card KingSpade = new Card(Suit.SPADES, Face.KING);
            Card TenHeart  = new Card(Suit.HEARTS, Face.TEN);

            playerHand.Return(AceSpade);
            playerHand.Return(KingSpade);
            playerHand.Return(TenHeart);

            bool isBlackjack = blackJack.BlackJack(playerHand);

            Assert.IsFalse(isBlackjack);
        }
        public void TheResultFor3TwosAFourAndAnAce()
        {
            var controller = new BlackJackController();
            var cards      = new List <Card>()
            {
                new Card(Rank.Ace, Suit.Club),
                new Card(Rank.Four, Suit.Spade),
                new Card(Rank.Two, Suit.Spade),
                new Card(Rank.Two, Suit.Diamond),
                new Card(Rank.Two, Suit.Diamond)
            };
            var expected = 21;
            int actual;

            actual = controller.CountHand(cards);

            Assert.AreEqual(expected, actual);
        }
コード例 #19
0
        public void FiveCardCharlieFail()
        {
            BlackJackController blackJack = new BlackJackController(1);
            Deck deck       = new Deck();
            Deck playerHand = new Deck(true);

            Card AceSpade = new Card(Suit.SPADES, Face.ACE);
            Card AceClub  = new Card(Suit.CLUBS, Face.ACE);
            Card AceHeart = new Card(Suit.HEARTS, Face.ACE);

            playerHand.Return(AceClub);
            playerHand.Return(AceSpade);
            playerHand.Return(AceHeart);


            bool isCharlie = blackJack.FiveCardCharlie(playerHand);

            Assert.IsFalse(isCharlie);
        }
コード例 #20
0
        public void UpdateHands()
        {
            for (int i = 0; i < NumPlayers; i++)
            {
                PlayerHandDisplays[i].Children.Clear();

                string name  = PlayerNameDisplays[i].Content.ToString();
                int    total = BlackJackController.GetTotal(name, false);
                PlayerTotalDisplays[i].Content = $":{total}";
                if (BlackJackController.IsBusted(name, false))
                {
                    PlayerBustDisplays[i].Content = "Busted";
                }
                var hand = BlackJackController.blackjack.GetPlayer(PlayerNameDisplays[i].Content.ToString()).Hand;
                PlayerHandDisplays[i].Children.Clear();
                PlayerContinuedHandDisplays[i].Children.Clear();

                int count = 0;
                foreach (var card in hand)
                {
                    count++;
                    var pic = ConvertToPicture(card);
                    if (count <= 3)
                    {
                        PlayerHandDisplays[i].Children.Add(pic);
                    }
                    else
                    {
                        PlayerContinuedHandDisplays[i].Children.Add(pic);
                    }
                }
            }
            var dealerHand = BlackJackController.house.Hand;

            DealerHand.Children.Clear();
            foreach (var card in dealerHand)
            {
                var pic = ConvertToPicture(card);
                DealerHand.Children.Add(pic);
            }
        }
コード例 #21
0
        public void GetHandValuePass()
        {
            BlackJackController blackJack = new BlackJackController(1);
            Deck deck       = new Deck();
            Deck playerHand = new Deck(true);

            Card king  = new Card(Suit.CLUBS, Face.KING);
            Card Eight = new Card(Suit.CLUBS, Face.EIGHT);

            playerHand.Return(king);
            playerHand.Return(Eight);

            bool IsValue = false;

            if (blackJack.GetHandValue(playerHand) == 18)
            {
                IsValue = true;
            }

            Assert.IsTrue(IsValue);
        }
コード例 #22
0
        public void GetHandValueFail()
        {
            BlackJackController blackJack = new BlackJackController(1);
            Deck deck       = new Deck();
            Deck playerHand = new Deck(true);

            Card king = new Card(Suit.CLUBS, Face.KING);
            Card Ace  = new Card(Suit.CLUBS, Face.ACE);

            playerHand.Return(king);
            playerHand.Return(Ace);

            bool IsValue = false;

            if (blackJack.GetHandValue(playerHand) == 18)
            {
                IsValue = true;
            }

            Assert.IsFalse(IsValue);
        }
コード例 #23
0
        private void BetButton_Click(object sender, RoutedEventArgs e)
        {
            int bet = 0;

            if (((Button)sender).Content.ToString() == "$1")
            {
                bet = 1;
            }
            else if (((Button)sender).Content.ToString() == "$5")
            {
                bet = 5;
            }
            else if (((Button)sender).Content.ToString() == "$10")
            {
                bet = 10;
            }
            string playerName = GetCurrentPlayerName();

            PlayerBankDisplays[playerTurn].Content = $"${BlackJackController.PlayerBet(playerName, bet)}";
            HitButton.Visibility   = Visibility.Visible;
            StandButton.Visibility = Visibility.Visible;
            if (BlackJackController.CanDoubleDown(playerName))
            {
                DoubleDownButton.Visibility = Visibility.Visible;
            }
            SplitButton.Visibility = Visibility.Hidden;


            HitButton.IsEnabled        = true;
            DoubleDownButton.IsEnabled = true;
            StandButton.IsEnabled      = true;
            SplitButton.IsEnabled      = true;

            D1Button.Visibility  = Visibility.Hidden;
            D5Button.Visibility  = Visibility.Hidden;
            D10Button.Visibility = Visibility.Hidden;
            DisplayCurrentHand();
            PlayerTotalDisplays[playerTurn].Content = $":{BlackJackController.GetTotal(GetCurrentPlayerName(), false)}";
        }
コード例 #24
0
        public void FiveCardCharliePass()
        {
            BlackJackController blackJack = new BlackJackController(1);
            Deck deck       = new Deck();
            Deck playerHand = new Deck(true);

            Card TwoSpade   = new Card(Suit.SPADES, Face.TWO);
            Card TwoClub    = new Card(Suit.CLUBS, Face.TWO);
            Card TwoHeart   = new Card(Suit.HEARTS, Face.TWO);
            Card TwoDiamond = new Card(Suit.DIAMONDS, Face.TWO);
            Card ThreeSpade = new Card(Suit.SPADES, Face.THREE);

            playerHand.Return(TwoSpade);
            playerHand.Return(TwoClub);
            playerHand.Return(TwoHeart);
            playerHand.Return(TwoDiamond);
            playerHand.Return(ThreeSpade);


            bool isCharlie = blackJack.FiveCardCharlie(playerHand);

            Assert.IsTrue(isCharlie);
        }
コード例 #25
0
 public void Awake()
 {
     blackJackController = FindObjectOfType(typeof(BlackJackController)) as BlackJackController;
     cardController      = FindObjectOfType(typeof(CardController)) as CardController;
 }