Пример #1
0
        private void checkerButton_Click(object sender, EventArgs e)
        {
            CheckerButton pressedChecker = sender as CheckerButton;
            bool          isTurnOver;

            if (m_FromChecker == null)
            {
                m_FromChecker                        = new BoardPosition();
                m_FromChecker.Row                    = pressedChecker.CheckerButtonBoardPosition.Row;
                m_FromChecker.Column                 = pressedChecker.CheckerButtonBoardPosition.Column;
                pressedChecker.BackgroundImage       = CheckersGame.Properties.Resources.whiteBlueBackgroundpng;
                pressedChecker.BackgroundImageLayout = ImageLayout.Stretch;
            }
            else if (m_FromChecker.CompareBoardPositions(pressedChecker.CheckerButtonBoardPosition))
            {
                m_FromChecker = null;
                pressedChecker.BackgroundImage = CheckersGame.Properties.Resources.whiteBackground;
            }
            else
            {
                m_ToChecker        = new BoardPosition();
                m_ToChecker.Row    = pressedChecker.CheckerButtonBoardPosition.Row;
                m_ToChecker.Column = pressedChecker.CheckerButtonBoardPosition.Column;
                checkerButtonMatrix[m_FromChecker.Row, m_FromChecker.Column].BackgroundImage = CheckersGame.Properties.Resources.whiteBackground;
                isTurnOver = manageTurn();
                if (!isTurnOver && m_InvalidMove)
                {
                    m_FromChecker = null;
                    m_ToChecker   = null;
                    m_InvalidMove = !true;
                }
                else if (!isTurnOver)
                {
                    //// the move was valid - there is another eating move
                    m_FromChecker = m_ToChecker;
                    m_ToChecker   = null;
                }
                else
                {
                    pressedChecker.BackColor = Color.White;
                    checkerButtonMatrix[m_FromChecker.Row, m_FromChecker.Column].BackColor = Color.White;
                    m_FromChecker = null;
                    m_ToChecker   = null;
                    m_PlayerTurn  = (m_PlayerTurn % 2) + 1; // switch players
                    setPlayerTurnLabel();

                    if (m_CheckerGame.IsSecondPlayerComputer == true)
                    {
                        manageTurn();
                        m_PlayerTurn = (m_PlayerTurn % 2) + 1; // switch players
                        setPlayerTurnLabel();
                    }
                }
            }
        }
Пример #2
0
        private void initializeCheckerInForm(ref int distanceFromLeftLine, int distanceFromTop, int i_Row, int i_Column)
        {
            BoardPosition currentBoardPosition;

            currentBoardPosition                          = new BoardPosition();
            currentBoardPosition.Row                      = i_Row;
            currentBoardPosition.Column                   = i_Column;
            checkerButtonMatrix[i_Row, i_Column]          = new CheckerButton(currentBoardPosition);
            checkerButtonMatrix[i_Row, i_Column].Location = new Point(distanceFromLeftLine, distanceFromTop);
            checkerButtonMatrix[i_Row, i_Column].Size     = new Size(k_CheckerSize, k_CheckerSize);

            setCheckerInForm(i_Row, i_Column);

            distanceFromLeftLine += k_CheckerSize;
            checkerButtonMatrix[i_Row, i_Column].Click += new EventHandler(this.checkerButton_Click);
            Controls.Add(checkerButtonMatrix[i_Row, i_Column]);
        }