Draw() public méthode

public Draw ( ) : Card,
Résultat Card,
        public void Draw_ShouldThrowException_IfDeckIsEmpty()
        {
            var deck = new Deck<StandartCard>(OpositeOrderShufflerMock().Object, new[] { new StandartCard(Suit.Clubs, Rank.Ace) });

            deck.Draw();

            var act = new Action(() => deck.Draw());

            act.ShouldThrow<InvalidOperationException>();
        }
        public void Draw_ShouldDrawCardSuccessfully()
        {
            var cards = RandomStandartCards();
            var deck = new Deck<StandartCard>(OpositeOrderShufflerMock().Object, cards);

            deck.Draw().Should().Be(cards[0]);
            deck.Draw().Should().Be(cards[1]);
            deck.Draw().Should().Be(cards[2]);
            deck.Draw().Should().Be(cards[3]);
        }
Exemple #3
0
    public void DrawTwoCards()
    {
        // destroy sprites of previous hand
        DiscardHand();
        handText1.text = handText2.text = winnerText.text = "";

        if (deck.GetCurrentCardCount() > 0)
        {
            // animate discard
            if (hand.Count > 0)
            {
                GameObject faceDown1 = Instantiate(cardBack3);
                GameObject faceDown2 = Instantiate(cardBack3);
                discards.Add(faceDown1);
                discards.Add(faceDown2);
                StartCoroutine(TranslateCard(faceDown1, new Vector3(-3.0f, -1.5f), new Vector3(-5.0f, 3.2f)));
                StartCoroutine(TranslateCard(faceDown2, new Vector3(3.0f, -1.5f), new Vector3(-5.0f, 3.2f)));
            }

            // draw twice for new hand
            hand = new List <Card>();
            hand.Add(deck.Draw());
            hand.Add(deck.Draw());
            PlaySound("Draw");

            // animate card draw
            GameObject card1 = Instantiate(cardBack3);
            GameObject card2 = Instantiate(cardBack3);
            StartCoroutine(TranslateCard(card1, card1.transform.position, new Vector3(-3.0f, -1.5f)));
            StartCoroutine(TranslateCard(card2, card2.transform.position, new Vector3(3.0f, -1.5f)));

            // reveal cards and update deck sprites
            StartCoroutine(RevealCardDraw(1.0f, card1, card2));
            DownsizeDeck();
        }
        else
        {
            // destroy discard pile
            ClearDiscards();

            // notify refresh
            winnerText.text = "Shuffling deck . . .";

            // refresh deck
            for (int i = 0; i < cardBacks.Length; i++)
            {
                cardBacks[i].SetActive(true);
            }

            PlaySound("Shuffle");
            Start();
        }
    }
        static void Main(string[] args)
        {
            //Create a deck of cards
            var deck = new Deck(52);

            //start a counter as we build the deck
            int counter = 0;

            //loop through the face values
            for (int i = 2; i <= 14; i++)
            {
                //loop through the suits
                for (int j = 0; j <= 4; j++)
                {                
                    //set the face values
                string faceValue;

                if (i < 11) faceValue = i.ToString();
                else if (i == 11) faceValue = "Jack";
                else if (i == 12) faceValue = "Queen";
                else if (i == 13) faceValue = "King";
                else faceValue = "Ace";

                //set the suit values
                string suit;
                if (j == 1) suit = "Hearts";
                else if (j == 2) suit = "Diamonds";
                else if (j == 3) suit = "Spades";
                else suit = "Clubs";

                deck.Cards[counter] = new Card
                {
                    FaceValue = faceValue,
                    Suit = suit,
                };

                counter++;

            }
                //draw a card
            var card = deck.Draw();

                //draw rando 2
                var card2 = deck.Draw();

                //show the value
            Console.WriteLine(card.GetFullName());

            Console.ReadLine();

        }
    }
