diff --git a/Assets/Resources/Materials/CourseAPied.meta b/Assets/Resources/Materials/CourseAPied.meta
new file mode 100644
index 0000000000000000000000000000000000000000..dfc9102990213812f71418e87f018d6064fa6e95
--- /dev/null
+++ b/Assets/Resources/Materials/CourseAPied.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c72c868a564ccf34490890be8c2318b7
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Resources/Materials/CourseAPied/CubeMaterial.mat b/Assets/Resources/Materials/CourseAPied/CubeMaterial.mat
new file mode 100644
index 0000000000000000000000000000000000000000..92a20f4c699ac456a661b51fd1a98bbefbc78011
--- /dev/null
+++ b/Assets/Resources/Materials/CourseAPied/CubeMaterial.mat
@@ -0,0 +1,125 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-6269116704956453700
+MonoBehaviour:
+  m_ObjectHideFlags: 11
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  version: 5
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: CubeMaterial
+  m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap:
+    RenderType: Opaque
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BaseMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SpecGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - unity_Lightmaps:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - unity_LightmapsInd:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - unity_ShadowMasks:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _AlphaClip: 0
+    - _Blend: 0
+    - _BumpScale: 1
+    - _ClearCoatMask: 0
+    - _ClearCoatSmoothness: 0
+    - _Cull: 2
+    - _Cutoff: 0.5
+    - _DetailAlbedoMapScale: 1
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _EnvironmentReflections: 1
+    - _GlossMapScale: 0
+    - _Glossiness: 0
+    - _GlossyReflections: 0
+    - _Metallic: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.005
+    - _QueueOffset: 0
+    - _ReceiveShadows: 1
+    - _Smoothness: 0.5
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _Surface: 0
+    - _WorkflowMode: 1
+    - _ZWrite: 1
+    m_Colors:
+    - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
+  m_BuildTextureStacks: []
diff --git a/Assets/Resources/Materials/CourseAPied/CubeMaterial.mat.meta b/Assets/Resources/Materials/CourseAPied/CubeMaterial.mat.meta
new file mode 100644
index 0000000000000000000000000000000000000000..05b1e5d66a5cca824ff4e26c42744c9b4784f23e
--- /dev/null
+++ b/Assets/Resources/Materials/CourseAPied/CubeMaterial.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 22d7a8a62c660b6418bd5ab05fb4e7a9
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scripts/CourseAPieds/V7.cs b/Assets/Scripts/CourseAPieds/V7.cs
index 990688724f80dc5fddc098eb2c0f3d5fddcd7be2..3b41c3deb4ead8f7ac5efe813f4e50b27446ab78 100644
--- a/Assets/Scripts/CourseAPieds/V7.cs
+++ b/Assets/Scripts/CourseAPieds/V7.cs
@@ -30,13 +30,15 @@ public class V7 : MonoBehaviour
     public int[] ptProches;
     int ptsChemAbscisse;
     int ptsChemIndex;
-
+    public Rigidbody Cube;
+    int cmptCubes = 0;
 
     //public float offsetX = 100f;
     //public float offsetY = 100f;
 
     void Start()
     {
+    
         // Création du tableau des points aléatoires (chemin)
         pointsDuChemin = new int[2, nombreDePointsAGenerer];
         // Récupère les dimensions du tableau de manière optimisée
@@ -144,6 +146,8 @@ public class V7 : MonoBehaviour
     {
         int x = x1;
         int y = y1;
+        float xPositionMultiplier = terrain.terrainData.size.x / heightmapWidth;
+        float yPositionMultiplier = terrain.terrainData.size.z / heightmapHeight;
         // On va faire un lerp entre les points
         float lerp = 0f;
         while(lerp < 1f)
@@ -155,20 +159,25 @@ public class V7 : MonoBehaviour
             float hauteur, hauteurAvant, hauteurApres;
 
             // On va tracer le chemin en largeur
-            for(int i=0; i<largeurDuChemin; i++)
+            for(int indexLargeur=0; indexLargeur<largeurDuChemin; indexLargeur++)
             {
-                if(x+i < heightmapWidth && y+i < heightmapHeight)
+                if(x+indexLargeur < heightmapWidth && y+indexLargeur < heightmapHeight)
                 {
                     // On va calculer la hauteur du point par rapport aux coordonées d'avant, et d'après
-                    if(x+i-1 < 0 || y+i-1 < 0){
+                    if(x+indexLargeur-1 < 0 || y+indexLargeur-1 < 0){
                         hauteurAvant = 0;
-                    }else{
-                        hauteurAvant = terrain.terrainData.GetHeight(x+i-1, y+i-1);
+            
+
                     }
-                    if(x+i+1 >= heightmapWidth || y+i+1 >= heightmapHeight){
+                    else{
+                        hauteurAvant = terrain.terrainData.GetHeight(x+indexLargeur-1, y+indexLargeur-1);
+                    }
+                    if(x+indexLargeur+1 >= heightmapWidth || y+indexLargeur+1 >= heightmapHeight){
                         hauteurApres = 0;
-                    }else{
-                        hauteurApres = terrain.terrainData.GetHeight(x+i+1, y+i+1);
+                    }
+                    else
+                    {
+                        hauteurApres = terrain.terrainData.GetHeight(x+indexLargeur+1, y+indexLargeur+1);
                     }
                     // On va faire la moyenne des deux hauteurs si elles sont != 0
                     if(hauteurAvant != 0 && hauteurApres != 0){
@@ -186,7 +195,19 @@ public class V7 : MonoBehaviour
                     hauteur = hauteur / terrain.terrainData.size.y;
 
                     Debug.Log("hauteur = " + hauteur);
-                    terrain.terrainData.SetHeights(x+i, y+i, new float[,] { { hauteur, hauteur }});
+                    terrain.terrainData.SetHeights(x+indexLargeur, y+indexLargeur, new float[,] { { hauteur, hauteur }});
+                    if (indexLargeur == 3)
+                    {
+                        cmptCubes++;
+                        if (cmptCubes == 5)
+                        {
+                            Rigidbody instance;
+                            instance = Instantiate(Cube, new Vector3((x + indexLargeur) * xPositionMultiplier, hauteur * terrain.terrainData.size.y, (y + indexLargeur) * yPositionMultiplier), Quaternion.identity);
+                            instance.GetComponent<Renderer>().material.color = Random.ColorHSV(0f, 1f, 1f, 1f, 0.5f, 1f);
+                            cmptCubes = 0;
+                        }
+                    }
+                        
                 }
             }
         }
diff --git a/Assets/Terrains/terrainCourseAPied.asset b/Assets/Terrains/terrainCourseAPied.asset
index 7f2a4b2bf29111967af379f62c1d25b25dbdc59f..9f13ea8bdd01bfeb0d70342b20e66c9a32366616 100644
Binary files a/Assets/Terrains/terrainCourseAPied.asset and b/Assets/Terrains/terrainCourseAPied.asset differ