Exemplo n.º 1
0
        private void InitNewGame()
        {
            menuButtons.Clear();
            messages.Clear();

            // create and shuffle deck
            int deckX = 1;
            int deckY = 1;
            deck = new Deck(Content, deckX, deckY);
            deck.Shuffle();

            dealerHand = new List<Card>();
            playerHand = new List<Card>();

            // first player card
            playerHand.Add(deck.TakeTopCard());
            playerHand[0].FlipOver();
            playerHand[0].X = HORIZONTAL_CARD_OFFSET;
            playerHand[0].Y = TOP_CARD_OFFSET;

            // first dealer card
            dealerHand.Add(deck.TakeTopCard());
            dealerHand[0].X = WINDOW_WIDTH - HORIZONTAL_CARD_OFFSET;
            dealerHand[0].Y = TOP_CARD_OFFSET;

            // second player card
            playerHand.Add(deck.TakeTopCard());
            playerHand[1].FlipOver();
            playerHand[1].X = HORIZONTAL_CARD_OFFSET;
            playerHand[1].Y = TOP_CARD_OFFSET + VERTICAL_CARD_SPACING;

            // second dealer card
            dealerHand.Add(deck.TakeTopCard());
            dealerHand[1].FlipOver();
            dealerHand[1].X = WINDOW_WIDTH - HORIZONTAL_CARD_OFFSET;
            dealerHand[1].Y = TOP_CARD_OFFSET + VERTICAL_CARD_SPACING;

            // load sprite font, create message for player score and add to list
            messageFont = Content.Load<SpriteFont>("fonts\\Arial24");

            playerScoreMessage = new Message(SCORE_MESSAGE_PREFIX + GetBlackjackScore(playerHand).ToString(), messageFont, new Vector2(HORIZONTAL_MESSAGE_OFFSET, SCORE_MESSAGE_TOP_OFFSET));
            messages.Add(playerScoreMessage);

            dealerScoreMessage = new Message("Score: " + (GetBlackjackScore(dealerHand) - GetBlackjackCardValue(dealerHand[0])).ToString(), messageFont, new Vector2(WINDOW_WIDTH - HORIZONTAL_MESSAGE_OFFSET, SCORE_MESSAGE_TOP_OFFSET));
            messages.Add(dealerScoreMessage);

            WinnerMessage = new Message("", messageFont, winnerMessageLocation);
            messages.Add(WinnerMessage);

            FeedbackMessage = new Message("", messageFont, new Vector2(WINDOW_WIDTH / 2, WINDOW_HEIGHT * (float)0.965));
            messages.Add(FeedbackMessage);

            handsWonMessage = new Message(PlayerHandsWon.ToString() + " : " + DealerHandsWon.ToString(), messageFont, new Vector2(WINDOW_WIDTH/2, SCORE_MESSAGE_TOP_OFFSET));
            messages.Add(handsWonMessage);

            // load quit button sprite for later use
            quitButtonSprite = Content.Load<Texture2D>("buttons\\quitbutton");
            quitButton = new MenuButton(quitButtonSprite, new Vector2(HORIZONTAL_MENU_BUTTON_OFFSET, QUIT_MENU_BUTTON_OFFSET), GameState.Exiting);

            // create hit button and add to list
            hitButtonSprite = Content.Load<Texture2D>("buttons\\hitbutton");
            Vector2 hitButtonCenter = new Vector2(HORIZONTAL_MENU_BUTTON_OFFSET, TOP_MENU_BUTTON_OFFSET);
            menuButtons.Add(new MenuButton(hitButtonSprite, hitButtonCenter, GameState.PlayerHitting));

            // create stand button and add to list
            standButtonSprite = Content.Load<Texture2D>("buttons\\standbutton");
            Vector2 standButtonCenter = new Vector2(HORIZONTAL_MENU_BUTTON_OFFSET, VERTICAL_MENU_BUTTON_SPACING + TOP_MENU_BUTTON_OFFSET);
            menuButtons.Add(new MenuButton(standButtonSprite, standButtonCenter, GameState.WaitingForDealer));

            ChangeState(GameState.WaitingForPlayer);
        }