Exemple #5
0
    //public Deck deck = new Deck();
    //public Deck fold = new Deck();

    //private int[] Player1Position = new int[2] { 0, 0 };
    //private int[] Player2Position = new int[2] { 0, 0 };

    void Start()
    {
        label = type + order;
        m     = manager.GetComponent <Stage1_Manager>();
        sr    = this.transform.GetChild(0).GetComponent <SpriteRenderer>();
        aggr  = new Card();
        pass  = new Card();
        deck  = new Deck(card_id);
        deck.Shuffle();
        hand[0] = deck.Draw();
        hand[1] = deck.Draw();
        hand[2] = deck.Draw();
    }
Exemple #6
0
 public void Decide()
 {
     if (this.CountPoints(CroupierCards) <= 15)
     {
         var card = carddeck.Draw();
         CroupierCards.Add(card);
         Console.WriteLine($"Krupier dobiera {card.Number}");
     }
     else
     {
         Console.WriteLine("Krupier nie dobiera");
     }
 }
Exemple #7
0
    // Use this for initialization
    void Start()
    {
        gm          = this;
        GameDeck    = GameObject.Find("Deck").GetComponent <Deck>();
        DiscardPile = GameObject.Find("Discard").GetComponent <Discard>();
        Log         = GameObject.Find("GameLog").GetComponent <GameLog>();
        Players     = new GameObject[PlayerCount];
        Players[0]  = GameObject.Find("PlayerObject");
        Players[0].GetComponent <Controller>().Order = 0;
        Players[0].GetComponent <Controller>().Name  = pname;
        PlayerIndex = 0;
        for (int i = 1; i < PlayerCount; i++)
        {
            Players[i] = Instantiate(COM);
            Players[i].transform.SetParent(gameObject.transform);
            Players[i].GetComponent <Controller>().Order = i;
            Players[i].GetComponent <Controller>().Name  = "COM " + i;
            if (ShowAllHands)
            {
                Players[i].transform.localRotation = Quaternion.Euler(180, 0, 0);
                Players[i].transform.FindChild("Name").localRotation = Quaternion.Euler(Vector3.zero);
            }
        }
        foreach (Card c in GameDeck.Cards)
        {
            c.InstantiateObject();
        }
        for (int i = 0; i < 7; i++) // distribute cards
        {
            foreach (GameObject player in Players)
            {
                Controller pc = player.GetComponent <Controller>();
                if (pc.Hand == null)
                {
                    pc.Hand = new List <Card>();
                }
                Card c = GameDeck.Draw();
                player.GetComponent <Controller>().AddCard(c);
            }
        }

        Turn = (int)System.Math.Floor(Random.Range(0, 3.9f));
        Log.LogTurn(Players[Turn].GetComponent <Controller>());
        Clockwise = false;
        DiscardPile.DiscardCard(GameDeck.Draw());
        if (ColorInPlay == Card.Colors.Wild)
        {
            ColorInPlay = Players[Turn].GetComponent <Controller>().ChooseColor();
        }
        CurrentState = States.Wait;
    }
Exemple #8
0
        public void DrawShouldGiveACardFromTheDeck()
        {
            var initialDeck = _deck.Cards.ToList();

            var drawnCard = _deck.Draw();

            Assert.IsTrue(initialDeck.Contains(drawnCard));
        }
        public void Deck_DiscardListOfCard_CardsDiscardedCorrectly()
        {
            // Arrange
            Deck        unitUnderTest = new Deck();
            List <Card> cards         = new List <Card> {
                unitUnderTest.Draw(), unitUnderTest.Draw(), unitUnderTest.Draw()
            };

            // Act
            unitUnderTest.Discard(cards);

            // Assert
            cards.ForEach(card => Assert.IsFalse(unitUnderTest.Cards.Contains(card)));
            cards.ForEach(card => Assert.IsTrue(unitUnderTest.DiscardedCards.Contains(card)));
        }
Exemple #10
0
        private void NewGame()
        {
            // create new deck
            deck    = new Deck();
            discard = new Stack <Card>();

            // create players
            cpuPics    = new List <PictureBox>();
            playerPics = new List <PictureBox>();
            cpu        = new Player(deck, deck.Draw(5), cpuPics);
            player     = new Player(deck, deck.Draw(5), playerPics);

            playerTurn = PlayerType.PLAYER;
            Discard(deck.Draw(1)[0]);
        }
