private void CheckForCheckMate() { for (int i = 0; i < kingPieces.Length; i++) { if (kingPieces[i].OnWhiteTeam != isWhitesTurn) { List <Point> movementAreas = kingPieces[i].Piece_Clicked(); Point originalLocation = new Point(kingPieces[i].Row, kingPieces[i].Column); //int moveCounter = 0; bool inCheck = false; if (isWhitesTurn) { for (int j = 0; j < whitePieces.Length; j++) { if (!inCheck) { List <Point> pieceMoves = whitePieces[j].Piece_Clicked(); foreach (Point value in pieceMoves) { Point arrayLocation = Piece.ConvertMovesToLocations(value, new Point(whitePieces[i].X, whitePieces[i].Y)); if (arrayLocation == new Point(kingPieces[i].Row, kingPieces[i].Column)) { inCheck = true; break; } } } else { break; } } } else { for (int j = 0; j < blackPieces.Length; j++) { if (!inCheck) { List <Point> pieceMoves = blackPieces[j].Piece_Clicked(); foreach (Point value in pieceMoves) { Point arrayLocation = Piece.ConvertMovesToLocations(value, new Point(blackPieces[i].X, blackPieces[i].Y)); if (arrayLocation == new Point(kingPieces[i].Row, kingPieces[i].Column)) { inCheck = true; break; } } } else { break; } } } //if (inCheck) //{ // foreach (Point move in movementAreas) // { // // Changes the piece's location temporarily to add to the possible moves // tiles[kingPieces[i].Row, kingPieces[i].Column].PieceOnTile = null; // kingPieces[i].X += move.X; // kingPieces[i].Y += move.Y; // tiles[kingPieces[i].Row, kingPieces[i].Column].PieceOnTile = kingPieces[i]; // if (isWhitesTurn) // { // for (int j = 0; j < whitePieces.Length; j++) // { // List<Point> pieceMoves = whitePieces[j].Piece_Clicked(); // foreach (Point value in pieceMoves) // { // if (value == move) // { // ++moveCounter; // break; // } // } // } // } // // Sets the pieces location back to it's original location // tiles[kingPieces[i].Row, kingPieces[i].Column].PieceOnTile = null; // kingPieces[i].Row = originalLocation.X; // kingPieces[i].Column = originalLocation.Y; // tiles[kingPieces[i].Row, kingPieces[i].Column].PieceOnTile = kingPieces[i]; // } //} } } }