@Override
	public boolean equals(Object o){//O(1)
		if(n==2) {
			boolean res = (o instanceof MacroCell)&&((MacroCell) o).n==2;
			if(res){
				MacroCell m = (MacroCell) o;
				for(int i=0;i<4;i++){for(int j=0;j<4;j++){res = res&&(valeurs[i][j]==m.valeurs[i][j]);}}
				return res;}
		}
		return (o instanceof MacroCell)&&((MacroCell) o).n==n&&((MacroCell) o).hautGauche.adress()==hautGauche.adress()
				&&((MacroCell) o).hautDroit.adress()==hautDroit.adress()
				&&((MacroCell) o).basGauche.adress()==basGauche.adress()
				&&((MacroCell) o).basDroit.adress()==basDroit.adress();//egalite exacte des objets sous-cellule
	}