diff --git a/ElderInternalIgnition/ElderInternalIgnition.cbp b/ElderInternalIgnition/ElderInternalIgnition.cbp
index aade84276db97d4f3dcd299d5e71a8331e897e6a..d0e4cdf0a0fd05439b18c158dc02d053e6cf8d27 100644
--- a/ElderInternalIgnition/ElderInternalIgnition.cbp
+++ b/ElderInternalIgnition/ElderInternalIgnition.cbp
@@ -15,7 +15,7 @@
 					<Add option="-g" />
 				</Compiler>
 				<Linker>
-					<Add library="..\Libs\SDL-1.2.15\lib\SDL_ttf.lib" />
+					<Add library="../Libs/SDL-1.2.15/lib/SDL_ttf.lib" />
 					<Add directory="../Libs/SDL-1.2.15" />
 				</Linker>
 			</Target>
@@ -40,10 +40,10 @@
 			<Add directory="../Libs/cmocka-1.0.0/include" />
 		</Compiler>
 		<Linker>
-			<Add library="..\Libs\libroxml-2.3.0\Build\libroxml.dll" />
-			<Add library=".\..\Libs\SDL-1.2.15\bin\SDL.dll" />
-			<Add library="..\Libs\cmocka-1.0.0\lib\cmocka.dll.a" />
-			<Add library="..\Libs\SDL-1.2.15\lib\SDL_ttf.lib" />
+			<Add library="../Libs/libroxml-2.3.0/Build/libroxml.dll" />
+			<Add library="./../Libs/SDL-1.2.15/bin/SDL.dll" />
+			<Add library="../Libs/cmocka-1.0.0/lib/cmocka.dll.a" />
+			<Add library="../Libs/SDL-1.2.15/lib/SDL_ttf.lib" />
 			<Add directory="./../Libs" />
 			<Add directory="../Libs/cmocka-1.0.0/lib" />
 		</Linker>
@@ -55,17 +55,14 @@
 			<Option compilerVar="CC" />
 		</Unit>
 		<Unit filename="../src/Interface.h" />
-		<Unit filename="../src/SDL.c">
-			<Option compilerVar="CC" />
-		</Unit>
-		<Unit filename="../src/SDL.h" />
-		<Unit filename="../src/SDL_bis.c">
-			<Option compilerVar="CC" />
-		</Unit>
 		<Unit filename="../src/TerrainsXML.c">
 			<Option compilerVar="CC" />
 		</Unit>
 		<Unit filename="../src/TerrainsXML.h" />
+		<Unit filename="../src/affichage.c">
+			<Option compilerVar="CC" />
+		</Unit>
+		<Unit filename="../src/affichage.h" />
 		<Unit filename="../src/carte.c">
 			<Option compilerVar="CC" />
 		</Unit>
diff --git a/src/attaques.c b/src/attaques.c
index 90738746ac50cb3cb05600c87e4e2cd0e6c5adcc..ad94b8840e572881a56a788f967a37b3fe675b8b 100644
--- a/src/attaques.c
+++ b/src/attaques.c
@@ -5,8 +5,32 @@
 #include "structures.h"
 
 
+/*!
+ * \fn attaquer(Personnage *attaquant, Attaque *attaque_select, Personnage *cible)
+ * \brief La fonction declenche une attaque partant d'un attaquant sur une cible.
+ *
+ * \param un personnage attaquant, une attaque, un personnage cible.
+ * \return Un entier.
+ */
+int attaquer(Personnage *attaquant, Attaque *attaque_select, Personnage *cible)
+{
+    int i=0;
+    for(i=0; i<5; i++)
+    {
+        ajouter_effet(attaquant, attaque_select->effets[i], cible);
+    }
+    return 0;
+}
 
-int attaquer(Personnage *attaquant, Personnage *cible)
+
+/*!
+ * \fn int ajouter_effet_perso(Effet *effet_select, Personnage *cible)
+ * \brief La fonction ajoute un effet sur un personnage.
+ *
+ * \param Un effet, un personnage cible.
+ * \return Un entier.
+ */
+int ajouter_effet_perso(Effet *effet_select, Personnage *cible)
 {
 
 
@@ -14,10 +38,37 @@ int attaquer(Personnage *attaquant, Personnage *cible)
 }
 
 
-int appliquer_effets(Personnage *cible)
+/*!
+ * \fn int appliquer_effet(Effet *effet_select, Personnage *cible)
+ * \brief La fonction applique un effet sur un personnage.
+ *
+ * \param Un effet, un personnage cible.
+ * \return Un entier.
+ */
+int appliquer_effet(Effet *effet_select, Personnage *cible)
 {
+    (cible->PV) -= (effet_select->valeur_degats)
 
+}
+
+
+/*!
+ * \fn Effet* init_effet()
+ * \brief La fonction initialise un effet.
+ *
+ * \return Un effet.
+ */
+Effet* init_effet()
+{
+    Effet* effet_A = malloc(sizeof(Effet));
+
+    effet_A->nb_tours = 0;
+    effet_A->valeur_degats = 0;
+    effet_A->valeur_degats_duree = 0;
+    effet_A->valeur_soin = 0;
+    effet_A->valeur_soin_duree = 0;
+
+    return effet_A;
 
-    return 0;
 }
 
