@Override
    public boolean equals(Object obj) {
      if (this == obj)
        return true;
      if (obj == null)
        return false;
      if (getClass() != obj.getClass())
        return false;
      SearchState other = (SearchState) obj;
      if (board == null) {
        if (other.board != null)
          return false;
      } else if (!board.equals(other.board))
        return false;
      if (numDroppedPieces != other.numDroppedPieces)
        return false;
      if (rowsToGo != other.rowsToGo)
        return false;
      return true;
    }