private boolean isValidPawnMove(int sourceRow, int sourceColumn, int targetRow, int targetColumn) {

        boolean isValid = false;
        if (isTargetLocationFree()) {
            if (sourceColumn == targetColumn) {
                // same column
                if (sourceFigure.getColor() == Figure.COLOR_BLACK) {
                    // black
                    if (sourceRow - 1 == targetRow) {
                        // move one down
                        isValid = true;
                    } else {
                        System.out.println("Warning #4: Not moving one down.");
                        isValid = false;
                    }
                }
            } else {
                // not the same column
                System.out.println("Warning #5: Not staying in same column.");
                isValid = false;
            }
        } else if (isTargetLocationCaptureable()) {

            if (sourceColumn + 1 == targetColumn || sourceColumn - 1 == targetColumn) {
                // one column to the right or left
                if (sourceFigure.getColor() == Figure.COLOR_BLACK) {
                    if (sourceRow - 1 == targetRow) {
                        // move one down
                        isValid = true;
                    } else {
                        System.out.println("Warning #6: Not moving one down.");
                        isValid = false;
                    }
                }
            } else {
                // note one column to the left or right
                System.out.println("Warning #7: Not moving one column to left or right.");
                isValid = false;
            }
        }
        return isValid;
    }