diff --git a/app/controller/PartieController.php b/app/controller/PartieController.php
index f7456240287f4ef559c44fdd502c4052c5d0455c..44045d375a332e655a9e35516a14a47a13464289 100644
--- a/app/controller/PartieController.php
+++ b/app/controller/PartieController.php
@@ -43,6 +43,7 @@ class PartieController extends Controller
 
         $this->view->jeuactuel = $_SESSION['jeu_select'];
         $this->view->listej = Profil::getList();
+        $this->view->equipes = $_SESSION['equipes'];
         $this->view->display();
     }
 
@@ -56,6 +57,7 @@ class PartieController extends Controller
 
         $this->view->jeuactuel = $_SESSION['jeu_select'];
         $this->view->listejactuel = $_SESSION['joueurs_select'];
+        $this->view->equipes = $_SESSION['equipes'];
         $this->view->display();
     }
     
@@ -182,6 +184,10 @@ class PartieController extends Controller
         }
 
         unset($_SESSION['equipes'][$_POST['equipe']]);
+        $equipe_tmp = array();
+        foreach ($_SESSION['equipes'] as $e)
+            array_push($equipe_tmp, $e);
+        $_SESSION['equipes'] = $equipe_tmp;
         header("Location:stepe1");
     }
 
@@ -202,20 +208,54 @@ class PartieController extends Controller
         session_start();
         if(!isset($_SESSION['jeu_select']))
             header("Location:../add_partie");
-        if(!isset($_SESSION['joueurs_select']))
-            header("Location:step1");
-
         $jeu_actuel = $_SESSION['jeu_select'];
-        $joueurs = $_SESSION['joueurs_select'];
-        if (count($joueurs) < $jeu_actuel->min_joueurs){
-            echo "<h1>Erreur : il n'y a pas assez de joueurs.</h1>";
-            die();
+        if ($jeu_actuel->type = 'equipes'){
+            if(!isset($_SESSION['equipes']))
+                header("Location:stepe1");
+            $equipes = $_SESSION['equipes'];
+            if (count($equipes) < $jeu_actuel->min_equipes){
+                echo "<h1>Erreur : il n'y a pas assez d'équipes.</h1>";
+                die();
+            }
+            if (count($equipes) > $jeu_actuel->max_equipes){
+                echo "<h1>Erreur : il y a trop d'équipes.</h1>";
+                die();
+            }
+
+            foreach ($equipes as $ke => $e){
+                if (count($e) < $jeu_actuel->min_joueurs){
+                    $ke = $ke+1;
+                    echo "<h1>Erreur : il n'y a pas assez de joueurs dans l'équipe $ke.</h1>";
+                    die();
+                }
+                if (!is_null($jeu_actuel->max_joueurs)){
+                if (count($e) > $jeu_actuel->max_joueurs){
+                    $ke = $ke+1;
+                    echo "<h1>Erreur : il y a trop de joueurs dans l'équipe $ke.</h1>";
+                    die();
+                }
+                }
+            }
+
+            header("Location:stepe2");
         }
-        if (count($joueurs) > $jeu_actuel->max_joueurs){
-            echo "<h1>Erreur : il y a trop de joueurs.</h1>";
-            die();
+        else{
+            if(!isset($_SESSION['joueurs_select']))
+                header("Location:step1");
+            $joueurs = $_SESSION['joueurs_select'];
+            if (count($joueurs) < $jeu_actuel->min_joueurs){
+                echo "<h1>Erreur : il n'y a pas assez de joueurs.</h1>";
+                die();
+            }
+            if (count($joueurs) > $jeu_actuel->max_joueurs){
+                echo "<h1>Erreur : il y a trop de joueurs.</h1>";
+                die();
+            }
+            header('Location:step2');
         }
-        header('Location:step2');
+
+
+
     }
 
 
@@ -223,8 +263,16 @@ class PartieController extends Controller
         session_start();
         if(!isset($_SESSION['jeu_select']))
             header("Location:../add_partie");
+
+        $jeu = $_SESSION['jeu_select'];
+        if ($jeu->type = 'equipes') {
+            if (!isset($_SESSION['equipes']))
+                header("Location:stepe1");
+        }
+        else{
         if(!isset($_SESSION['joueurs_select']))
             header("Location:../add_partie/step1");
+        }
 
         if(!isset($_POST['scores'])) {
             //appeler une fonction d'erreur
@@ -239,8 +287,35 @@ class PartieController extends Controller
                 die();
             }
         }