Exemple #11
0
        private static void TestGame()
        {
            Deck   d = new Deck();
            Player p = new Player("Robot1", "Robot1");
            Player q = new Player("Robot2", "Robot2");

            p.SetPocket(d.Draw(), d.Draw());
            q.SetPocket(d.Draw(), d.Draw());
            Card[] community = { d.Draw(), d.Draw(), d.Draw(), d.Draw(), d.Draw() };
            Console.WriteLine(p.FindBestHand(SerializeCommunity(community)).Description);
            Console.WriteLine(q.FindBestHand(SerializeCommunity(community)).Description);
        }
        public static Game InProgress(int numberOfPlayers = 2)
        {
            var game = new Game
            {
                Status = GameStatus.InProgress
            };

            var deck = new Deck(game);

            deck.New();

            game.Deck = deck;

            var players = new List <Player>();

            for (var i = 1; i <= numberOfPlayers; i++)
            {
                players.Add(PlayerFactory.New(i));
            }

            var hands = players.Select(t => HandFactory.New(deck.DealHand(), t)).ToList();

            var discard = new Stack <Card>();

            discard.Push(deck.Draw());

            game.CurrentColor = discard.Peek().Color;
            game.CurrentValue = discard.Peek().Value;
            game.Discard      = discard;
            game.Hands        = hands;
            game.Players      = players;

            return(game);
        }
Exemple #13
0
    public void DrawCard()
    {
        Card newCard = _drawDeck.Draw(DeckPosition.Top);

        if (newCard != null)
        {
            Debug.Log("Player: Drew card: " + newCard.Name);
            _playerHand.Add(newCard, DeckPosition.Top);
            _currentCardIndex = _playerHand.Count - 1;
            StartCoroutine(DrawCardTween(newCard, 0.25f));
            AudioHelper.PlayClip2D(_drawAudio, 1f);
            _canDraw = false;
        }
        else
        {
            Debug.Log("Player: Shuffling discard into deck...");
            _drawDeck.Add(_discardDeck.Cards);
            StartCoroutine(ReshuffleTween(_discardDeck.TopItem, 0.25f));
            AudioHelper.PlayClip2D(_shuffleAudio, 1f);
            _drawDeck.Shuffle();
            _discardDeck.Clear();
            _canDraw = true;
        }
        CheckPassPlayState();
        UpdateHandSize();
    }
Exemple #14
0
        public static bool Players1WinsRecursive(Deck player1, Deck player2)
        {
            var states = new HashSet <string>();

            while (player1.HasAny && player2.HasAny)
            {
                if (!states.Add($"{player1}&{player2}"))
                {
                    return(true);
                }

                var card1  = player1.Draw();
                var card2  = player2.Draw();
                var p1Wins = player1.Count >= card1 && player2.Count >= card2
                    ? Players1WinsRecursive(player1.Copy(card1), player2.Copy(card2))
                    : card1 > card2;

                if (p1Wins)
                {
                    player1.Add(card1, card2);
                }
                else
                {
                    player2.Add(card2, card1);
                }
            }
            return(player2.Count == 0);
        }
Exemple #15
0
        public void Init()
        {
            Entity.Create(new Transform2(new Size2(1920, 1080)))
            .Add(new Sprite("Images/Table/casino-felt"));

            var deckData = DeckData.LoadFromDir("Content/Decks/Poker");
            var cards    = new Items(deckData.GetAllCards().Select(x => Create(new Card(x))));

            var deck = new Deck(cards);

            Entity.Create(new Transform2(new Vector2(200, 200), Sizes.Card))
            .Add(cards)
            .Add(deck.Sprite)
            .Add(new ZGravity())
            .Add(x => new MouseDropTarget {
                OnDrop = o => deck.PutFacedownOnTop(o)
            })
            .Add(x => new MouseStateActions
            {
                OnPressed = () => deck.If(deck.Count > 0, () =>
                {
                    var drawnCard = deck.Draw();
                    drawnCard.Transform.Location = x.Transform.Location;
                })
            });
        }
