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); }
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); }