@Override
	public boolean canMove(Board board, Field currentField, Field emptyField) {
		if (this.validSetupForMove(currentField, emptyField) && emptyField.inSameFileAs(currentField)) {
			if (emptyField.distanceBetweenRank(currentField) == this.forwardDistance(1)) {
				return true;
			} else if (this.isFirstMove() && emptyField.distanceBetweenRank(currentField) == this.forwardDistance(2)) {
				return true;
			} else {
				return false;
			}
		} else {
			return false;
		}
	}