Exemple #16
0
    public void FillHand()
    {
        for (filledSlots = 0; filledSlots < handSize; filledSlots++)
        {
            cardHand.Add(deckMang.Draw(isAttacking));
        }

        redInHand   = 0;
        blueInHand  = 0;
        greenInHand = 0;

        foreach (Card card in cardHand)
        {
            if (card.type == Card.eCardType.Bomb || card.type == Card.eCardType.Boost)
            {
                redInHand++;
            }
            if (card.type == Card.eCardType.Charge || card.type == Card.eCardType.Uturn)
            {
                blueInHand++;
            }
            if (card.type == Card.eCardType.Laser || card.type == Card.eCardType.Spin)
            {
                greenInHand++;
            }
        }

        slotOne   = cardHand[0];
        slotTwo   = cardHand[1];
        slotThree = cardHand[2];
        slotOneButton.image.sprite   = cardHand[0].cardArt;
        slotTwoButton.image.sprite   = cardHand[1].cardArt;
        slotThreeButton.image.sprite = cardHand[2].cardArt;
    }
Exemple #17
0
        public void Deck_Draw()
        {
            var drawnCard = testDeck.Draw();

            Assert.AreEqual(testCard, drawnCard);
            Assert.AreEqual(2, testDeck.Cards.Count());
        }
Exemple #18
0
    public bool Draw(CardListFilter filter, int?numToChoose = null)
    {
        var drawnCard = Deck.Draw(filter, out bool failedFilter, numToChoose);

        if (!failedFilter)
        {
            if (numToChoose == null)
            {
                if (drawnCard != null)
                {
                    AddToHand(drawnCard);
                }
                else
                {
                    Debug.Log("Deck is empty");
                }
            }

            return(true);
        }
        else
        {
            Debug.Log("Given filter cannot draw any cards from the deck");
            return(false);
        }
    }
Exemple #19
0
    private void TestDeck()
    {
        deck = new Deck(eDeckType.std54Card);
        int i = 0;

        while (deck.cardsRemains > 0)
        {
            Card card = deck.Draw();
            Debug.Log(++i + " " + card);
        }

        /*Debug.Log("card remains : " + deck.cardsRemains);
         * PrintCard(deck.Draw());
         * Debug.Log("card remains : " + deck.cardsRemains);
         * PrintCard(deck.Draw());
         * Debug.Log("card remains : " + deck.cardsRemains);
         * PrintCard(deck.Draw());
         * card = deck.Draw();
         * PrintCard(card);
         * Debug.Log("card remains : " + deck.cardsRemains);
         * Debug.Log("card in discard : " + deck.cardsInDiscards);
         * deck.Discard(card);
         * Debug.Log("card in discard : " + deck.cardsInDiscards);
         * deck.Burn();
         * Debug.Log("card in discard : " + deck.cardsInDiscards);*/
    }
Exemple #20
0
    public void StartGame(int playerCount)
    {
        //Debug.Log("Start game");
        deck = new Deck();
        deck.Shuffle();
        graveyard = new List <Card>();

        /*playerHands = new List<List<Card>>();
         * for (int i = 0; i < playerCount; i++)
         * {
         *  playerHands.Add(deck.Draw(initialDrawAmount));
         * }*/
        playerOrder = new List <Player>();
        trump       = deck.Draw(1)[0];

        originalTurn = 0;
        defender     = 1;
        deck.AddToBottom(trump);
        if (!isServer)
        {
            trump = null;
            deck  = null;
        }
        durak       = -1;
        field       = new List <FieldPair>();
        winners     = new List <Player>();
        selected    = new List <Card>();
        defendCards = new List <FieldPair>();
        myTurn      = 0;
        gameEnded   = false;
        inGame      = true;
        //defendField = new List<Card>();
    }
    public void draw()
    {
        int  idx   = int.MaxValue;
        bool found = false;

        for (int i = 0; i < hand.Length; i++)
        {
            if (hand[i] == null)
            {
                idx   = i;
                found = true;
                break;
            }
        }

        if (!found)
        {
            return;
        }

        var card = deck.Draw();

        hand[idx] = card;
        card.setupUICard(cardPrototype, uiHand, this);

        Log("Player " + Name + " draws " + card.cardName);
    }
