public boolean equals(Object other) {
		if (this == other)
			return true;
		if (other == null)
			return false;

		if (!BoardType.class.isAssignableFrom(other.getClass()))
			return false;

		Board board = (Board) other;
		if (!this.getShiftCard().equals(board.getShiftCard())
				|| !this.getTreasure().equals(board.getTreasure())
				|| !this.getTreasurePos().equals(board.getTreasurePos()))
			return false;

		for (int i = 0; i < getRow().size(); i++) {
			for (int j = 0; j < getRow().get(i).getCol().size(); j++) {
				if (!this.getCard(i, j).equals(board.getCard(i, j)))
					return false;
			}
		}

		return true;
	}