-        $jeu = $_SESSION['jeu_select'];
-        $joueurs = $_SESSION['joueurs_select'];
+        if ($jeu->type = 'equipes') {
+            $equipes = $_SESSION['equipes'];
+            $ns = count($scores);
+            $nj = count($equipes);
+            if ($ns != $nj){
+                //appeler une fonction d'erreur
+                echo "<h1>Erreur : scores et joueurs incohérents</h1>";
+                die();
+            }
+
+            $pb = Partie::addPartie($equipes, $scores, $jeu);
+            if(!$pb) {
+                unset($_SESSION['equipes']);
+                unset($_SESSION['jeu_select']);
+                header('Location:valid'); // Redirection vers la page OK
+            }
+            switch ($pb) {
+                case 2:
+                    echo "<h1>Erreur de connexion à la BD.</h1>";
+                    die();
+                    break;
+                default:
+                    echo "<h1>Erreur non gérée.</h1>";
+                    die();
+                    break;
+            }
+        }
+        else{
+            $joueurs = $_SESSION['joueurs_select'];
         $ns = count($scores);
         $nj = count($joueurs);
         if ($ns != $nj){
@@ -264,5 +339,6 @@ class PartieController extends Controller
                 die();
                 break;
         }
+        }
     }
 }
\ No newline at end of file
diff --git a/app/model/Partie.php b/app/model/Partie.php
index 1b87a0f492cda73253824dadc0dfa2bfabb2ce75..610cebc52bac597034560a254deedf6d23a4a14a 100644
--- a/app/model/Partie.php
+++ b/app/model/Partie.php
@@ -107,47 +107,93 @@ class Partie extends Model
             $stmt2->execute(array(":id_jeu" => $jeu->slug, ":date" => $datestr));
             $id_partie = $stmt2->fetch()['id'];
 
-            $m = count($joueurs);
+            $m = count($scores);
 
             $old_score = array_fill(0, $m, 0);
