private boolean checkDiagonalMove(int startRow, int startCol, int endRow,
			int endCol) {
		// Move must be according to number of pieces in the line of action
		if (Math.abs(endRow - startRow) != getNumPiecesInDiagonal(startRow,
				startCol, endRow, endCol)) {
			return false;
		}

		// Check movement in which Horizontal Direction
		boolean isRight = startCol < endCol;
		// Check movement in which vertical Direction
		boolean down = startRow < endRow;

		// Initialize the value for the row and col counters to start point.
		int rowCounter = startRow;
		int colCounter = startCol;
		while (rowCounter != endRow) {
			// Not a valid move if an oponent's piece is on the way
			if (!board[rowCounter][colCounter].isEmpty()
					&& board[rowCounter][colCounter].getPlayer() != turn) {
				return false;
			}
			// Update counter for vertical direction
			if (down) {
				rowCounter++;
			} else {
				rowCounter--;
			}

			// Update counter for horizontal direction
			if (isRight) {
				colCounter++;
			} else {
				colCounter--;
			}
		}
		// No pieces opponent pieces were found on the way
		return true;
	}