@Override
	public boolean equals(Object y) {
		
		if (y == null)
			return false;

		if (y.getClass() != this.getClass()) {
			return false;
		}
		Board that = (Board) y;
		if (this.N != that.N)
			return false;
		if (this.io != that.io || this.jo != that.jo)
			return false;

		for (int i = 0; i < N; i++)
			for (int j = 0; j < N; j++) {
				if (this.board[i][j] != that.board[i][j])
					return false;
			}
		if (y == this)
			return true;
		return true;
		// does this board equal y?
	}