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