@Override
	public boolean equals(Object obj) {
		if (this == obj) {
			return true;
		}
		if (obj == null) {
			return false;
		}
		if (getClass() != obj.getClass()) {
			return false;
		}
		AbstractPuzzle other = (AbstractPuzzle) obj;
		if (counter != other.counter) {
			return false;
		}
		if (difficulty != other.difficulty) {
			return false;
		}
		if (size != other.size) {
			return false;
		}
		return true;
	}