From 6a4eae761977df8a73b22ab8d97c30ad1d43ae34 Mon Sep 17 00:00:00 2001 From: M'Henni Adem Date: Tue, 17 Dec 2024 22:26:10 +0100 Subject: [PATCH] Partie 1 SAE termine --- BatailleNavale.c | 254 ++++++++++++++++++++++++++++++++++++++++++++++- BatailleNavale.o | Bin 20344 -> 20424 bytes 2 files changed, 249 insertions(+), 5 deletions(-) diff --git a/BatailleNavale.c b/BatailleNavale.c index bca1298..d9716ec 100644 --- a/BatailleNavale.c +++ b/BatailleNavale.c @@ -1,22 +1,266 @@ #include"biblioNavale.h" #include #include +#include /*commande pour compiler :"gcc BatailleNavale.c -o BatailleNavale.o biblioNavale.o "*/ int main(int argc, char const *argv[]){ - /*Tout d'abord on va créer les plateaux des 2 joueurs et y placer les bateaux - on fait une boucle qui permet de recommencer l'initialisation si la - verification renvoi une erreur*/ + /*création de toutes les variables utiles au programme et rand pour le + placement aléatoire des bateaux.*/ + srand(time(NULL)); char p1 [10][10]; char p2 [10][10]; + int victoirep1=5; + int victoirep2=5; + int a1=5; + int a2=5; + int c1=4; + int c2=4; + int s1=3; + int s2=3; + int m1=3; + int m2=3; + int t1=2; + int t2=2; + int tour=0; + /*Tout d'abord on va initialiser les plateaux des 2 joueurs. + On fait une boucle qui permet de recommencer l'initialisation si la + verification renvoi une erreur*/ while(verif(p1)==0||verif(p2)==0){ printf("Joueur 1 :\n"); initPlateau(p1); printf("Joueur 2 :\n"); initPlateau(p2); - afficheduo(p1,p2);} - + } + + /*Affichage*/ + for (int i = 0; i < 60; i++) + {printf("-");} + printf("\n"); + afficheduo(p1,p2); + printf("La partie peut commencer !\n"); + /*Affichage*/ + + +/*Boucle de la partie entière*/ +while(victoirep1!=0 && victoirep2!=0){ + if(victoirep1!=0 && victoirep2!=0){ +tour=0; +} +/*Boucle du tour de joueur 1*/ + while(tour<1){ + if(victoirep2==0){break;} + printf("Au tour du joueur 1 :\n"); + int tir=jouerJoueur(p1); + /*si le tir a rencontré une erreur*/ + if(tir==-2||tir==-3){printf("veuillez tirer dans le plateau :)\n");} + + /*si le tir ne touche aucun bateau*/ + if(tir==-1){ + for (int i = 0; i < 60; i++){ + printf("-"); + } + printf("\n"); + afficheduo(p1,p2); + printf("À l'eau !\n"); + tour=tour+1; + } + + /*si le tir a touché le porte avion*/ + if(tir==0 && a1>=0){ + for (int i = 0; i < 60; i++){ + printf("-"); + } + printf("\n"); + afficheduo(p1,p2); + printf("Touché\n"); + a1=a1-1; + } + if (tir==0&&a1<=0){ + victoirep1=victoirep1-1; + printf("Coulé !\n"); + if(victoirep1==0){break;} + + } + /*si le tir a touché le croiseur*/ + if(tir==1 && c1>=0){ + for (int i = 0; i < 60; i++){ + printf("-"); + } + printf("\n"); + afficheduo(p1,p2); + printf("Touché\n"); + c1=c1-1; + } + if (tir==1 && c1<=0){ + printf("Coulé !\n"); + victoirep1=victoirep1-1; + if(victoirep1==0){break;} + + } + /*si le tir a touché le sous marin*/ + if(tir==2 && s1>=0){ + for (int i = 0; i < 60; i++){ + printf("-"); + } + printf("\n"); + afficheduo(p1,p2); + printf("Touché\n"); + s1=s1-1; + } + if (tir==2 && s1<=0){ + printf("Coulé !\n"); + victoirep1=victoirep1-1; + if(victoirep1==0){break;} + + } + /*si le tir a touché le mous sarin*/ + if(tir==3 && m1>=0){ + for (int i = 0; i < 60; i++){ + printf("-"); + } + printf("\n"); + afficheduo(p1,p2); + printf("Touché\n"); + m1=m1-1; + } + if (tir==3 && m1<=0){ + printf("Coulé !\n"); + victoirep1=victoirep1-1; + if(victoirep1==0){break;} + + } + /*si le tir a touché le torpilleur*/ + if(tir==4 && t1>=0){ + for (int i = 0; i < 60; i++){ + printf("-"); + } + printf("\n"); + afficheduo(p1,p2); + printf("Touché\n"); + t1=t1-1; + } + if (tir==4 && t1<=0){ + printf("Coulé !\n"); + victoirep1=victoirep1-1; + if(victoirep1==0){break;} + + } +} + if(victoirep1!=0 && victoirep2!=0){ +tour=0; +} +/*Boucle du tour de joueur 2*/ + while(tour<1){ + if(victoirep1==0){break;} + printf("Au tour du joueur 2 :\n"); + int tir=jouerJoueur(p2); + /*si le tir a rencontré une erreur*/ + if(tir==-2||tir==-3){printf("veuillez tirer dans le plateau :)\n");} + + /*si le tir ne touche aucun bateau*/ + if(tir==-1){ + for (int i = 0; i < 60; i++){ + printf("-"); + } + printf("\n"); + afficheduo(p1,p2); + printf("À l'eau !\n"); + tour=tour+1; + } + + /*si le tir a touché le porte avion*/ + if(tir==0 && a2>=0){ + for (int i = 0; i < 60; i++){ + printf("-"); + } + printf("\n"); + afficheduo(p1,p2); + printf("Touché\n"); + a2=a2-1; + } + if (tir==0 && a2<=0){ + printf("Coulé !\n"); + victoirep2=victoirep2-1; + if(victoirep2==0){break;} + + } + /*si le tir a touché le croiseur*/ + if(tir==1 && c2>=0){ + for (int i = 0; i < 60; i++){ + printf("-"); + } + printf("\n"); + afficheduo(p1,p2); + printf("Touché\n"); + c2=c2-1; + } + if (tir==1 && c2<=0){ + printf("Coulé !\n"); + victoirep2=victoirep2-1; + if(victoirep2==0){break;} + + } + /*si le tir a touché le sous marin*/ + if(tir==2 && s2>=0){ + for (int i = 0; i < 60; i++){ + printf("-"); + } + printf("\n"); + afficheduo(p1,p2); + printf("Touché\n"); + s2=s2-1; + } + if (tir==2 && s1<=0){ + printf("Coulé !\n"); + victoirep2=victoirep2-1; + if(victoirep2==0){break;} + + } + /*si le tir a touché le mous sarin*/ + if(tir==3 && m2>=0){ + for (int i = 0; i < 60; i++){ + printf("-"); + } + printf("\n"); + afficheduo(p1,p2); + printf("Touché\n"); + m2=m2-1; + } + if (tir==3 && m2<=0){ + printf("Coulé !\n"); + victoirep2=victoirep2-1; + if(victoirep2==0){break;} + + } + /*si le tir a touché le torpilleur*/ + if(tir==4 && t2>=0){ + for (int i = 0; i < 60; i++){ + printf("-"); + } + printf("\n"); + afficheduo(p1,p2); + printf("Touché\n"); + t2=t2-1; + } + if (tir==4 && t2<=0){ + printf("Coulé !\n"); + victoirep2=victoirep2-1; + if(victoirep2==0){break;} + + } +} + +} +/*fin de la boucle de la partie entière donc il y a désormais un vainqueur +on affiche qui a remporté la partie avec les conditions suivantes*/ +if(victoirep1==0){ + printf("Joueur 1 a gagné la partie !\nBien joué !\n"); +} +if(victoirep2==0){ + printf("Joueur 2 a gagné la partie !\nBien joué !\n"); +} return 0; } \ No newline at end of file diff --git a/BatailleNavale.o b/BatailleNavale.o index 479edd80d18eed0860a4ae41f2923e2aaa4ef0d8..3b768221647a63f2a67e789ba3de0debdde640a8 100755 GIT binary patch delta 5963 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 accQLkI&Uqa!FNs6$Ij%f;SybJHU9_w?APo7 delta 3187 zcmcgueNa@_6~FiGF3WGI(&2*|1dc9Dh0w@gBtN!zp zRB$LU3nc@djumHAVoXXircGvJY)!QoJ5rs-l9n;4ABZuvi)esK!Xo19x$nIt#F=FJ zSMSVyzjJ=~-1Bkoeed1B9HPO4v@0g6S4YI=mVgAyy3=2e=u=B-pSt^!Bf?{lG>-wI zs8bUrY4$LvpbpJ8PEuQ77Y*ujB;~L32<_akp=VmL|CQNe@7dN;sk-?8y?LL`l{o%2g3lL&IW%5<0vakYfu5)ik{yVpL%!ym%dP&LejnPMYkTLvSwlEPLl5|*idO2gqbwUaLL z>%+&@U=45Fqw9r!T~fttAt6(n9NNU6i!=Dnf~`e_@SUp73|0mkjeLh{7>)S0{zi>3 zqD^dJhG%3%dyir>OP|#|fhN9_W@LEZF&)ANzC*dxE>83Yv-`(tF`v~I=4T-A>;p9GY_p2i1A&t& zq&ro1d9+R(^>#7K!{ShV*Sz&b#cwpuGVs|9`}lGy=~=vI|96~X#_(}$4RN|Mk_g$(bKp} z3$pneGtv15q;#4^!}|ofGt*(CH3{6A8u(+PTbn9*lB_PyK%_O^=vv4fonaxwnMv@L zbulzpH)$V>72`{@6f-bvO^*9*kX09|BoFsPs$_2v;*5Cq@t)$vHM=OW zlA~DkpncbS>d|U#+Yx+|vCvcUtW(pVusO7rg>he*2DiQx& zKHZ^o1}Z1uY+5--CP1H_$^CsCiqc)&zHuBq#7%!Te_H>{#4Om6v3^M=e$hgiSatq8 z886V9eC?N92Fg4gEEL!gxwHh2=Q0$oG9e`-#G`PHF;OU7XMzTW8%!YIKjS~Xteo>( z!$;KkI70ViDUB7+Hf?Nr&YEpqMPzZgb(KFhJDF=v850EKZ9(|9j72_y5$J|K~vAm=ujy ztloxS1>6nt_!U7oia3P$OT-VZ3c?U#>#!h9A-YBc!GN#4_PQYCBA!Ql9Pz^&g3yRq z8^C!qg^=If5`=ef>lKpZb$`B77gPc zUTSWra}UxSuz9v<>=?jGVu%ZRJkHp&$&$s7WlQ#v(%~o%*FC1V*hGnbf?YYVeSkfR z(-O=os@O@hpt#uKRT{)G@{t5Yj{%}^duyX4;+R}fDk5|3k}ngoImtoZ%I-bo#VF~y z7!tZ}ge+t?HAqy94-jW^Jcj z%{iIhi=SfF)N&YhoY|s09A*T0aoMu($ur0CGQwKA1fmDFJTJ(6qs&J`cZn&%f&Qbo zMXZLev|PsHb{PEsEYVSz_143>(hE9v7j>6al^3u1!E(oPN1oqN_9XSc$gii=1*7Fo zeNe6=gjYbXjD|-m%=#g`5V01*IB2MFMoh>op4h_`D>QC)XT;`)>lOL)hdXr0`yj2d zIlM)*AOz|vO)yZYpTE?Hwi2S@R;42%m%Z26@R-`F%BTW1S2;Cb-qa6QD833cMVc