diff --git a/src/controleur.c b/src/controleur.c
index 88cd8f269d7cdd636301a85edbcee2331335e7bc..07b8e0b71583d38a402a33a27edd874f5b44f5ff 100644
--- a/src/controleur.c
+++ b/src/controleur.c
@@ -215,6 +215,7 @@ Case * trouverCase(Carte_Jeu * c, int x, int y){
  * \return L'indice de la classe du personnage si le Personnage a été correctement ajouté, -1 sinon.
  */
 int ajouterPersonnage(char * nomClasse, int numTab, int numJoueur){
+    Personnage * p = NULL;
     int i;
     i=0;
     //Recherche de la classe dans le Package
@@ -226,18 +227,16 @@ int ajouterPersonnage(char * nomClasse, int numTab, int numJoueur){
     }
 
     //Création du personnage
-    Personnage * p = default_personnage(i,packGlobal);
-
-    printf("La classe du personnage %d du joueur %d est %s\n", numTab+1, numJoueur, getClasse(p));
+	p = default_personnage(i,packGlobal);
 
     //Ajout du Personnage à l'équipe du Joueur
     switch (numJoueur){
     case 1:
-        setOnFirstJoueur(partieGlobale->participants);
+        setOnFirstJoueur(getListJoueur(partieGlobale));
         break;
     case 2:
-        setOnFirstJoueur(partieGlobale->participants);
-        nextJoueur(partieGlobale->participants);
+        setOnFirstJoueur(getListJoueur(partieGlobale));
+        nextJoueur(getListJoueur(partieGlobale));
         break;
     default:
         return -1;
@@ -269,6 +268,7 @@ int selectionnerCarte(char * nomCarte){
     while((strcmp(nomCarte,packGlobal.Cartes_Package[i].nom)!=0)&&(i<nbCartes())){
         i++;
     }
+
     if(i>=nbCartes()){
         return 0;
     }
@@ -276,22 +276,26 @@ int selectionnerCarte(char * nomCarte){
     if(initCarte(&packGlobal.Cartes_Package[i],getCarte(partieGlobale),&packGlobal)==0){
         return 0;
     }
-    printf("la carte selectionnee est %s\n",nomCarte);
+    return 1;
+}
+
+void initPositions(){
     // Positionnement des Personnages sur la Carte_Jeu.
-    setOnFirstJoueur(partieGlobale->participants);
+    int i;
+
+    setOnFirstJoueur(getListJoueur(partieGlobale));
 
     for(i=0;i<TAILLE_MAX_GROUPE;i++){
-        printf("test1\n");
-        setPosition(getCurrentJoueur(partieGlobale->participants)->groupe[i],&partieGlobale->c->Tab_Cases[6+i][0]); //le probleme est ici
-        printf("test2\n");
+        setPosition(getPersonnage(getCurrentJoueur(getListJoueur(partieGlobale)),i),&partieGlobale->c->Tab_Cases[6+i][0]);
     }
-    nextJoueur(partieGlobale->participants);
+    nextJoueur(getListJoueur(partieGlobale));
     for(i=0;i<TAILLE_MAX_GROUPE;i++){
-        setPosition(getCurrentJoueur(partieGlobale->participants)->groupe[i],&partieGlobale->c->Tab_Cases[6+i][HAUT_MAX_CARTE-1]);
+        setPosition(getPersonnage(getCurrentJoueur(getListJoueur(partieGlobale)),i),&partieGlobale->c->Tab_Cases[6+i][HAUT_MAX_CARTE-1]);
     }
-    return 1;
 }
 
 
 
 
+
+
diff --git a/src/controleur.h b/src/controleur.h
index ab085f7f5dd99cc3ae61841aa7e5fa0735c63355..308acd0efa316f3a41ba34fb6b0d3c2dea0a1b79 100644
--- a/src/controleur.h
+++ b/src/controleur.h
@@ -27,6 +27,7 @@ Case * trouverCase(Carte_Jeu * c, int x, int y);
 int ajouterPersonnage(char * nomClasse, int numTab, int numJoueur);
 
 int selectionnerCarte(char * nomCarte);
+void initPositions();
 
 
 #endif // CONTROLEUR_H
diff --git a/src/joueur.c b/src/joueur.c
index 58c5f362254ebc2f145207d8780d6f68050a4812..e9cb79cbcf495b4960d62f12b5156c4fc28a6178 100644
--- a/src/joueur.c
+++ b/src/joueur.c
@@ -65,7 +65,7 @@ void setNomJoueur(Joueur * j, char * nom){
  * \return Un pointeur vers le Personnage du Joueur a l'indice i dans le tableau groupe, NULL si l'indice n'est pas dans le tableau.
  */
 Personnage * getPersonnage(Joueur * j, int i){
-    if(i<TAILLE_MAX_GROUPE-1){
+    if(i<TAILLE_MAX_GROUPE){
         return j->groupe[i];
     }
     return NULL;
diff --git a/src/main.c b/src/main.c
index df8557a1c87701596aa20794fe8a97adc0b9e9ef..05e62718100d9de49e05ceab7e4b5d6817e4b021 100644
--- a/src/main.c
+++ b/src/main.c
@@ -10,6 +10,8 @@
 #include "carte.h"
 #include "Interface.h"
 #include "gamePackage.h"
+#include "joueur.h"
+#include "partie.h"
 
 
 /*!
@@ -87,8 +89,6 @@ int main(void)
 {
 
 //init_jeu("../resources/Init_jeu.xml");
-
-
     initJeu();
     //saisie_noms_joueurs(); /*lance le jeu à l'ecran "entrer nom joueur 1"*/
     affichage_ecran_accueil(); /*lance le jeu direct à l'ecran de lancement, sans rentrer les noms des joueurs*/