コード例 #1
0
        private void checkTowCards()
        {
            if (m_GameManager.IsPair(m_FirstCard.Coordinates, m_SecondCard.Coordinates) == true)
            {
                m_GameManager.AddPointTocurrentPlayerAndIncreaseNumOfPairsFounded();
                m_FirstCard  = null;
                m_SecondCard = null;
                if (m_GameManager.IsAgainstComputer == true && m_GameManager.PlayerTurn == ePlayersTurn.Player2)
                {
                    Thread.Sleep(750);
                }
            }
            else
            {
                Thread.Sleep(1000);
                closeCards();
                m_GameManager.SwitchPlayersTurn();
            }
            updateLables();
            while (m_GameManager.IsAgainstComputer == true && m_GameManager.PlayerTurn == ePlayersTurn.Player2 && m_GameManager.IsEndOfGame() == false)
            {
                computerTurn();
            }

            checkEndOfGame();
        }
コード例 #2
0
 private void closeCards()
 {
     m_GameManager.CardsNotMatchFlipBack(m_FirstCard.Coordinates, m_SecondCard.Coordinates);
     m_FirstCard.BackColor  = m_FirstCard.ForeColor;
     m_SecondCard.BackColor = m_SecondCard.ForeColor;
     m_FirstCard.Enabled    = true;
     m_SecondCard.Enabled   = true;
     m_FirstCard            = null;
     m_SecondCard           = null;
 }
コード例 #3
0
        private void computerTurn()
        {
            string firstCardLocation = m_GameManager.ChooseCardRandomAndReturnCardLocation();

            m_FirstCard = m_ButtonMatrix[firstCardLocation[1] - '1', firstCardLocation[0] - 'A'];
            openCard(m_FirstCard);
            Thread.Sleep(500);
            string secondCardLocation = m_GameManager.ChooseCardRandomAndReturnCardLocation();

            m_SecondCard = m_ButtonMatrix[secondCardLocation[1] - '1', secondCardLocation[0] - 'A'];
            openCard(m_SecondCard);
            checkTowCards();

            checkEndOfGame();
        }
コード例 #4
0
        private void ButtonCard_Click(object sender, EventArgs e)
        {
            ButtonCard pressedCard = sender as ButtonCard;

            if (m_FirstCard != null && m_SecondCard != null)
            {
                return;
            }
            openCard(pressedCard);

            if (m_GameManager.IsFirstCard == true)
            {
                m_FirstCard = pressedCard;
            }
            else
            {
                m_SecondCard = pressedCard;
                checkTowCards();
            }
            m_GameManager.IsFirstCard = !m_GameManager.IsFirstCard;
        }
コード例 #5
0
        private void UpdateBoardButtons()
        {
            for (int i = 0; i < m_GameManager.Board.Height; i++)
            {
                for (int j = 0; j < m_GameManager.Board.Width; j++)
                {
                    string coordinates = ((char)((j) + 'A')).ToString() + (i + 1).ToString();
                    m_ButtonMatrix[i, j]           = new ButtonCard(m_GameManager.Board[i, j].Item, coordinates);
                    m_ButtonMatrix[i, j].Size      = new Size(80, 80);
                    m_ButtonMatrix[i, j].BackColor = Color.White;
                    m_ButtonMatrix[i, j].ForeColor = m_ButtonMatrix[i, j].BackColor;
                    m_ButtonMatrix[i, j].Text      = m_ButtonMatrix[i, j].Letter.ToString();
                    m_ButtonMatrix[i, j].Font      = new Font("Webdings", 48, FontStyle.Bold);
                    m_ButtonMatrix[i, j].FlatStyle = FlatStyle.Popup;

                    if (i == 0)
                    {
                        m_ButtonMatrix[0, j].Top = this.Top + 15;
                    }
                    else
                    {
                        m_ButtonMatrix[i, j].Top = m_ButtonMatrix[i - 1, j].Bottom + 15;
                    }
                    if (j == 0)
                    {
                        m_ButtonMatrix[i, 0].Left = this.Left + 15;
                    }
                    else
                    {
                        m_ButtonMatrix[i, j].Left = m_ButtonMatrix[i, j - 1].Right + 15;
                    }

                    this.Controls.Add(m_ButtonMatrix[i, j]);
                    m_ButtonMatrix[i, j].Click += ButtonCard_Click;
                }
            }
        }
コード例 #6
0
 private void openCard(ButtonCard i_pressedCard)
 {
     i_pressedCard.BackColor = m_GameManager.PlayerTurn == ePlayersTurn.Player1 ? r_FirstPlayerColor : r_SecondPlayerColor;
     i_pressedCard.Enabled   = false;
     m_GameManager.FlipCard(i_pressedCard.Coordinates);
 }