diff --git a/client/src/afficher.js b/client/src/afficher.js
index a9b1e7a25b44cd4a7db424d950b08ffe6d9a9ca3..1f94850d15ba651a6f03fb2e063fc5c11e6b8cee 100644
--- a/client/src/afficher.js
+++ b/client/src/afficher.js
@@ -2,28 +2,35 @@ import setHtml from './setHtml.js';
 import { Coordinate } from './Coordinate.js';
 
 export default class Afficher {
-	static afficherCredits(event) {
+	gameStarted;
+
+	constructor() {
+		this.gameStarted = false;
+	}
+
+	afficherCredits(event) {
 		event.preventDefault();
 		document.querySelector('.divMain').innerHTML = setHtml.credits();
 		console.log(document.querySelector('.retourMenu'));
 		document
 			.querySelector('.retourMenu')
-			.addEventListener('click', Afficher.afficherMenu);
+			.addEventListener('click', this.afficherMenu);
 	}
 
-	static afficherMenu(event) {
+	afficherMenu(event) {
 		event.preventDefault();
 		console.log('afficherMenu');
 		document.querySelector('.divMain').innerHTML = setHtml.menu();
 		document
 			.querySelector('.buttonStart')
-			.addEventListener('click', Afficher.startGame);
+			.addEventListener('click', this.startGame);
 		document
 			.querySelector('.credits')
-			.addEventListener('click', Afficher.afficherCredits);
+			.addEventListener('click', this.afficherCredits);
 	}
 
-	static afficherFinDePartie() {
+	afficherFinDePartie() {
+		this.gameStarted = false;
 		canvas.style.display = 'none';
 		document.querySelector('.animation').style.display = '';
 		document.querySelector('.divMain').innerHTML = setHtml.finDePartie(
@@ -32,11 +39,11 @@ export default class Afficher {
 		);
 		document
 			.querySelector('.retourMenu')
-			.addEventListener('click', Afficher.afficherMenu);
-		return false;
+			.addEventListener('click', this.afficherMenu);
 	}
 
-	static startGame(event) {
+	startGame(event) {
+		this.gameStarted = true;
 		event.preventDefault();
 		const canvas = document.querySelector('.gameCanvas');
 		canvas.style.display = '';
@@ -45,4 +52,8 @@ export default class Afficher {
 		const canvasSize = new Coordinate(canvas.clientWidth, canvas.clientHeight);
 		return canvasSize;
 	}
+
+	isGameStarted() {
+		return this.gameStarted;
+	}
 }
diff --git a/client/src/main.js b/client/src/main.js
index a088235db4223566643c97c8e6bf7df86a7ca2af..48b7ddc033836f6c5f4c498e94a392873d26b30e 100644
--- a/client/src/main.js
+++ b/client/src/main.js
@@ -9,6 +9,8 @@ const socket = io();
 let min = 0;
 let sec = 0;
 let renderObject = new Render();
+const affichage = new Afficher();
+let gameStarted = false;
 
 const canvas = document.querySelector('.gameCanvas');
 const context = canvas.getContext('2d');
@@ -30,13 +32,18 @@ setInterval(function () {
 	});
 }, 1000);
 
+setInterval(() => {
+	socket.emit('start', gameStarted);
+}, 1000 / 16);
+
 document.querySelector('.buttonStart').addEventListener('click', startGame);
 document
 	.querySelector('.credits')
-	.addEventListener('click', Afficher.afficherCredits);
+	.addEventListener('click', affichage.afficherCredits);
 
 function startGame(event) {
-	const canvasSize = Afficher.startGame(event, socket, canvas);
+	gameStarted = true;
+	const canvasSize = affichage.startGame(event, socket, canvas);
 	socket.emit('canvasSize', canvasSize);
 }
 
@@ -72,51 +79,55 @@ let newBonus = [];
 function render() {
 	context.clearRect(0, 0, canvas.width, canvas.height);
 	renderObject.renderBackground(canvas);
-	context.font = '40pt New Super Mario Font U';
-	for (let i = 1; i < avatars.length; i++) {
-		if (avatars[i] != undefined) {
-			renderObject.renderScores(i, avatars[i], context);
-			renderObject.renderVies(avatars, context, i);
+	gameStarted = affichage.isGameStarted();
+	console.log(gameStarted);
+	if (gameStarted) {
+		context.font = '40pt New Super Mario Font U';
+		for (let i = 1; i < avatars.length; i++) {
+			if (avatars[i] != undefined) {
+				renderObject.renderScores(i, avatars[i], context);
+				renderObject.renderVies(avatars, context, i);
+			}
 		}
-	}
 
-	context.fillStyle = 'blue';
+		context.fillStyle = 'blue';
 
-	context.fillText(0 + ':' + min + ':' + sec, canvas.width / 2, 50);
+		context.fillText(0 + ':' + min + ':' + sec, canvas.width / 2, 50);
 
-	for (let avatarId in avatars) {
-		renderObject.renderProjectile(context, avatar, avatars, avatarId);
 		for (let avatarId in avatars) {
 			renderObject.renderProjectile(context, avatar, avatars, avatarId);
+			for (let avatarId in avatars) {
+				renderObject.renderProjectile(context, avatar, avatars, avatarId);
+			}
+			socket.on('bonusArray', data => {
+				newBonus = data;
+			});
+			newBonus.forEach(bonus => {
+				let img = new Image();
+				img.src = bonusImages[bonus.choix];
+				img.width = 75;
+				img.height = 75;
+				draw(canvas, context, img, bonus.x, bonus.y);
+			});
+			socket.on('enemis', data => {
+				newEnemis = data;
+			});
+			newEnemis.forEach(enemi => {
+				renderObject.renderEnnemi(canvas, context, enemi.x, enemi.y, enemi);
+			});
+			socket.on('bonusArray', data => {
+				newBonus = data;
+			});
+			newBonus.forEach(bonus => {
+				renderObject.renderBonus(
+					canvas,
+					context,
+					bonusImages[bonus.choix],
+					bonus.x,
+					bonus.y
+				);
+			});
 		}
-		socket.on('bonusArray', data => {
-			newBonus = data;
-		});
-		newBonus.forEach(bonus => {
-			let img = new Image();
-			img.src = bonusImages[bonus.choix];
-			img.width = 75;
-			img.height = 75;
-			draw(canvas, context, img, bonus.x, bonus.y);
-		});
-		socket.on('enemis', data => {
-			newEnemis = data;
-		});
-		newEnemis.forEach(enemi => {
-			renderObject.renderEnnemi(canvas, context, enemi.x, enemi.y, enemi);
-		});
-		socket.on('bonusArray', data => {
-			newBonus = data;
-		});
-		newBonus.forEach(bonus => {
-			renderObject.renderBonus(
-				canvas,
-				context,
-				bonusImages[bonus.choix],
-				bonus.x,
-				bonus.y
-			);
-		});
 	}
 
 	requestAnimationFrame(render);
diff --git a/client/src/render.js b/client/src/render.js
index eb984ac02c0c7b12cd543af68d7b4fcf4a925d61..6364ba3a242567453e80ae2f8cc9ed5b1869c943 100644
--- a/client/src/render.js
+++ b/client/src/render.js
@@ -7,10 +7,12 @@ export default class Render {
 	imageCoeur;
 	imageMortier;
 	background;
+	imageEnemi3;
 
 	constructor() {
 		this.imageEnemi = new Image();
 		this.imageEnemi2 = new Image();
+		this.imageEnemi3 = new Image();
 		this.imageProjectile = new Image();
 		this.imageCoeur = new Image();
 		this.imageMortier = new Image();
@@ -18,6 +20,7 @@ export default class Render {
 		this.imageProjectile.src = '/images/bill.png';
 		this.imageEnemi.src = '/images/koopa.png';
 		this.imageEnemi2.src = '/images/bob_omb.png';
+		this.imageEnemi3.src = '/images/boo.png';
 		this.imageMortier.src = '/images/mortier.png';
 		this.background.src = '/images/background2.webp';
 	}
@@ -36,6 +39,8 @@ export default class Render {
 			draw(canvas, context, this.imageEnemi, x, y);
 		} else if (enemi.difficulté == 2) {
 			draw(canvas, context, this.imageEnemi2, x, y);
+		} else if (enemi.difficulté == 3) {
+			draw(canvas, context, imageEnemi3, x, y);
 		}
 	}
 
diff --git a/server/index.js b/server/index.js
index 9926c8807ca782dbc8c18665d33e854952c61b8c..20ba3aff9c3396f330f968eeff6df7c6cbf5c304 100644
--- a/server/index.js
+++ b/server/index.js
@@ -70,6 +70,7 @@ io.on('connection', socket => {
 		});
 
 		socket.on('start', s => {
+			console.log(s);
 			if (s == true && cpt != 0) {
 				gameStarted = s;
 			} else if (cpt == 0) {