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