Exemple #22
0
    public void Draw(int numToDraw, CardListFilter filter)
    {
        var drawnCards = Deck.Draw(numToDraw, filter, out int failedDraws, out bool failedFilter);

        if (!failedFilter)
        {
            if (drawnCards.Count != 0)
            {
                foreach (var drawnCard in drawnCards)
                {
                    AddToHand(drawnCard);
                }

                if (failedDraws > 0)
                {
                    Debug.Log($"Failed to draw {failedDraws} from the deck as there were not enough cards remaining");
                }
            }
            else
            {
                Debug.Log("Deck is empty");
            }
        }
        else
        {
            Debug.Log("Given filter cannot draw any cards from the deck");
        }
    }
Exemple #23
0
 public void DealPlayerHand(Player p)
 {
     foreach (var i in Enumerable.Range(1, 10))
     {
         p.Hand.AddCard(Deck.Draw());
     }
 }
Exemple #24
0
 private void pbDeck_Click(object sender, EventArgs e)
 {
     if (playerTurn == PlayerType.PLAYER)
     {
         var newCards = deck.Draw(1);
         player.GiveCards(newCards);
         playerTurn = PlayerType.CPU;
     }
     else
     {
         var newCards = deck.Draw(1);
         cpu.GiveCards(newCards);
         playerTurn = PlayerType.PLAYER;
     }
     ShowCards();
 }
Exemple #25
0
        public void Draw_DrawCardsShouldReturn5Cards()
        {
            var deck  = new Deck();
            var cards = deck.Draw();

            Assert.Equal(5, cards.Count);
        }
Exemple #26
0
 public void DrawStartingHand()
 {
     for (int i = 0; i < Deck.Faction.StartingHandSize; i++)
     {
         Hand.Add(Deck.Draw());
     }
 }
Exemple #27
0
        public void InitState(GameServer server)
        {
            // Get the deck
            Deck toDrawFrom = new Deck(server.GameState.GetValueCardCollection(Names.DECK));

            // Iterate over all players
            for (byte index = 0; index < server.Players.Count; index++)
            {
                // If the player exists
                if (server.Players[index] != null)
                {
                    // Add 6 cards to their hand
                    for (int cIndex = 0; cIndex < 6; cIndex++)
                    {
                        if (toDrawFrom.CardsInDeck > 0)
                        {
                            server.Players[index].Hand.Add(toDrawFrom.Draw());
                        }
                        else if (!server.GameState.GetValueBool(Names.TRUMP_CARD_USED))
                        {
                            server.Players[index].Hand.Add(server.GameState.GetValueCard(Names.TRUMP_CARD));
                            server.GameState.Set(Names.TRUMP_CARD_USED, true);
                        }
                    }
                }
            }

            // Update the deck and the count in the state
            server.GameState.Set <CardCollection>(Names.DECK, toDrawFrom.Cards);
            server.GameState.Set <int>(Names.DECK_COUNT, toDrawFrom.CardsInDeck);
        }
        private static void DealCards(GameState state, Dictionary <int, Player> players, List <int> winningPlayers, Deck deck)
        {
            var block = !state.GetValueBool(Names.TRUMP_CARD_USED);

            while (block && !players.Values.All(p => p.Hand.Count >= 6))
            {
                foreach (var player in players.Values)
                {
                    if (deck.Cards.Count > 0 && player.Hand.Count < 6)
                    {
                        player.Hand.Add(deck.Draw());
                    }
                    else if (block && deck.Cards.Count <= 0 && player.Hand.Count < 6)
                    {
                        player.Hand.Add(state.GetValueCard(Names.TRUMP_CARD));
                        state.Set(Names.TRUMP_CARD_USED, true);
                        block = false;
                        break;
                    }
                }
            }

            foreach (var player in players.Values)
            {
                if (player.Hand.Count == 0 && !winningPlayers.Contains(player.ID))
                {
                    winningPlayers.Add(player.ID);
                }
            }
        }
    // Start is called before the first frame update
    void Start()
    {
        CardGame currentGame = new CardGame();

        currentGame.elements = new ICardGameElement[listOfDecks.Length];
        for (int i = 0; i < listOfDecks.Length; i++)
        {
            //listOfDecks[i] = new Deck();
            for (int j = 0; j < listOfDecks[i].namesOfCards.Length; j++)
            {
                Card        newCard;
                System.Type cardType = System.Type.GetType(listOfDecks[i].namesOfCards[j]);
                newCard = (Card)cardType.GetConstructor(System.Type.EmptyTypes).Invoke(null);
                listOfDecks[i].Add(newCard);
            }
            listOfDecks[i].Shuffle();
            currentGame.elements[i] = listOfDecks[i];
        }

        currentGame.participants = new Player[Players.Length];
        for (int i = 0; i < Players.Length; i++)
        {
            currentGame.participants[i] = new Player(Players[i]);
            GameObject playerGameObject = new GameObject(currentGame.participants[i].name);
            playerGameObject.transform.SetPositionAndRotation(Vector3.zero, Quaternion.identity);
            playerGameObject.transform.SetParent(GameObject.Find("Canvas").transform);

            playerGameObject.AddComponent <HandManager>().currentGame   = currentGame;
            playerGameObject.GetComponent <HandManager>().handToDisplay = currentGame.participants[i].playerHand;
            Deck deckToDrawFrom = (Deck)currentGame.elements[0];
            deckToDrawFrom.Draw(currentGame.participants[i].playerHand);
        }
    }
