コード例 #1
0
        }     // end dealButton_Click

        /// <summary>
        /// Performs the CPU's turn then passes back to the player
        /// </summary>
        private void CpuGo()
        {
            RefreshTheFormThenPause();
            Card discard     = Crazy_Eights_Game.CurrentDiscard();
            Suit discardSuit = discard.GetSuit();

            // check for player selected crazy eight suit
            if (discard.GetFaceValue() == FaceValue.Eight)
            {
                discardSuit = eightsuit;
            } // end if
            // reset the discard suit for players next turn if the CPU played something
            if (Crazy_Eights_Game.ComputerTurn(discardSuit))
            {
                eightsuit   = Crazy_Eights_Game.CurrentDiscard().GetSuit();
                discardSuit = Crazy_Eights_Game.CurrentDiscard().GetSuit();
            } // end if
            // check for tied game
            if (Crazy_Eights_Game.MaxHand(1) && Crazy_Eights_Game.MaxHand(0) && !Crazy_Eights_Game.PlayerHasMove(discardSuit))
            {
                MessageBox.Show("Neither player can play, game is a tie!", "Game Over");
                this.Close();
            } // end if
            DisplayGuiHand(Crazy_Eights_Game.GetHand(0), cTableLayoutPanel, 0);
            DisplayDiscardPile();
            // Checks for empty hand after turn
            if (Crazy_Eights_Game.EmptyHand(0) && !Crazy_Eights_Game.EmptyHand(1))
            {
                MessageBox.Show("Computer Wins!", "Game Over");
                this.Close();
            } // end if
            // Pass back to player
            if (!Crazy_Eights_Game.PlayerHasMove(discardSuit))
            {
                dealButton.Enabled = true;
            } // end if
        }     // end CpuGo