コード例 #1
0
        /// <summary>
        /// Checks if card player clicked on is valid, plays it then passes turn to CPU
        /// </summary>
        /// <param name="clickedCard"></param>
        private void TryToPlayCard(Card clickedCard)
        {
            Card discard     = Crazy_Eights_Game.CurrentDiscard();
            Suit discardSuit = discard.GetSuit();

            // check for crazy eight suit
            if (discard.GetFaceValue() == FaceValue.Eight)
            {
                discardSuit = eightsuit;
            }
            // Check if card is valid and play it
            if (Crazy_Eights_Game.IsGoodClick(clickedCard, discardSuit))
            {
                // Update GUI with new cards
                discardPile.Image = Images.GetCardImage(clickedCard);
                DisplayDrawPile();
                DisplayGuiHand(Crazy_Eights_Game.GetHand(1), pTableLayoutPanel, 1);
                //MessageBox.Show(clickedCard.ToString(false, true), "Clicked");

                // Check for empty hand after turn
                if (Crazy_Eights_Game.EmptyHand(1))
                {
                    MessageBox.Show("Player wins!", "Game Over");
                    this.Close();
                } // end if
                // CPU Go
                if (clickedCard.GetFaceValue() == FaceValue.Eight)
                {
                    using (Eight_suit eight_suit = new Eight_suit()) {
                        if (eight_suit.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                        {
                            eightsuit = eight_suit.SelectedSuit;
                            //instructionLabel.Text = "Last crazy eights suit is" + eightsuit.ToString();
                        }
                        else
                        {
                            Card card = Crazy_Eights_Game.CurrentDiscard();
                            eightsuit = card.GetSuit();
                        }
                    }
                }
                CpuGo();
            }
            else
            {
                MessageBox.Show(clickedCard.ToString(false, true) + " is not a valid option.", "Clicked");
            } // end if
        }     // end TryToPlayCard