Exemple #30
0
        private static int DeckTest()
        {
            Deck d = new Deck();
            Card drawn;

            bool[,] exist = new bool[4, 13];
            int count = 0;

            while (!d.IsEmpty)
            {
                drawn = d.Draw();
                exist[drawn.Suit, drawn.Rank] = true;
                count++;
            }
            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 13; j++)
                {
                    if (!exist[i, j])
                    {
                        Console.WriteLine("ERROR MISSING CARD: {0}{1}", i, j);
                    }
                }
            }
            Console.WriteLine("{0} cards drawn", count);
            return(0);
        }
    /* Displays a new card from the Deck */
    public void DisplayNewCard()
    {
        card          = deck.Draw(); // Draws the next card
        cardText.text = card;        // Displays the card's text

        drawnCards.Add(card);        // Add the card to the drawnCards list
    }
Exemple #32
0
 public void Play(Deck gameDeck)
 {
     if (!this.HasBlackJack() && !this.IsBusted() && Hand.GetTotal() < 17)
     {
         gameDeck.Draw(this);
     }
 }
Exemple #33
0
        public void AfterPlayAll_Draw_ShouldNotReturnNull()
        {
            Deck target = new Deck(new TestDeckProvider());

            for (int i = 0; i < TestDeckProvider.DefaultTestDeckSize; i++)
            {
                Card card = target.Draw();
                target.Play(card);
            }

            Card final = target.Draw(); // This will trigger the reshuffle.

            Assert.IsNotNull(final);

            return;
        }
 private IEnumerator InitialDraw(Deck deck)
 {
     for(int i=0; i < drawCount; i ++)
     {
         deck.Draw();
         yield return new WaitForSeconds(drawDelay);
     }
 }
Exemple #35
0
 public void TestDealCard()
 {
     Deck deck = new Deck();
     Player hand = new Player();
     Assert.IsTrue(deck.CardsLeft() == 52);
     deck.Draw();
     Assert.IsTrue(deck.CardsLeft() == 51);
 }
Exemple #36
0
 public Game(Player Master, List<Player> Learners, Random Random)
 {
     _Random = Random;
     _Deck = new Deck();
     _Deck.Shuffle(_Random);
     _Return = new Deck(true);
     _Master = Master;
     _Learners = Learners;
     _MasterHand = new Hand(10, _Deck);
     foreach(Player L in _Learners) _LearnerHands.Add(new Hand(10, _Deck));
     _DownCard = _Deck.Draw();
 }
 /// <summary>
 /// Enumerate through a deck
 /// </summary>
 /// <param name="deck"></param>
 /// <returns></returns>
 private static IEnumerable<ColorettoCard> DeckEnumeration(Deck<ColorettoCard> deck)
 {
     if (deck != null && !deck.IsEmpty)
     {
         do
         {
             ColorettoCard card = null;
             deck = deck.Draw(out card);
             yield return card;
         } while (!deck.IsEmpty);
     }
 }
 private Card DrawCardFromDeck(Deck deck)
 {
     var card = deck.Draw();
     Player.Game.SendUpdateDeck(deck);
     return card;
 }
