diff --git a/doc/sprint-3/README.md b/doc/sprint-3/README.md
index 704d0a15594abc2eb39c7394b26af5e7ec37b27e..3e1662b3ebaae0f473f11a981d7a53903091c033 100644
--- a/doc/sprint-3/README.md
+++ b/doc/sprint-3/README.md
@@ -1,12 +1,12 @@
 # Sprint 3
 
-## D�mo + Planification du sprint suivant
+## Démo + Planification du sprint suivant
 
 ### Ce que nous avons fait durant ce sprint
-Cr�ation des evenements et des d�placement
+Création des evenements et des déplacement
 mise en place de l'affichage
 
 ### Ce que nous allons faire durant le prochain sprint
-ajout� les unit�s et r�alis� le syst�me d'action
+ajouté les unités et réalisé le système d'action
 
-## R�tro
+## Rétro
diff --git a/doc/sprint-4/README.md b/doc/sprint-4/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..43ba1514b6f3061193fa707b5c5341d05b05505a
--- /dev/null
+++ b/doc/sprint-4/README.md
@@ -0,0 +1,13 @@
+# Sprint 4
+
+## Démo + Planification du sprint suivant
+
+### Ce que nous avons fait durant ce sprint
+Toutes les unités ont été ajouté
+Les actions sont misent en places via l'interface
+
+### Ce que nous allons faire durant le prochain sprint
+réalisation partiel de l'interface
+réalisation des événements
+
+## Rétro
\ No newline at end of file
diff --git a/doc/sprint-4/radiateur.jpg b/doc/sprint-4/radiateur.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e2e2292acd77105993eea3cf70fd5774e3711188
Binary files /dev/null and b/doc/sprint-4/radiateur.jpg differ
diff --git a/doc/sprint-5/README.md b/doc/sprint-5/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..7abc22ad717c5159f473374c323fcf306e85547c
--- /dev/null
+++ b/doc/sprint-5/README.md
@@ -0,0 +1,13 @@
+# Sprint 5
+
+## Démo + Planification du sprint suivant
+
+### Ce que nous avons fait durant ce sprint
+réalisation partiel de l'interface
+réalisation des événements
+réalisateur des cases procédurale
+
+### Ce que nous allons faire durant le prochain sprint
+
+
+## Rétro
\ No newline at end of file
diff --git a/doc/sprint-5/radiateur.jpg b/doc/sprint-5/radiateur.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bd5524346e2a9318db3455b2c2b368de4df61587
Binary files /dev/null and b/doc/sprint-5/radiateur.jpg differ
diff --git a/src/events/FortEvent.java b/src/events/FortEvent.java
index 604f4107b1e7051ddeb9e47f2e59ca543cd27296..6d589be5fd006012f7d8a1fd65f68dcebf845355 100644
--- a/src/events/FortEvent.java
+++ b/src/events/FortEvent.java
@@ -19,11 +19,13 @@ public class FortEvent implements Evenements{
 				uniteVisiteur.setArmor(uniteVisiteur.getArmor()-fortDamage);
 				if (Combattre.isAlive(uniteVisiteur)) {
 					owner = visiteur;
+					uniteVisiteur.getPlateau().getRegion(uniteVisiteur.getX(), uniteVisiteur.getY()).setProprietaire(visiteur);
 				}
 			}else if(owner.getNomJoueur().equals(visiteur.getNomJoueur())) {
 				System.out.println("Vous accupez maintenant votre fort !");
 			}else{
 				owner = visiteur;
+				uniteVisiteur.getPlateau().getRegion(uniteVisiteur.getX(), uniteVisiteur.getY()).setProprietaire(visiteur);	
 			}
 		}
 		
