diff --git a/app/src/main/java/com/example/myhabitat/CreationOuvertureActivity.java b/app/src/main/java/com/example/myhabitat/CreationOuvertureActivity.java
index 0dcde87baec7d80615c159e60107cdb54c9354c0..a597362d0ff89eea69eecfb77b4bc67b56a9fa20 100644
--- a/app/src/main/java/com/example/myhabitat/CreationOuvertureActivity.java
+++ b/app/src/main/java/com/example/myhabitat/CreationOuvertureActivity.java
@@ -166,6 +166,11 @@ public class CreationOuvertureActivity extends AppCompatActivity{
 
             }
         });
+
+        Button buttonselectD = findViewById(R.id.buttonSDepart);
+        buttonselectD.setBackgroundColor(Color.LTGRAY);
+        Button buttonselectA = findViewById(R.id.buttonSArrivee);
+        buttonselectA.setBackgroundColor(Color.LTGRAY);
     }
 
     /**
@@ -243,6 +248,10 @@ public class CreationOuvertureActivity extends AppCompatActivity{
      * Fonction qui affiche la piece de depart
      */
     public void affichePieceDepart(){
+        Button buttonselectD = findViewById(R.id.buttonSDepart);
+        buttonselectD.setBackgroundColor(Color.DKGRAY);
+        Button buttonselectA = findViewById(R.id.buttonSArrivee);
+        buttonselectA.setBackgroundColor(Color.LTGRAY);
         if(pieceDepart != null && orientationPieceDepart != null){
             Mur mur = pieceDepart.getMurOrientation(orientationPieceDepart);
             FileInputStream fis = null;
@@ -272,6 +281,10 @@ public class CreationOuvertureActivity extends AppCompatActivity{
      * Fonction qui affiche la piece d'arrivee
      */
     public void affichePieceArrivee(){
+        Button buttonselectD = findViewById(R.id.buttonSDepart);
+        buttonselectD.setBackgroundColor(Color.LTGRAY);
+        Button buttonselectA = findViewById(R.id.buttonSArrivee);
+        buttonselectA.setBackgroundColor(Color.DKGRAY);
         if(pieceArrivee != null && orientationPieceArrivee != null){
             Mur mur = pieceArrivee.getMurOrientation(orientationPieceArrivee);
             FileInputStream fis = null;
diff --git a/app/src/main/java/com/example/myhabitat/ModeConceptionActivity.java b/app/src/main/java/com/example/myhabitat/ModeConceptionActivity.java
index 0824489f7500899751421b6d88ead65a57db6513..3542c4dd0d78d293a2078d53da3e0cd2e75dbae1 100644
--- a/app/src/main/java/com/example/myhabitat/ModeConceptionActivity.java
+++ b/app/src/main/java/com/example/myhabitat/ModeConceptionActivity.java
@@ -3,6 +3,7 @@ package com.example.myhabitat;
 import android.content.Intent;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
+import android.graphics.drawable.Drawable;
 import android.provider.MediaStore;
 import android.text.Editable;
 import android.text.TextWatcher;
@@ -116,11 +117,8 @@ public class ModeConceptionActivity extends AppCompatActivity {
 
     @Override
     protected void onStart() {
-        Log.i("testOnStart", "je vais dans le OnStart");
-        Log.i("testEConception", habitat.getOuvertures().toString());
         //On recupere habitat quand on revient de CreationOuvertureActivity
         ouvrirJSON();
-        Log.i("testEConception", habitat.getOuvertures().toString());
 
         super.onStart();
     }
@@ -163,8 +161,6 @@ public class ModeConceptionActivity extends AppCompatActivity {
                 LinearLayout llMur = new LinearLayout(this);
                 //llMur.setGravity(Gravity.CENTER_HORIZONTAL);
                 ImageButton imageButton = new ImageButton(this);
-                imageButton.setMaxHeight(50);
-                imageButton.setMaxWidth(50);
 
                 //On récupère la photo
                 FileInputStream fis = null;
@@ -177,6 +173,8 @@ public class ModeConceptionActivity extends AppCompatActivity {
                     Bitmap bm = BitmapFactory.decodeStream(fis);
 
                     imageButton.setImageBitmap(bm);
+                }else{
+                    imageButton.setImageDrawable(getDrawable(R.drawable.imagemur));
                 }
 
 
diff --git a/app/src/main/java/com/example/myhabitat/ModeImmersionActivity.java b/app/src/main/java/com/example/myhabitat/ModeImmersionActivity.java
index 3232e26541dda90034e498a295a6ea3130cf9f3c..2228636b026518a26b726d13026382c631a9844c 100644
--- a/app/src/main/java/com/example/myhabitat/ModeImmersionActivity.java
+++ b/app/src/main/java/com/example/myhabitat/ModeImmersionActivity.java
@@ -180,7 +180,7 @@ public class ModeImmersionActivity extends AppCompatActivity implements SensorEv
 
         //On met à jour la piece suivante si mode "aller a une piece"
         if(goToPiece != null){
-            goTo();
+            goToSuite();
         }
 
         afficheOuvertures();
@@ -330,6 +330,10 @@ public class ModeImmersionActivity extends AppCompatActivity implements SensorEv
         super.onResume();
     }
 
+    /**
+     * Fonction appelee pour trouver chemin jusqu'a une piece
+     * @param view
+     */
     public void goTo(View view) {
         AlertDialog.Builder alertDialog = new AlertDialog.Builder(ModeImmersionActivity.this);
         alertDialog.setTitle("Choisi une piece où aller");
@@ -357,13 +361,16 @@ public class ModeImmersionActivity extends AppCompatActivity implements SensorEv
         alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
             @Override
             public void onClick(DialogInterface dialog, int which) {
-                goTo();
+                goToSuite();
             }
         });
         alertDialog.show();
     }
 
-    private void goTo() {
+    /**
+     * Suite de la fonction goTo, permet d'initialiser le chemin
+     */
+    private void goToSuite() {
         if(!pieceEnCours.equals(goToPiece)) {
             ArrayList<Piece> chemin = grapheHabitat.getPlusCourtChemin(pieceEnCours, goToPiece);
 
diff --git a/app/src/main/java/outils/GrapheHabitat.java b/app/src/main/java/outils/GrapheHabitat.java
index 593566f0e5e3bfd39639b0a71151e26e89b79f58..3238d78ae4446c6d164fdcded24fde804849888b 100644
--- a/app/src/main/java/outils/GrapheHabitat.java
+++ b/app/src/main/java/outils/GrapheHabitat.java
@@ -1,5 +1,4 @@
 package outils;
-import android.util.Log;
 import habitat.Habitat;
 import habitat.Ouverture;
 import habitat.Piece;
@@ -8,9 +7,10 @@ import java.util.*;
 
 public class GrapheHabitat {
 
-    // A class to store a graph edge
-    class Edge
-    {
+    /**
+     * Classe pour les aretes du graphe
+     */
+    class Edge{
         int source, dest, weight;
 
         public Edge(int source, int dest, int weight)
@@ -21,26 +21,29 @@ public class GrapheHabitat {
         }
     }
 
-    // A class to store a heap node
-    class Node
-    {
+    /**
+     * Classe pour les noeuds
+     */
+    class Noeud{
         int vertex, weight;
 
-        public Node(int vertex, int weight)
+        public Noeud(int vertex, int weight)
         {
             this.vertex = vertex;
             this.weight = weight;
         }
     }
 
-    // A class to represent a graph object
-    class Graph
+    /**
+     * Classe pour un graphe
+     */
+    class Graphe
     {
         // A list of lists to represent an adjacency list
         List<List<Edge>> adjList = null;
 
         // Constructor
-        Graph(List<Edge> edges, int n)
+        Graphe(List<Edge> edges, int n)
         {
             adjList = new ArrayList<>();
 
@@ -58,9 +61,13 @@ public class GrapheHabitat {
     private Habitat habitat;
     private HashMap<Integer, Piece> hmap;
     private HashMap<Piece, Integer> hmapGet;
-    //private HashMap<Piece, List<Piece>> res;
     private HashMap<Piece, HashMap<Piece, ArrayList<Piece>>> res;
 
+
+    /**
+     * constructeur de GrapheHabitat
+     * @param habitat
+     */
     public GrapheHabitat(Habitat habitat) {
         this.habitat = habitat;
         res = new HashMap<>();
@@ -71,7 +78,7 @@ public class GrapheHabitat {
         for(Piece piece : habitat.getPieces()){
             hmap.put(i, piece);
             hmapGet.put(piece, i);
-            Log.i("testGraphe", "je mets " + piece.getNom());
+            //Log.i("testGraphe", "je mets " + piece.getNom());
             i++;
 
             res.put(piece, new HashMap<>());
@@ -90,22 +97,22 @@ public class GrapheHabitat {
         //On créé la list à partir des ouvertures
         List<Edge> edges = new ArrayList<>();
         for(Ouverture ouverture : habitat.getOuvertures()){
-            Log.i("testGraphe", "je veux " + ouverture.getMurDepart().getPiece() + " et " + ouverture.getMurArrivee().getPiece());
+            //Log.i("testGraphe", "je veux " + ouverture.getMurDepart().getPiece() + " et " + ouverture.getMurArrivee().getPiece());
             edges.add(new Edge(hmapGet.get(ouverture.getMurDepart().getPiece()), hmapGet.get(ouverture.getMurArrivee().getPiece()), 1));
             edges.add(new Edge(hmapGet.get(ouverture.getMurArrivee().getPiece()), hmapGet.get(ouverture.getMurDepart().getPiece()), 1));
         }
 
 
-        // total number of nodes in the graph (labelled from 0 to 4)
+        // nombre total d'aretes
         int n = habitat.getOuvertures().size()*2;
 
-        // construct graph
-        Graph graph = new Graph(edges, n);
+        // construction du graphe
+        Graphe graphe = new Graphe(edges, n);
 
 
-        // run the Dijkstra’s algorithm from every node
+        // on applique dijkstra sur tous les noeuds
         for (int source = 0; source < n; source++) {
-            findShortestPaths(graph, source, n);
+            plusCourtChemin(graphe, source, n);
         }
 
         //For test
@@ -122,6 +129,12 @@ public class GrapheHabitat {
          */
     }
 
+    /**
+     * Fonction qui donne le chemin
+     * @param prev
+     * @param i
+     * @param route
+     */
     private void getRoute(int[] prev, int i, List<Piece> route)
     {
         if (i >= 0)
@@ -131,19 +144,24 @@ public class GrapheHabitat {
         }
     }
 
-    // Run Dijkstra’s algorithm on a given graph
-    public void findShortestPaths(Graph graph, int source, int n)
+
+    /**
+     * Fonction qui applique dijkstra sur tout le graphe
+     * @param graphe
+     * @param source
+     * @param n
+     */
+    private void plusCourtChemin(Graphe graphe, int source, int n)
     {
-        // create a min-heap and push source node having distance 0
-        PriorityQueue<Node> minHeap;
-        minHeap = new PriorityQueue<>(Comparator.comparingInt(node -> node.weight));
-        minHeap.add(new Node(source, 0));
+        // instanciation de depart pour Dijkstra
+        PriorityQueue<Noeud> minHeap;
+        minHeap = new PriorityQueue<>(Comparator.comparingInt(noeud -> noeud.weight));
+        minHeap.add(new Noeud(source, 0));
 
-        // set initial distance from the source to `v` as infinity
+        // initialise les distances de depart à l'infini
         List<Integer> dist;
         dist = new ArrayList<>(Collections.nCopies(n, Integer.MAX_VALUE));
-
-        // distance from the source to itself is zero
+        //Et celui de depart a 0
         dist.set(source, 0);
 
         // boolean array to track vertices for which minimum
@@ -159,13 +177,13 @@ public class GrapheHabitat {
         while (!minHeap.isEmpty())
         {
             // Remove and return the best vertex
-            Node node = minHeap.poll();
+            Noeud noeud = minHeap.poll();
 
             // get the vertex number
-            int u = node.vertex;
+            int u = noeud.vertex;
 
             // do for each neighbor `v` of `u`
-            for (Edge edge: graph.adjList.get(u))
+            for (Edge edge: graphe.adjList.get(u))
             {
                 int v = edge.dest;
                 int weight = edge.weight;
@@ -175,7 +193,7 @@ public class GrapheHabitat {
                 {
                     dist.set(v, dist.get(u) + weight);
                     prev[v] = u;
-                    minHeap.add(new Node(v, dist.get(v)));
+                    minHeap.add(new Noeud(v, dist.get(v)));
                 }
             }
 
@@ -201,8 +219,14 @@ public class GrapheHabitat {
     }
 
 
+    /**
+     * Fonction permettant de retourner le chemin le + court entre 2 pieces
+     * @param pieceDepart
+     * @param pieceArrivee
+     * @return le chemin le + court entre pieceDepart et pieceArrivee
+     */
     public ArrayList<Piece> getPlusCourtChemin(Piece pieceDepart, Piece pieceArrivee){
-        Log.i("testGraphe", "Path (" + pieceDepart.getNom() + " -> " + pieceArrivee.getNom() + ", Route = " + res.get(pieceDepart).get(pieceArrivee));
+        //Log.i("testGraphe", "Path (" + pieceDepart.getNom() + " -> " + pieceArrivee.getNom() + ", Route = " + res.get(pieceDepart).get(pieceArrivee));
         return res.get(pieceDepart).get(pieceArrivee);
     }
 
diff --git a/app/src/main/res/drawable/diagrammedeclasse.png b/app/src/main/res/drawable/diagrammedeclasse.png
index 65dcafe2421132b033e4ff0cfeb8080c9cb07de8..a6dbffca8c94b4546f4660c01dd87ee5e3a4a569 100644
Binary files a/app/src/main/res/drawable/diagrammedeclasse.png and b/app/src/main/res/drawable/diagrammedeclasse.png differ
diff --git a/app/src/main/res/layout/activity_creation_ouverture.xml b/app/src/main/res/layout/activity_creation_ouverture.xml
index e5715adf428877b72dae4abfc77aea95e001b34e..0768cc549a9c9959556d9ffe2ad192da39e96c1e 100644
--- a/app/src/main/res/layout/activity_creation_ouverture.xml
+++ b/app/src/main/res/layout/activity_creation_ouverture.xml
@@ -27,7 +27,7 @@
             android:layout_marginTop="16dp"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintHorizontal_bias="0.892"/>
+            app:layout_constraintHorizontal_bias="0.918"/>
 
     <TextView
             android:text="@string/direction"
@@ -49,7 +49,7 @@
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintBottom_toTopOf="@+id/spinnerDepart"
-            app:layout_constraintHorizontal_bias="0.137"
+            app:layout_constraintHorizontal_bias="0.112"
             app:layout_constraintVertical_bias="0.484"/>
 
     <TextView
@@ -58,10 +58,10 @@
             android:layout_height="wrap_content"
             android:id="@+id/textViewArrivee"
             app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintHorizontal_bias="0.871"
+            app:layout_constraintHorizontal_bias="0.754"
             app:layout_constraintTop_toTopOf="parent"
-            android:layout_marginTop="16dp"/>
+            android:layout_marginTop="16dp"
+            app:layout_constraintStart_toEndOf="@+id/textViewDepart"/>
 
     <Spinner
             android:layout_width="181dp"
@@ -100,10 +100,10 @@
             android:layout_height="33dp"
             android:id="@+id/spinnerDOrientation"
             app:layout_constraintTop_toBottomOf="@+id/textView3"
-            android:layout_marginTop="20dp"
+            android:layout_marginTop="16dp"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintHorizontal_bias="0.097"/>
+            app:layout_constraintHorizontal_bias="0.092"/>
 
     <SurfaceView
             android:layout_width="414dp"
@@ -124,8 +124,8 @@
             app:layout_constraintTop_toBottomOf="@+id/spinnerDOrientation"
             app:layout_constraintEnd_toStartOf="@+id/buttonSArrivee"
             app:layout_constraintStart_toStartOf="parent"
-            android:layout_marginTop="16dp"
-            app:layout_constraintHorizontal_bias="0.419"/>
+            android:layout_marginTop="20dp"
+            app:layout_constraintHorizontal_bias="0.158"/>
 
     <Button
             android:text="@string/selectionner"
@@ -135,8 +135,8 @@
             android:onClick="setSArrivee"
             app:layout_constraintTop_toBottomOf="@+id/spinnerAOrientation"
             app:layout_constraintEnd_toEndOf="parent"
-            android:layout_marginEnd="40dp"
-            android:layout_marginTop="16dp"/>
+            android:layout_marginEnd="16dp"
+            android:layout_marginTop="20dp"/>
 
     <Button
             android:text="@string/confirmer"