Exemple #39
0
        public void DrawHands_draws_the_top_cards_from_the_stack()
        {
            // Arrange.
            var seed = Environment.TickCount;
            var sut = new Deck();
            var controlDeck = new Deck();
            sut.Shuffle(seed);
            controlDeck.Shuffle(seed);

            // Act.
            var hands = sut.DrawHands(2);
            var controlHands = hands.Select(hand => hand.Select(card => controlDeck.Draw())).ToList();

            // Assert.
            for (int i = 0; i < hands.Count; i++)
            {
                var hand = hands[i];
                var controlHand = controlHands[i];
                ActualValueDelegate<bool> test = () => hand.SequenceEqual(controlHand);
                Assert.That(test, Is.True);
            }
        }
Exemple #40
0
 public void TestPlayerTotal()
 {
     Deck deck = new Deck();
     Player hand = new Player();
     Assert.IsTrue(hand.Cards.Count == 0);
     hand.AddCard(deck.Draw());
     Assert.IsTrue(hand.Cards.Count == 1);
 }
Exemple #41
0
 public Card ShowCard(Deck deck)
 {
     return deck.Draw();
 }
Exemple #42
0
    static void NewGame(object o, ButtonPressEventArgs args)
    {
        Bet = 0;

        DealButton.Opacity = 0;

        BetButton.Opacity = 255;
        BetButton.Reactive = true;
        BetButton.Show ();

        StepButton.HoldState ();
        StepButton.Show ();

        // Needs to be replaced with "return to deck" animation
        for (int i = 0; i < 5; i++) {
            PlayerHand.GetCard (i).Hide ();
            OpponentHand.GetCard (i).Hide ();
        }

        Deck = new Deck ();

        PlayerHand   = new Hand (Deck.Draw (), Deck.Draw (), Deck.Draw (), Deck.Draw (), Deck.Draw ());
        OpponentHand = new Hand (Deck.Draw (), Deck.Draw (), Deck.Draw (), Deck.Draw (), Deck.Draw ());

        SetupAnimation ();
    }