-
-            for ($j = 0; $j < $m; $j++) {
-                // récupération du score actuel de chaque joueur
-                if ($stmt3->execute(array(":id_joueur" => $joueurs[$j]->slug, ":id_jeu" => $jeu->slug))) {
+            $old_score_e = array();
+            foreach ($joueurs as $k => $joueur){
+                // version avec équipes
+                if ($jeu->type == 'equipes'){
+                    $old_score_e[$k] = array();
+                    foreach ($joueur as $kj => $j){
+                        if ($stmt3->execute(array(":id_joueur" => $j->slug, ":id_jeu" => $jeu->slug))) {
+                            if ($row = $stmt3->fetch()) {
+                                // Le joueur a déja joué à ce jeu
+                                $old_score_e[$k][$kj]= $row[0];
+                            } else {
+                                // ou le joueur n'a jamais joué à ce jeu, on je rajoute à la relation.
+                                $old_score_e[$k][$kj]= 1000;
+                                $stmtN = $db->prepare($sqlN);
+                                if ($stmtN->execute(array(":id_joueur" => $j->slug, ":id_jeu" => $jeu->slug, ":score" => 1000))) {
+
+                                } else
+                                    return 2;
+                            }
+                            $old_score[$k] = array_sum($old_score_e[$k])/count($old_score_e[$k]);
+                        }
+                    }
+                }
+                else{
+                    // récupération du score actuel de chaque joueur
+                if ($stmt3->execute(array(":id_joueur" => $joueur->slug, ":id_jeu" => $jeu->slug))) {
                     if ($row = $stmt3->fetch()) {
                         // Le joueur a déja joué à ce jeu
-                        $old_score[$j] = $row[0];
+                        $old_score[$k] = $row[0];
                     } else {
                         // ou le joueur n'a jamais joué à ce jeu, on je rajoute à la relation.
-                        $old_score[$j] = 1000;
+                        $old_score[$k] = 1000;
                         $stmtN = $db->prepare($sqlN);
-                        if ($stmtN->execute(array(":id_joueur" => $joueurs[$j]->slug, ":id_jeu" => $jeu->slug, ":score" => 1000))) {
+                        if ($stmtN->execute(array(":id_joueur" => $joueur->slug, ":id_jeu" => $jeu->slug, ":score" => 1000))) {
 
                         } else
                             return 2;
                     }
 
                 }
+                }
             }
-            // Calcul de la nouvelle différence de scores et du nouveau classement de chacun
+            // Calcul de la nouvelle différence de scores et du classement de chacun dans la partie
             $diff_scores = ELO_scores($old_score, $scores, 32);
             $classement = self::calcul_classement($diff_scores);
-            for ($j = 0; $j < $m; $j++) {
-                // Insertion des infos de la partie (avec le score avant la partie et le classement interne à la partie)
-                // pour chaque joueur
-                if ($stmt4->execute(array(":partie" => $id_partie,
-                    ":joueur" => $joueurs[$j]->slug,
-                    ":classement" => $classement[$j], ":score" => $old_score[$j]))
-                ) {
-                    $newS = $old_score[$j] + $diff_scores[$j];
-                    // On met à jour le score du joueur actuel dans sa relation avec le jeu
-                    if ($stmt5->execute(array(":new_score" => $newS,
-                        ":id_jeu" => $jeu->slug, ":id_joueur" => $joueurs[$j]->slug))
+            print_r($joueurs);
+            print_r($old_score_e);
+            foreach ($joueurs as $k => $joueur) {
+                if ($jeu->type == 'equipes') {
+                    foreach ($joueur as $kj => $j){
+                        // Insertion des infos de la partie (avec le score avant la partie et le classement interne à la partie)
+                        // pour chaque joueur
+                        if ($stmt4->execute(array(":partie" => $id_partie,
+                            ":joueur" => $j->slug,
+                            ":classement" => $classement[$k], ":score" => $old_score_e[$k][$kj]))
+                        ) {
+                            $newS = $old_score[$k][$kj] + $diff_scores[$k];
+                            // On met à jour le score du joueur actuel dans sa relation avec le jeu
+                            if ($stmt5->execute(array(":new_score" => $newS,
+                                ":id_jeu" => $jeu->slug, ":id_joueur" => $j->slug))
+                            ) {
+                            } else
+                                return 2;
+                        } else
+                            return 2;
+                    }
+                }
+                else {
+                    // Insertion des infos de la partie (avec le score avant la partie et le classement interne à la partie)
+                    // pour chaque joueur
+                    if ($stmt4->execute(array(":partie" => $id_partie,
+                        ":joueur" => $joueur->slug,
+                        ":classement" => $classement[$k], ":score" => $old_score[$k]))
                     ) {
+                        $newS = $old_score[$k] + $diff_scores[$k];
+                        // On met à jour le score du joueur actuel dans sa relation avec le jeu
+                        if ($stmt5->execute(array(":new_score" => $newS,
+                            ":id_jeu" => $jeu->slug, ":id_joueur" => $joueur->slug))
+                        ) {
+                        } else
+                            return 2;
                     } else
                         return 2;
-                } else
-                    return 2;
+                }
             }
         } else
             return 2;
diff --git a/app/view/Partie/displayStepe1.html b/app/view/Partie/displayStepe1.html
index c6ce500781889321576b9e2d664e8db2522dcda6..f133dc1ececaac7a67da0b61b330b8a24de976d6 100644
--- a/app/view/Partie/displayStepe1.html
+++ b/app/view/Partie/displayStepe1.html
@@ -10,7 +10,7 @@
 
         Jeu : <?php echo $jeuactuel->nom; ?><br/>
         Équipes :<br/>
-        <?php foreach($_SESSION['equipes'] as $ke => $e) { ?>
+        <?php foreach($this->equipes as $ke => $e) { ?>
         <h4>Équipe <?php echo $ke+1; ?> </h4>
         <ul>
             <?php
@@ -33,7 +33,7 @@
             </form>
             <form method="post" action="delequipe">
                 <input type="hidden" value="<?php echo $ke;?>" name="equipe"/>
-                <input type="submit" name="submit" value="Supprimer l'équipe <?php echo $ke;?>"/>
+                <input type="submit" name="submit" value="Supprimer l'équipe <?php echo $ke+1;?>"/>
             </form>
         </ul>
         <?php } ?>
diff --git a/app/view/Partie/displayStepe2.html b/app/view/Partie/displayStepe2.html
index c63162b2667e78aed4ea9a9e21f620a174a88cb8..fdfd21d90b1e67bf10b4369906da695911810f4c 100644
--- a/app/view/Partie/displayStepe2.html
+++ b/app/view/Partie/displayStepe2.html
@@ -9,23 +9,28 @@
         <div class="addjeu-form">
 			<form method="post" action="verifystep2">
                 Jeu : <?php echo $jeuactuel->nom; ?><br />
-                Joueurs :
+                Équipes :<br/>
+                <?php foreach($this->equipes as $ke => $e) { ?>
+                <h4>Équipe <?php echo $ke+1; ?> </h4>
                 <ul>
-                    <?php foreach($this->listejactuel as $joueur){ ?>
-                    <li><?php echo $joueur->pseudo; ?> Score obtenu : <input type="text" title="score" name="scores[]" /></li>
+                    <?php
+                    foreach($e as $k => $j){ ?>
+                    <li>
+                        <?php echo $j->pseudo; ?>
+                    </li>
                     <?php } ?>
                 </ul>
-                <br />
-				<div class="submit">
-
-					<input type="reset" name="reset" value="Réinitialiser" />
-					<input type="submit" name="submit" value="Demander l'ajout" />
-				</div>
-			</form>
-            <form action="step1">
-                <input type="submit" name="submit" value="Étape précédente" />
-            </form>
-		</div>
-	</article>
+                Score obtenu : <input type="text" title="score" name="scores[]" />
+                <?php } ?>
+                    <div class="submit">
+                        <input type="reset" name="reset" value="Réinitialiser"/>
+                        <input type="submit" name="submit" value="Demander l'ajout"/>
+                    </div>
+                </form>
+                <form action="../add_partie/stepe1">
+                    <input type="submit" name="submit" value="Étape précédente"/>
+                </form>
+        </div>
+    </article>
 
 <?php include(ROOT."/app/view/Includes/footer.include.html"); ?>