From 6be4ec8dd70c8ad7d361440110154b223e80299f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lo=C3=AFc=20Dubard?= <loic.dubard@ensiie.fr>
Date: Thu, 13 Dec 2018 11:52:24 +0100
Subject: [PATCH] les pions se changent en dames

---
 obj/tableau.o     | Bin 12224 -> 12320 bytes
 src/action.c      |   1 +
 src/deplacement.c |  11 ++++++++---
 src/deplacement.h |   2 +-
 src/tableau.c     |   3 ++-
 5 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/obj/tableau.o b/obj/tableau.o
index 027dc8c836c88017f7982e6db3e3d954953bd888..9dea15b060e0c76b8877c7f9c61179e67598b2ac 100644
GIT binary patch
delta 1885
zcmZ`(Uuaup6#vfca+@^izhuqb&C-RdTbnd(vb{7$G-+|OvAD5`Nc-Z_b<(sh(9v~H
zL1U3sN}V(u7*qr;?4fEOD)(hfp&bZw;FAw(g^2?nWbUDT>%**m=YHQ;(#v`v-<NaF
z@Ao_Bp6|PN{rs23g*g0KP5cr6=&`pj_x^Ta{?vA1?%v;w+x7KnpX1N7f9eZ2JQTZc
z2jK&c#u(nvEnL-4!-Tz~_t!xM`x>lbCGv9}V_J16c!oixW0W(r>g%n<gi5z?&xXbs
z%+w3#QfPuZKH-!?Z*#{loQq8N{#M8M+RN92j>Ht+ZHT=v)kYCsMCeXMtD+3)PVeeo
zDNi!E+Hl-~7FnAkP{ydgJzkE@I}E4Ga_6X^2RXf*`t$%v7lOR4GLHD$pos7IW0m3|
zS(A!f*jr@ORb)`7T4eovP-O6VoKH`*J6JoSK~<c_@T!uP&E|G>ma#1mdM+2P8E)<w
z*)}!Qr<f$ur=}@oGFS{8Zp{Q~m|C^OTAYr$@RL9cx^N{BvwHku9;J{ov~)lXO)6OU
zIB@ty>!45=3chve3InTMkj@&8-m`KDN<UIhX=N$<WaCLqo6zyZp)g#vmzq;xdcX7N
zcRcM(I{<^8qhf0w_Q16LYs+m9E`&=>DH7;!YMIquYShPV-FT$6Ix!v|;J+XPwuuli
zpcl<Z+Pn!wU@Rdvc7gANS;LWtVUEe;P{(pjW|y(b6&~PMTp{aRbH+|fg>NKg*52Zn
zSALOUeoLJ5eDa^LM>0+oNI}JQ*%0Ar@G3rtR@5-B*JSB}s_Y7$<5{n4m$>1YYyoGY
z2EUhltt?86s=FimS*qcNYPdhR@Uj8+(?0k*erd>*KJ`N87x4<CKy87Xi%{>t8GBjA
z-T2Ece1pWlyAS@>9(;wdMoC!Nhp@AUAWnfOx_lIOLnmZhJuy8TS@vo8i+tQ~xCnGq
zWN$u=!0~e~yeZ(Ux)0vM>Jh`dC-0?d>y%{ui+6ceeJb49Gq`ocfFau#`&frrtR6cL
zS=>4{z%P5YBMr+q&et(q>==MGe8|_EnCMKKz4BUY$fD$u^lNyzGYy;eQs)?$o3evj
zawh=&deKT4yKmxOuIw6~<5~449+ia@cNu4R_JN#4$(7CGw+RDg?fZO%34GX<@p+>{
z{~B7!jP|wjeZk3OT>V{5#$gpVl6iQ7W_KPw#NqC|=4ryux^u9A8$9$Qnmu{ndb1FE
z4@Y`3u#Jm7d3YW-`1%E!sl4`mm_A)NnTo?YF7iN20)J2C_-kmU^H9Lybl!KoOK7a(
HNHX?6cN2hY

delta 1772
zcmZ`(U1$_n6uxKTZnD`;%<d*Tna!HXN}KGun_Yb{F|F&cSjmr#DEQz*OQJ^H)wM`S
zp$j!XC>2>+UCu*W=!1kpOIxURUg}emN1@QPc~K~(fwo`;!MCOq>^XDqgk*3J%)N8&
z`Of#9Idkv5JH0Y>Ck2c3^l!mi*Zvu+9ivCQZRcU$hu`^oLEumR6EJD_HW!;<9;aKA
z)AR9PnuO5mXCfyA%=e!c?3@nML~d5PC!=Kni_OxhL@$vOkWMLjnVg_>W`w`xQInu?
zh{jHbViq@A&BL=@yh0+9cQ#R%GR!--#XEQ9s(^P}_dC#O(d7_S@NjTXs$$lh45!M<
zz<HS-q4Y}bqg_lr7NN2#xD@PyDf~ESE=+YRO%^%3Q{<dSWZchMY(-7Z@L9?yge-S_
zdyB?hac;wLmsS;9*y8yT4~C+L3bAd?E$mfgb3vAy$uySRO+_<=i=m$IP=uSQ)k~s-
zYl1X>6EbQ1F=QsQLD`Q|)M;8S<Tgz)^kJy2r_k3a8O}s5ROSTq?U6|*b%$@SYC=i<
zs(3SpT?^YYZEtAWq#w_A$KZm!x;qCg!Rx-rgbxaKOZa;q{tzp-I~^*vcYL57ZS%ir
z59xnvVP}naM(K$N5bJm#u7iQ&@w`z5DUen==M-ic>v7$fP~CU`!h0%O!&PEf!N<gq
zp#Q=)DJStY&8$+klRY}X6HF#_7{sN7Zj_W5Z4jp~|GkiQ8}C!}>9%N$5N<Ss8^myw
z$A$M*K|Hapi@BlJnK`;`{R<CX3BLHY0sb!!Ub*6#d|41)fh27SHjZ;asu?1!*1h=C
z9()TYlfBgde{%<ZL5QHli`xwnHg+Tk(XQ}M8sIy*LNfOQ+|80u>pMPRhWa<+NpS8J
zA}GErf$$X%-r4MgpKE~Mh0l9+<15ujx2$7aBiZkmG<74X&b2ps08g1Zyl$7xn|>(c
z^H--Jfv5UMX{&zPpNASgq;Uc_X=NFU1EWyITLXE+P&@Cj5@naE58}@Qd04k0brFnp
zmM8mMP7Z)U1}>%bt#kB;C%TOHDe9i1SCkOv@l(SMims?mxW~hdCNR8Dhq9ff5hk&i
z84f(^k^E!0lo{4ObS?v2%cR`bj%*6<;7HbjU$IJKA3n%h+MjLsZ}tdW#gRb^N?0AV
z0(W;yqB5=y4#Ow7Ns$1K<Scjxt2s-n#rU4VwH)(p(!#wIzLq}%`>~q0pc^0Lt-zYP
KH16SQ#{3`I%3>b?

diff --git a/src/action.c b/src/action.c
index bff6689..e81d3ae 100644
--- a/src/action.c
+++ b/src/action.c
@@ -29,6 +29,7 @@ void realiser(char action,pile **tableau,int N,char *cases,int *tour)
       scanf("%1s",&c);
       if (c == 'y'){
         printf("\n Vous allez quitter le jeu");
+        printf("La partie est finie\n les %c ont gagné !","BN"[*tour%2+1]);
         nettoyer(tableau,N);
         exit(0);
       }
diff --git a/src/deplacement.c b/src/deplacement.c
index e38f926..245691d 100644
--- a/src/deplacement.c
+++ b/src/deplacement.c
@@ -78,7 +78,7 @@ void case_destination(pile **tableau,int N,int i_src,int j_src, int *i_dest,int
         tmp=tmp->next;
       }
       if (valide){
-        effectuer(tableau,i_src,j_src,*i_dest,*j_dest,nb,*tour);
+        effectuer(tableau,N,i_src,j_src,*i_dest,*j_dest,nb,*tour);
         *tour=*tour+1;
       } else {
         printf("Déplacement illégal pour au moins un pion de la pile");
@@ -104,7 +104,7 @@ int pions(pile **tableau,int N,int i_src,int j_src,int i_dest,int j_dest,int tou
       return 1;
     if (i_dest==i_src+k+k && longueur_pile(tableau[i_src+k][j_src])==0){
       if (k<0 && i_src==N-2) return 1;
-      else if (k>0 && i_src==2) return 1;
+      else if (k>0 && i_src==1) return 1;
     }
   } else if (i_dest==i_src+k && (j_dest==j_src+1 || j_dest==j_src-1)){
     return 1;
@@ -219,7 +219,7 @@ int cavaliers(pile **tableau,int i_src,int j_src,int i_dest,int j_dest)
   return 0;
 }
 
-void effectuer(pile **tableau,int i_src,int j_src, int i_dest,int j_dest,int nb,int tour)
+void effectuer(pile **tableau,int N,int i_src,int j_src, int i_dest,int j_dest,int nb,int tour)
 {
   pile p;
   int i;
@@ -230,5 +230,10 @@ void effectuer(pile **tableau,int i_src,int j_src, int i_dest,int j_dest,int nb,
     reset(tableau[i_dest]+j_dest);
   for (i=0 ; i<nb ; i++){
     empiler(tableau[i_dest]+j_dest,depiler(&p));
+    if (sommet(tableau[i_dest][j_dest])[0]=='P' && (i_dest==N-1 || i_dest==0)) {
+      depiler(tableau[i_dest]+j_dest);
+      if (tour%2==0) empiler(tableau[i_dest]+j_dest,"DB");
+      else empiler(tableau[i_dest]+j_dest,"DN");
+    }
   }
 }
diff --git a/src/deplacement.h b/src/deplacement.h
index 00349c8..d6c3a3d 100644
--- a/src/deplacement.h
+++ b/src/deplacement.h
@@ -71,5 +71,5 @@ int cavaliers(pile ** tableau,int i_src,int j_src,int i_dest,int j_dest);
  * @assign
  * @ensure : effectue le déplacement d'une pile de pion d'une case vers une autre
  */
-void effectuer(pile **tableau,int i_src, int j_src,int i_dest, int j_dest,int nb,int tour);
+void effectuer(pile **tableau,int N,int i_src, int j_src,int i_dest, int j_dest,int nb,int tour);
 #endif
diff --git a/src/tableau.c b/src/tableau.c
index 054277e..eac0282 100644
--- a/src/tableau.c
+++ b/src/tableau.c
@@ -25,7 +25,8 @@ int est_vide(pile p)
 
 char *sommet(pile p)
 {
-  return p.sommet->chaine;
+  if (!est_vide(p)) return p.sommet->chaine;
+  else return "\0";
 } 
 
 
-- 
GitLab