Exemplo n.º 2
0
        private void InitNewGame()
        {
            menuButtons.Clear();
            messages.Clear();

            // create and shuffle deck
            int deckX = 1;
            int deckY = 1;

            deck = new Deck(Content, deckX, deckY);
            deck.Shuffle();

            dealerHand = new List <Card>();
            playerHand = new List <Card>();

            // first player card
            playerHand.Add(deck.TakeTopCard());
            playerHand[0].FlipOver();
            playerHand[0].X = HORIZONTAL_CARD_OFFSET;
            playerHand[0].Y = TOP_CARD_OFFSET;


            // first dealer card
            dealerHand.Add(deck.TakeTopCard());
            dealerHand[0].X = WINDOW_WIDTH - HORIZONTAL_CARD_OFFSET;
            dealerHand[0].Y = TOP_CARD_OFFSET;


            // second player card
            playerHand.Add(deck.TakeTopCard());
            playerHand[1].FlipOver();
            playerHand[1].X = HORIZONTAL_CARD_OFFSET;
            playerHand[1].Y = TOP_CARD_OFFSET + VERTICAL_CARD_SPACING;


            // second dealer card
            dealerHand.Add(deck.TakeTopCard());
            dealerHand[1].FlipOver();
            dealerHand[1].X = WINDOW_WIDTH - HORIZONTAL_CARD_OFFSET;
            dealerHand[1].Y = TOP_CARD_OFFSET + VERTICAL_CARD_SPACING;

            // load sprite font, create message for player score and add to list
            messageFont = Content.Load <SpriteFont>("fonts\\Arial24");

            playerScoreMessage = new Message(SCORE_MESSAGE_PREFIX + GetBlackjackScore(playerHand).ToString(), messageFont, new Vector2(HORIZONTAL_MESSAGE_OFFSET, SCORE_MESSAGE_TOP_OFFSET));
            messages.Add(playerScoreMessage);

            dealerScoreMessage = new Message("Score: " + (GetBlackjackScore(dealerHand) - GetBlackjackCardValue(dealerHand[0])).ToString(), messageFont, new Vector2(WINDOW_WIDTH - HORIZONTAL_MESSAGE_OFFSET, SCORE_MESSAGE_TOP_OFFSET));
            messages.Add(dealerScoreMessage);

            WinnerMessage = new Message("", messageFont, winnerMessageLocation);
            messages.Add(WinnerMessage);

            FeedbackMessage = new Message("", messageFont, new Vector2(WINDOW_WIDTH / 2, WINDOW_HEIGHT * (float)0.965));
            messages.Add(FeedbackMessage);

            handsWonMessage = new Message(PlayerHandsWon.ToString() + " : " + DealerHandsWon.ToString(), messageFont, new Vector2(WINDOW_WIDTH / 2, SCORE_MESSAGE_TOP_OFFSET));
            messages.Add(handsWonMessage);

            // load quit button sprite for later use
            quitButtonSprite = Content.Load <Texture2D>("buttons\\quitbutton");
            quitButton       = new MenuButton(quitButtonSprite, new Vector2(HORIZONTAL_MENU_BUTTON_OFFSET, QUIT_MENU_BUTTON_OFFSET), GameState.Exiting);

            // create hit button and add to list
            hitButtonSprite = Content.Load <Texture2D>("buttons\\hitbutton");
            Vector2 hitButtonCenter = new Vector2(HORIZONTAL_MENU_BUTTON_OFFSET, TOP_MENU_BUTTON_OFFSET);

            menuButtons.Add(new MenuButton(hitButtonSprite, hitButtonCenter, GameState.PlayerHitting));

            // create stand button and add to list
            standButtonSprite = Content.Load <Texture2D>("buttons\\standbutton");
            Vector2 standButtonCenter = new Vector2(HORIZONTAL_MENU_BUTTON_OFFSET, VERTICAL_MENU_BUTTON_SPACING + TOP_MENU_BUTTON_OFFSET);

            menuButtons.Add(new MenuButton(standButtonSprite, standButtonCenter, GameState.WaitingForDealer));

            ChangeState(GameState.WaitingForPlayer);
        }