diff --git a/src/events/TeleportationEvent.java b/src/events/TeleportationEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..ac6adb9d0372b389f69afbe2ac96dc318c276cd8
--- /dev/null
+++ b/src/events/TeleportationEvent.java
@@ -0,0 +1,15 @@
+package events;
+
+import main.Case;
+
+public class TeleportationEvent implements Evenements{
+
+	public void action(Case eventCase) {
+		//TODO:téléporter l'unité sur une case random qui n'est ni un		
+	}
+
+	public String getName() {
+		return "Teleportation Event";
+	}
+
+}
diff --git a/src/items/Crown.java b/src/items/Crown.java
index 97da0c6ee93d6d1933b383591a117f2996e6a85a..33e2c3675db6bfc44c31f1daf51c5cc818126143 100644
--- a/src/items/Crown.java
+++ b/src/items/Crown.java
@@ -15,7 +15,10 @@ public class Crown extends Items{
 	@Override
 	public void usage(Joueur joueur) {
 		//TODO: premi�re version, tu prend la couronne tu gagne, ensuite faire de syst�me de r�cup et d'arriver au camp
-		joueur.setWin(true);	
+		if (this.getPower() != 0) {
+			joueur.setWin(true);
+			this.setPower(0);
+		}		
 	}
 
 	@Override
diff --git a/src/items/Items.java b/src/items/Items.java
index fcf570e9e7eb5063b1da5ff55a4ebc05fc60b5cc..eddd6d333650645395c819961cc177629d055bb7 100644
--- a/src/items/Items.java
+++ b/src/items/Items.java
@@ -6,6 +6,7 @@ import main.Joueur;
 public abstract class Items {
 	private String name;
 	private Case itemCase;
+	private int power = 1;
 	
 	public Items(String name, Case itemCase) {
 		super();
@@ -17,6 +18,15 @@ public abstract class Items {
 		return name;
 	}
 	
+	public int getPower() {
+		return power;
+	}
+	
+	
+	public void setPower(int power) {
+		this.power = power;
+	}
+
 	public Case getItemCase() {
 		return itemCase;
 	}
diff --git a/src/main/Case.java b/src/main/Case.java
index a47af92925524e6e3d8e5dc8a33a2cb2ca0cc3bb..373dcd6eb86b19cb31aa033c3d5d7aea6a107f25 100644
--- a/src/main/Case.java
+++ b/src/main/Case.java
@@ -1,11 +1,17 @@
 package main;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import events.Evenements;
+import items.Items;
 import units.Unite;
 
 public class Case {
 	private Type type;
 	private boolean decouverte;
-	private Event event;
+	private List<Evenements> events;
+	private Items item;
 	private Unite unite;
 	private int x;
 	private int y;
@@ -13,8 +19,8 @@ public class Case {
 	public Case(Type type) {
 		this.type = type;
 		this.decouverte = false;
-		this.event = null;
 		this.unite = null;
+		this.events = new ArrayList<Evenements>();
 		this.x = 0;
 		this.y = 0;
 	}
@@ -36,12 +42,16 @@ public class Case {
 
 	public boolean isDecouverte() {
 		return decouverte;
-	}
+	}	
 
-	public Event getEvent() {
-		return event;
+	public List<Evenements> getEvents() {
+		return events;
 	}
-
+	
+	public boolean addEvents(Evenements event) {
+		return events.add(event);
+	}
+	
 	public Unite getUnite() {
 		return unite;
 	}
@@ -50,10 +60,6 @@ public class Case {
 		this.decouverte = decouverte;
 	}
 
-	public void setEvent(Event event) {
-		this.event = event;
-	}
-
 	public void setUnite(Unite unite) {
 		this.unite = unite;
 		this.type = Type.UNITE;
@@ -61,6 +67,15 @@ public class Case {
 	public void setType(Type type) {
 		this.type = type;
 	}
+	
+	public Items getItem() {
+		return item;
+	}
+	
+	public void setItem(Items item) {
+		this.item = item;
+	}
+	
 	public String toString() {
 		if (!this.isDecouverte()) {
 			return "~ ";
diff --git a/src/main/Event.java b/src/main/Event.java
deleted file mode 100644
index d661d23d8c20f193c5083b41967c68adf65d7c03..0000000000000000000000000000000000000000
--- a/src/main/Event.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package main;
-
-public enum Event {
-	FORT;
-}
diff --git a/src/main/Main.java b/src/main/Main.java
index b087d45f528f13153643e5b917bfa39b5087ce48..f9afb918b1a1dafe86b7c651c8971f89e400292a 100644
--- a/src/main/Main.java
+++ b/src/main/Main.java
@@ -15,18 +15,23 @@ public class Main {
 				regions[i][j] = new Region();
 			}
 		}*/
-		
-		
 		int x = 11;
 		int y = 10;
+		
+
 		plateau.getCase(x, y).setUnite(new Paysant(x, y, plateau, winner));
 		Affichage.affichage(plateau);
+		while(y<30) {
 		winner.getArmee().get(0).move(deplacement());
 		System.out.println('\n');
+		winner.getArmee().get(0).teleporte();
 		Affichage.affichage(plateau);
+		}
 		Menu();
+
 		plateau.getCase(12, 0);
-		Affichage.affichage(plateau);
+		Affichage.affichage(plateau);	
+		//Menu();
 	}
 	
 	public static void Menu () {
@@ -80,10 +85,10 @@ public class Main {
 	}
 	
 	public void setWinner (Joueur winner) {
-		this.winner = winner;
+		Main.winner = winner;
 	}
 	
 	public Joueur getWinner () {
-		return this.winner;
+		return Main.winner;
 	}
 }
diff --git a/src/main/Region.java b/src/main/Region.java
index 4b9c87b60a9a005b45127bce1da81ddd540dc8ca..2bc804a88d4c3f049a8396077eb3310dc1851852 100644
--- a/src/main/Region.java
+++ b/src/main/Region.java
@@ -2,6 +2,8 @@ package main;
 
 import java.util.Random;
 
+import events.FortEvent;
+
 public class Region {
 	public Case[][] region = new Case[5][5];
 	private Joueur proprietaire = null;
@@ -27,7 +29,7 @@ public class Region {
 		}
 		int rd1 = (int)random.nextInt(5);
 		int rd2 = (int)random.nextInt(5);
-		region[rd1][rd2].setEvent(Event.FORT);
+		region[rd1][rd2].addEvents(new FortEvent());
 		region[rd1][rd2].setType(Type.FORT);
 	}
 	public void setX(int x) {
diff --git a/src/units/Archer.java b/src/units/Archer.java
index 5cc6874b6fc0f4d5f6add23a75b0054025a9e30e..83586c1e38f552b1c144fdeb7b23de971db999ef 100644
--- a/src/units/Archer.java
+++ b/src/units/Archer.java
@@ -1,6 +1,5 @@
 package units;
 
-import main.Case;
 import main.Joueur;
 import main.Plateau;
 
diff --git a/src/units/Chevalier.java b/src/units/Chevalier.java
index 1e263986754b56581a9bfef0245c32e05d449250..583bfb0bc41f78e31b160f62530e0521a9d7b8dd 100644
--- a/src/units/Chevalier.java
+++ b/src/units/Chevalier.java
@@ -1,6 +1,5 @@
 package units;
 
-import main.Case;
 import main.Joueur;
 import main.Plateau;
 
diff --git a/src/units/Eclaireur.java b/src/units/Eclaireur.java
index 4c02d3e172c8868dd8094b2b7c79a8580cc8b90b..62aaeb6e6db81bec5623ebcfdaab96da03986d49 100644
--- a/src/units/Eclaireur.java
+++ b/src/units/Eclaireur.java
@@ -1,6 +1,5 @@
 package units;
 
-import main.Case;
 import main.Joueur;
 import main.Plateau;
 
diff --git a/src/units/Paysant.java b/src/units/Paysant.java
index 518bb00745c07e573ce109b0228b53109237ed60..dd7b0ffa72146075bb23f04a61dd54d965c5d964 100644
--- a/src/units/Paysant.java
+++ b/src/units/Paysant.java
@@ -2,7 +2,6 @@ package units;
 
 import java.util.Scanner;
 
-import main.Case;
 import main.Joueur;
 import main.Plateau;
 
diff --git a/src/units/Unite.java b/src/units/Unite.java
index 6892bb48ad8093010dfee65b929bbfeeed84eca1..7b1909b25a22617fd0f355c3f914a1450f35d39b 100644
--- a/src/units/Unite.java
+++ b/src/units/Unite.java
@@ -3,9 +3,7 @@ package units;
 import java.util.Random;
 
 import items.Items;
-import main.Affichage;
 import main.Case;
-import main.Event;
 import main.Joueur;
 import main.Plateau;
 import main.Type;
@@ -118,10 +116,7 @@ public abstract class Unite {
 		if(x>=0 && x<plateau.getPlateau().length*plateau.getRegion(0, 0).region.length && y>=0 && y<plateau.getPlateau().length*plateau.getRegion(0, 0).region.length ) {
 			this.plateau.getCase(x, y).setUnite(this);
 			this.plateau.getCase(x, y).setType(Type.UNITE);
-			if(this.plateau.getCase(x, y).getEvent() == Event.FORT) {
-				this.plateau.getRegion(x, y).setProprietaire(joueur);
-				this.joueur.getRoyaume().add(this.plateau.getRegion(x, y));
-			}
+			
 			return true;
 		}
 		return false;