Exemple #43
0
    static void Main()
    {
        Clutter.Application.Init ();

        Stage = new Stage ();
        Stage.Title = "Deal!";
        Stage.Add (new Texture ("Pixmaps/Table.png"));
        Stage.SetSize (800, 480);
        Stage.KeyPressEvent += HandleKeyPress;

        Texture C = new Texture ("Pixmaps/Coin.png");
        C.SetSize (50, 50);
        C.SetPosition (35, 405);
        Stage.Add (C);

        Bet = 0;
        BetButton = new BetButton ();
        BetButton.ButtonPressEvent += IncreaseBet;
        Stage.Add (BetButton);

        DealButton = new DealButton ();
        DealButton.ButtonPressEvent += NewGame;
        Stage.Add (DealButton);

        StepButton = new StepButton ();
        StepButton.ButtonPressEvent += NextStep;
        Stage.Add (StepButton);

        Stack = new Stack ();
        Stack.Decrease (20);
        ScoreText = new Text ("Droid Sans Bold 21", "" + Stack.GetAmount());
        ScoreText.SetColor (new Clutter.Color (0xff, 0xff, 0xff, 0xff));
        ScoreText.SetPosition (100, 413);
        Stage.Add (ScoreText);

        Coins = new Coin [5];
        Coins [0] = new Coin ();
        Coins [1] = new Coin ();
        Coins [2] = new Coin ();
        Coins [3] = new Coin ();
        Coins [4] = new Coin ();
        for (int i = 0; i < 5; i++) {
            Coins [i].SetPosition (35, 405);
            Stage.Add (Coins [i]);
        }

        Deck = new Deck ();

        PlayerHand   = new Hand (Deck.Draw (), Deck.Draw (), Deck.Draw (), Deck.Draw (), Deck.Draw ());
        OpponentHand = new Hand (Deck.Draw (), Deck.Draw (), Deck.Draw (), Deck.Draw (), Deck.Draw ());

        SetupAnimation ();

        Stage.ShowAll();

        Clutter.Application.Run ();
    }
        /// <summary>
        /// Verifies that expectedContent is a subset of deck and each card in expectedContent exists sequentually numberOfDups times.
        /// </summary>
        /// <param name="expectedContent"></param>
        /// <param name="deck"></param>
        /// <param name="numberOfDups"></param>
        /// <returns></returns>
        private static bool IsValid_CollatedDuplication(List<StandardCard> expectedContent, Deck<StandardCard> deck, int numberOfDups)
        {
            for (int i = 0; i < expectedContent.Count; i++)
            {
                for (int j = 0; j < numberOfDups; j++)
                {
                    StandardCard card;
                    deck = deck.Draw(out card);
                    if (expectedContent[i].Equals(card) == false)
                    {
                        return false;
                    }
                }
            }

            return true;
        }
        public void NewGame()
        {
            rowDecks = new List<Deck>();
            stackDecks = new List<Deck>();

            gameShape.Game = new Game();

            //Dealer
            dealer = new Deck(1, 13, gameShape.Game);
            dealer.Shuffle(5);
            dealer.FlipAllCards();
            dealer.EnableAllCards(false);
            dealer.MakeAllCardsDragable(false);
            dealer.Enabled = false;
            Dealer.Deck = dealer;
            gameShape.DeckShapes.Add(Dealer);
            Dealer.DeckMouseLeftButtonDown += new MouseButtonEventHandler(Dealer_DeckMouseLeftButtonDown);

            //Ground
            ground = new Deck(gameShape.Game);
            Ground.Deck = ground;
            Ground.UpdateCardShapes();
            gameShape.DeckShapes.Add(Ground);

            //Row Decks
            for (int i = 0; i < 7; i++)
            {
                Deck deck = new Deck(gameShape.Game);
                rowDecks.Add(deck);

                DeckShape deckShape = new DeckShape();
                gameShape.DeckShapes.Add(deckShape);
                deckShape.CardSpacerY = 20;
                deckShape.MaxCardsSpace = 10;
                deckShape.Deck = deck;

                this.LayoutRoot.Children.Add(deckShape);
                Canvas.SetLeft(deckShape, 25 + (i * 85));
                Canvas.SetTop(deckShape, 150);

                dealer.Draw(deck, i + 1);

                deck.TopCard.Visible = true;
                deck.TopCard.Enabled = true;
                deck.TopCard.IsDragable = true;
            }

            //Stack Decks
            for (int i = 0; i < 4; i++)
            {
                Deck deck = new Deck(gameShape.Game);
                stackDecks.Add(deck);

                DeckShape deckShape = new DeckShape();
                gameShape.DeckShapes.Add(deckShape);
                deckShape.CardSpacerY = 1;
                deckShape.MaxCardsSpace = 10;
                deckShape.Deck = deck;

                this.LayoutRoot.Children.Add(deckShape);
                Canvas.SetLeft(deckShape, 280 + (i * 85));
                Canvas.SetTop(deckShape, 24);
            }

            dealer.TopCard.Enabled = true;
            dealer.TopCard.IsDragable = false;
        }
 /// <summary>
 /// Takes a deck and converts it into a list by drawing cards.
 /// </summary>
 /// <param name="deck"></param>
 /// <returns></returns>
 private static List<StandardCard> ConvertDeckToList(Deck<StandardCard> deck)
 {
     List<StandardCard> list = new List<StandardCard>(deck.OriginalSize);
     for (int i = 0; i < deck.OriginalSize; i++)
     {
         StandardCard card = null;
         deck = deck.Draw(out card);
         list.Add(card);
     }
     return list;
 }