// prends en compte la couleur de la pièce et le type de celle-ci//
public class Piece {
    public boolean couleur = false;
    public String type = "  ";
    public Piece(boolean couleur,String type){
        this.couleur = couleur;
        this.type = type;
    }
    public boolean deplacementPossible(Deplacement mouvement){return false;}
    //autorise le déplacement uniquement s'il n'y a pas de pièce située entre la case de départ et celle située à l'arrivée//
    //et si la pièce sur la case d'arrivée est de couleur opposée à celle de départ//
    public boolean deplacementAutorise(Piece[][] plateau,Deplacement mouvement){
        if(mouvement.getdL() == 0 && mouvement.getdC() == 0) return false;
        else if(!plateau[mouvement.getArrivee().getLigne()][mouvement.getArrivee().getColonne()].type.equals("  ") && this.couleur == plateau[mouvement.getArrivee().getLigne()][mouvement.getArrivee().getColonne()].couleur) return false;
        else if(this.deplacementPossible(mouvement)){
            if(mouvement.getdL() == 0 || mouvement.getdC() == 0){
                for(int i = 1; i < Math.abs(mouvement.getdL()) + Math.abs(mouvement.getdC()); i++){
                    if(!plateau[mouvement.getDepart().getLigne() + i*Integer.signum(mouvement.getdL())][mouvement.getDepart().getColonne() + i*Integer.signum(mouvement.getdC())].type.equals("  ")) return false;
                }
            }else if(Math.abs(mouvement.getdL()) - Math.abs(mouvement.getdC()) == 0){
                for(int i = 1; i < Math.abs(mouvement.getdL()); i++){
                    if(!plateau[mouvement.getDepart().getLigne() + i*Integer.signum(mouvement.getdL())][mouvement.getDepart().getColonne() + i*Integer.signum(mouvement.getdC())].type.equals("  ")) return false;
                }
            }
            return true;
        }
        return false;
    }
}

@@ -1,22 +1,55 @@
 /
-/ prends en compt
+* Constructeur de la Pi%C3%A8ce%0A*@param prends param%C3%A8tr
 e la
@@ -91,17 +91,18 @@
 celle-ci
-/
+%0A*
 /%0Apublic
@@ -381,211 +381,52 @@
   //
-autorise le d%C3%A9placement uniquement s'il n'y a pas de pi%C3%A8ce situ%C3%A9e entre la case de d%C3%A9part et celle situ%C3%A9e %C3%A0 l'arriv%C3%A9e//%0A    //et si la pi%C3%A8ce sur la case d'arriv%C3%A9e est de couleur oppos%C3%A9e %C3%A0 celle de d%C3%A9part
+ Renvoi true si le d%C3%A9placement est autoris%C3%A9 
 //%0A 
@@ -505,16 +505,77 @@
 ement)%7B%0A
+        // Interdit de d%C3%A9placer une pi%C3%A8ce sur la m%C3%AAme case//%0A
         
@@ -633,32 +633,155 @@
 ) return false;%0A
+        // Interdit le d%C3%A9placement la pi%C3%A8ce si la pi%C3%A8ce sur la case d'arriv%C3%A9e est de couleur identique %C3%A0 celle de d%C3%A9part//%0A
         else if(
@@ -1055,16 +1055,204 @@
 ment))%7B%0A
+            // Pour le cas d'un d%C3%A9placement en ligne ou en colonne: autorise le d%C3%A9placement uniquement s'il n'y a pas de pi%C3%A8ce situ%C3%A9e entre la case de d%C3%A9part et celle situ%C3%A9e %C3%A0 l'arriv%C3%A9e//%0A
         
@@ -1612,32 +1612,32 @@
 ) return false;%0A
-
                 
@@ -1630,32 +1630,211 @@
               %7D%0A
+            // Pour le cas d'un d%C3%A9placement en diagonale : autorise le d%C3%A9placement uniquement s'il n'y a pas de pi%C3%A8ce situ%C3%A9e entre la case de d%C3%A9part et celle situ%C3%A9e %C3%A0 l'arriv%C3%A9e//%0A
             %7Dels

Update Piece.java