From e27dcb264c26450275c9f8ef22295913581aacff Mon Sep 17 00:00:00 2001 From: pourchot Date: Fri, 6 Jan 2023 00:55:08 +0100 Subject: [PATCH] 6 Janvier --- MaBatailleNavale2.c | 116 ++++++++++++ MaBatailleNavale2.o | Bin 0 -> 25320 bytes biblioNavale.o | Bin 12200 -> 0 bytes biblioNavale2.c | 453 ++++++++++++++++++++++++++++++++++++++++++++ biblioNavale2.h | 70 +++++++ biblioNavale2.o | Bin 0 -> 13408 bytes 6 files changed, 639 insertions(+) create mode 100644 MaBatailleNavale2.c create mode 100755 MaBatailleNavale2.o delete mode 100644 biblioNavale.o create mode 100644 biblioNavale2.c create mode 100644 biblioNavale2.h create mode 100644 biblioNavale2.o diff --git a/MaBatailleNavale2.c b/MaBatailleNavale2.c new file mode 100644 index 0000000..4b055ee --- /dev/null +++ b/MaBatailleNavale2.c @@ -0,0 +1,116 @@ + +/*Initialisation des bibliothèques nécéssaire*/ +#include +#include +#include "biblioNavale2.h" + +int main(void){ + int victoire=0; + int coup=0; + +/*Variable Joueur mise à 1 car c'est lui qui commence à jouer*/ + int joueur=1; + +/*Initialisation variables permettant de compter les dégats subit par les bateaux*/ + int PorteAvionJ1=0; + int CroiseurJ1=0; + int SousMarinJ1=0; + int MarinSousJ1=0; + int TorpilleurJ1=0; + int PorteAvionJ2=0; + int CroiseurJ2=0; + int SousMarinJ2=0; + int MarinSousJ2=0; + int TorpilleurJ2=0; + + /*Création des tableau de dimension 10 par 10 */ + char PlateauJ1[10][10]={" "}; + char PlateauJ2[10][10]={" "}; + +/*Message de lancement*/ + printf("Bienvenue sur cette simulation de la Bataille Navale.\n"); + printf("Votre objectif sera de détruire la totalité des navires adverses !\n"); + +/*Création du plateau du joueur 1 */ + printf("Joueur 1:\n"); + initPlateau2(PlateauJ1); + +/*Création du plateau du joueur 2 */ + printf("Joueur 2:\n"); + initPlateau2(PlateauJ2); + + + + while (victoire==0){ /*Tant que la variable victoire vaut 0 alors on continue*/ + while (joueur==1){ /*Tant que la variable Joueur vaut 1 alors le Joueur 1 joue */ + printf("Au tour de Joueur 1\n\n\n"); + printf(" Joueur 1 Joueur 2\n"); + afficheduo2(PlateauJ1,PlateauJ2); + printf("Veuillez saisir une coordonnée: "); /*Affichage des plateau sans montrer l'emplacement des bateaux*/ + coup=jouerJoueur2(PlateauJ2); /*Permet de jouer sur le plateau du joueur 2 */ + switch(coup){ + + case -3: printf("\nCoup en dehors des limites, veuillez recommencer.\n");break; /*Si le coup joué est hors des limites du plateau alors on affiche un message d'avertissement et le joueur1 rejoue*/ + + case -2: printf("\nCaractère non reconnu, veuillez recommencer.\n");break; /*Si le joueur1 entre des caractére qui ne sont pas des coordonnées alors on affiche un message d'avertissement et le joueur1 rejoue*/ + + case -1: printf("\nA l'eau\n");joueur=2;break; /*Si les coordonnées rentrées ne touchent pas de bateaux alors la variable joueur devient 2*/ + + case 0: printf("\nTouché ! Vous pouvez rejouer !\n") ; PorteAvionJ1++; /*Si le joueur1 touche le Porte-Avion alors la variable PorteAvionJ1 augmente de 1*/ + (PorteAvionJ1==5)? printf("Porte-avion ennemi coulé !\n"):printf("Le bateau n'a pas encore coulé.\n") ; break ; /*Si la variable PorteAvionJ1 est de 5 alors on annonce que le Porte-Avion ennemi est coulé*/ + + case 1: printf("\nTouché ! Vous pouvez rejouer !\n") ; CroiseurJ1++; /*Si le joueur1 touche le Croiseur alors la variable CroiseurJ1 augmente de 1*/ + (CroiseurJ1==4)? printf("Croiseur ennemi coulé !\n"):printf("Le bateau n'a pas encore coulé.\n") ; break ; /*Si la variable CroiseurJ1 est de 4 alors on annonce que le Croiseur ennemi est coulé*/ + + + case 2: printf("\nTouché ! Vous pouvez rejouer !\n") ; SousMarinJ1++; /*Si le joueur1 touche le Sous-marin alors la variable SousMarinJ1 augmente de 1*/ + (SousMarinJ1==3)? printf("Sous-marin ennemi coulé !\n"):printf("Le bateau n'a pas encore coulé.\n") ; break ;/*Si la variable SousMarinJ1 est de 3 alors on annonce que le Sous-Marin ennemi est coulé*/ + + case 3: printf("\nTouché ! Vous pouvez rejouer !\n") ; MarinSousJ1++; /*Si le joueur1 touche le deuxième Sous-marin alors la variable MarinSousJ1 augmente de 1*/ + (MarinSousJ1==3)? printf("Marin-sous ennemi coulé !\n"):printf("Le bateau n'a pas encore coulé.\n") ; break; /*Si la variable MarinSousJ1 est de 3 alors on annonce que le Marin-sous ennemi est coulé*/ + + case 4: printf("\nTouché ! Vous pouvez rejouer !\n") ; TorpilleurJ1++; /*Si le joueur1 touche le Torpilleur alors la variable TorpilleurJ1 augmente de 1*/ + (TorpilleurJ1==2)? printf("Torpilleur ennemi coulé !\n"):printf("Le bateau n'a pas encore coulé.\n") ; break ; /*Si la variable TorpilleurJ1 est de 2 alors on annonce que le Torpilleur ennemi est coulé*/ + } if( PorteAvionJ1==5 && CroiseurJ1==4 && SousMarinJ1==3 && MarinSousJ1==3 && TorpilleurJ1==2 ){ /*Si la variable PorteAvionJ1 vaut 5 ET que la variable CroiseurJ1 vaut 4 ET que la variable SousMarinJ1 vaut 3 ET que la variable MarinSousJ1 vaut 3 ET que la variable TorpilleurJ1 vaut 2 alors */ + victoire=1; /* On passe la variable victoire à 1*/ + joueur=0; /* Et on passe la variable Joueur à 0 pour arrêter la partie*/ + printf("Le Joueur 1 remporte la partie !\n\n"); /*Et enfin on annonce la victoire du joueur 1*/ + } + } + + while (joueur==2){ /*Tant que la variable Joueur vaut 2 alors le Joueur 2 joue */ + printf("Au tour de Joueur 2\n\n\n"); + printf(" Joueur 1 Joueur 2\n"); + afficheduo2(PlateauJ1,PlateauJ2); /*Affichage des plateau sans montrer l'emplacement des bateaux*/ + printf("Veuillez saisir une coordonnée: "); + coup=jouerJoueur2(PlateauJ1); /*Permet de jouer sur le plateau du joueur 1*/ + switch(coup){ + case -3: printf("\nCoup en dehors des limites, veuillez recommencer.\n");break; /*Si le coup joué est hors des limites du plateau alors on affiche un message d'avertissement et le joueur2 rejoue*/ + + case -2: printf("\nCaractère non reconnu, veuillez recommencer.\n");break; /*Si le joueur2 entre des caractére qui ne sont pas des coordonnées alors on affiche un message d'avertissement et le joueur1 rejoue*/ + + case -1: printf("\nA l'eau\n");joueur=1;break; /*Si les coordonnées rentrées ne touchent pas de bateaux alors la variable joueur devient 1*/ + + case 0: printf("\nTouché ! Vous pouvez rejouer !\n") ; PorteAvionJ2++; /*Si le joueur2 touche le Porte-Avion alors la variable PorteAvionJ2 augmente de 1*/ + (PorteAvionJ2==5)? printf("Porte-avion ennemi coulé !\n"):printf("Le bateau n'a pas encore coulé.\n") ; break ; /*Si la variable PorteAvionJ2 est de 5 alors on annonce que le Porte-Avion ennemi est coulé*/ + + case 1: printf("\nTouché ! Vous pouvez rejouer !\n") ; CroiseurJ2++; /*Si le joueur2 touche le Croiseur alors la variable CroiseurJ2 augmente de 1*/ + (CroiseurJ2==4)? printf("Croiseur ennemi coulé !\n"):printf("Le bateau n'a pas encore coulé.\n") ; break ; /*Si la variable CroiseurJ2 est de 4 alors on annonce que le Croiseur ennemi est coulé*/ + + case 2: printf("\nTouché ! Vous pouvez rejouer !\n") ; SousMarinJ2++; /*Si le joueur2 touche le Sous-marin alors la variable SousMarin augmente de 1*/ + (SousMarinJ2==3)? printf("Sous-marin ennemi coulé !\n"):printf("Le bateau n'a pas encore coulé.\n") ; break ; /*Si la variable SousMarin est de 3 alors on annonce que le Sous-Marin ennemi est coulé*/ + + case 3: printf("\nTouché ! Vous pouvez rejouer !\n") ; MarinSousJ2++; /*Si le joueur2 touche le deuxième Sous-marin alors la variable MarinSous augmente de 1*/ + (MarinSousJ2==3)? printf("Marin-sous ennemi coulé !\n"):printf("Le bateau n'a pas encore coulé.\n") ; break; /*Si la variable MarinSous est de 3 alors on annonce que le Marin-Sous ennemi est coulé*/ + + case 4: printf("\nTouché ! Vous pouvez rejouer !\n") ; TorpilleurJ2++; /*Si le joueur2 touche le Torpilleur alors la variable TorpilleurJ2 augmente de 1*/ + (TorpilleurJ2==2)? printf("Torpilleur ennemi coulé !\n"):printf("Le bateau n'a pas encore coulé.\n") ; break ; /*Si la variable TorpilleurJ2 est de 2 alors on annonce que le Torpilleur ennemi est coulé*/ + } if( PorteAvionJ2==5 && CroiseurJ2==4 && SousMarinJ2==3 && MarinSousJ2==3 && TorpilleurJ2==2 ){ /*Si la variable PorteAvionJ2 vaut 5 ET que la variable CroiseurJ2 vaut 4 ET que la variable SousMarinJ2 vaut 3 ET que la variable MarinSousJ2 vaut 3 ET que la variable TorpilleurJ2 vaut 2 alors */ + victoire=1; /* On passe la variable victoire à 1*/ + joueur=0; /* Et on passe la variable Joueur à 0 pour arrêter la parite*/ + printf("Le Joueur 2 remporte la partie !\n\n"); /*Et enfin on annonce la victoire du joueur 1*/ + } + } + } + return EXIT_SUCCESS; +} \ No newline at end of file diff --git a/MaBatailleNavale2.o b/MaBatailleNavale2.o new file mode 100755 index 0000000000000000000000000000000000000000..1e1e3fb5e252bd3f6cacfd35a9a889de66cb42eb GIT binary patch literal 25320 zcmeHv4R}=5o%g*nlguQ6O!!7c8B`S1BqV&R2muBLmjH#}*RysQCX-}zG85+`0t;#z zsiYBQTebSu?qheiYqhUi`?*#t2JjW^wq5+#7Hh4sVs|2FvEmw)HT(OWk2`mU3{va! z?EAhCC(phAbN*lFfBxrx&OP^>$-UXXe2K#}4V|3EWd=*VRT8s65x#x3$^a}d<`~0q zpKP3Kl%nhsI7we10jM$^aO6Xe!aD&eH=dax-~@>_G}IOnQm$Bu1fVjWt)tqVddz>J4*dRnMAHlS#IR z_yT#@4(cQi6LGwBB28Z!cQSAsm_`o4cu^7j-vRF%f}eE{rH6er6n;$+{AES(=N7>~ z4!jRnVd5|zs@`jg;GYHFhpR9x2IA~OB+Bz~4W-}c$fQ$7Fqle*!q*4GZPy1|LeUtp z;kHoHNJrZvMr%YCfwU{-VEvRhET928V|*yn<7R>G8#{}02@su z!gJ>aQ{hm&#h@s|aF(%j`LczJg7r1Ct=tSNH$9iFubF8Cmo+s8nwp zqeae5DP4DtpQUr#x`V1E)N2$^)l7 z@c*s{-u0gKVW8`(1A1`s&vExoT!0+QZKU=0 z4I)k6%`%rZ{rg4vahAEn>hBfh@3YLMRsW-+{4mR0^7KC-%74!?mpc7BMEQTQ%q33$ zEu#DtmbtX)?-1oLv&z)m4pZ6Q^432pj zZx%;eYP=I~MG+0$J}(3Xf$b&N5X>D&k3rLSf{9Hp8|?E=yoG#w6a;^r;GcN`!PJif z-A4ku-ku-WHQ)@G&jgg4DkWQ3(1M z6@8La_GMKZDT-@%1hy-MzoOt+yc|I08kj=;Tv?PEqEA29b1_5pvrs{X6T1_%2ehZJykD%{P){gcE! ztZ>%@w|6UhTa3YNl6tqIHiFtEBEal=l7Uc?ISmTGCdtzLWz@P#%H_3d8VR!{VX;zp z>?0~i6h+W$PVlM~wN~OvxRB>ED z6@f#jI&2rJpwMUtt+!*}`*3h@hxYhV?WxOj3ukJ}F4B6>k)s&S#)xHaB18Y(uS~fW z3cH>ZgW7xRQUqN8chTQq_=aK#g8{{#BmU^tCQ&Sm-m5Urg6UPsBz<_f;IszKeb^~F zsQ|tS73%;_(g+p64=W3v{{Tj+0RE-I?IcbGaKFMm44iB-8{e-2_(es%9n`L^oRH83 z1TuhsCCRb{+o)9q@Neye1PLmDyOhF9ghI}1P)HyH_!+z0Y|5zs?y(cjB0&Xky;At* z04?P72!#YPfbX=+{Q*2WfG@TaenEl?;MY!*U3Z^Q$XON&31k3sW@P1hDiJ0$8>X0W2*;0872a z0(g|HE4$}?9l#Fnt&0)BT~CU~miN}lCKa z`j2u29P;n=9}}7S9{)ffyg$&rKd`IMfhY`^y@BrCfgXQ0VD9em9}C>;{jtk& zsW0v7@*g$3{Kw3$Eyv1k+SlbDKyIMyrXO`}IXWWaevI*Vs6?1@t*o}|@U%epmIK{K zy4UXC=6~@iR+wD|voONW2FPB^{O<1ky9Ori%1$(Qcm3X+y1RSr(Y^k|rRjd|!p8mgz5hY?+JWqcU_f)iy93eQ)|Qr* zz^<%s*MOt@xm_PjoVu^uf2^nRSoc0O-P~vPvhrhaNVossp_x7YgF`#!K!Ic2Fo2Ek z@*gzO2R;7%=Ki_6OE4*>B z6aIW2Ks%!J6WTn`(>RdV=7H=B5HIi@9C57MpQR&;M2K`m){2mvBeHM=C=wbp(4ENun(b@ea8QO1ID5svoNRe?MLYp5%K+8(0X_J-|v0~43|g- z5v~P0RgM|& z9ZAe468{qL1+55lXZoJ;zsr_d$`=3YOqb2VO3vRGm@TB09?R^B5_V|wu z9m29P1FGjXq!*kdXHA-mfqC{im!Zx>^G{A*yX~iAY;N;FLC!JD;25iMzqa%B{fRCR z-PC`=#`Wcm&l5E+pHnt&oxRQ&>O4W?^5k{nUd2I`^`yBF3Uo|(?+}gqvHx8W7w@Y6 ze}^2HS+^W5^WJeT2DilT0zMZP3lQD=3g2A(2hqovC9@LP=S=j{x1}A~ZBP{0?tdj9 z;^h^)b-w`V&>1;mubucPhzR0WE^SPE1Z>FsyM*4YzZCU~>JQCR1{}Je=#05f^a#fF zGcJd(%b!JKvt>8!=Y-j{?rgw~L-z@+6$I8r>>`Ezmd5f8c_&ZD z$a`lVmPZ}LZq!(=>~}UPY?#>XB`=SXOxGX5WO_f2Ab=ZGxGRA}(Wm?uKyj~h^=H%8 z?IqVL)o=X~wci5!c4W^+E#3a3h=OwE?!nBPbO4)j8dk|_at~~8?8D37tLU`f$sV0+ z@3fDg5uNnAOWV9#KSq<0e-(k*m2JQ?4ZbeFxfFL}BUdbC%8FK6@gXLa9)BMueDqBT zxw4Y$b>)=?a=mDAo#6Rs^|o3#{fnaHR zx_=(bLW7noQ}1~jrcMP;c%sw0wNmEuJR#bsJTZtfO8WU)3UbY1c|!P0dEzC-HJe;N zD|GIsa>zl`>Yz)xWcaCY%I7R3d+pEmO`+1>Lq0gCR$0ICEsS|D5akNd21M5uK2STw zn|R6jim(y{wGvZ7x&@e`L7K*zw`h=lfCEQ(SUzyCfEv*?ClRF0QZT#wFr1zjq@}hX zy-ac4Pp;14Q}=*4{Y;Q$Hz4MH^L+UZVsbqhQe>ouRnCLaxs| zNay{9L7MZ8El7n@8KhtKO6R=zrV7%CLhJz|FG#DH^2zmRlwtKa(~| zoia$j2Q?=fq)*|jm-EM&kjW2Hw=GETQ(W)&gX^;iQpcwa(lv!aDl}O^>QJUGr>UP5 zq@s-~NPomfDLgTXf<=S$PQ~?B7F?fskY4r|25HVWwjdQsWstssJzBQ07S@ZIv{xa{ z0wOO+XR3CVfRG=g(}5`(q!)-~JiUjfTH)jVyRtGFq{E=*WP|i{W#xwdfYbA4QhSgd z<*qLpx0+o4!$I13;vl_Nnfl-#VCtU}q*Y2VPQju<`X*l6=!pQi{;vztoNtB>(gn); zFTbIJ^bCdA2t;0xKBfrkK*$f$JAf$~q+7+ZxJZzeOPw-ETcPG;gEYef0yzDJgK&CY zka}!0=}N`*2)RC+AT>YjOxjc!q(YN5lRk#CH#W#YQ$Hz4MH|&jdc6{S_H_sr4N|}2 z`Ui6T?6Y2z&i@N%(wuK>K`NBWne^*8sHAh=_`M3!PK9_82wRY<*Pv-w({v4(nGsmM zUZ5KOuoi7li2H!pffpz4h01e2?1kP1q_tBdHYE$*rSVF21g}(ol&@4{r7ju1--ay0 z_mBEDO1z^n7>^no%OAs%d9eRc@mh4GYoPpQcaQ(b)?Q8cnjjR}gpu24N8~09wGa5b zw@!xyGq+zUGELq)SBOl5_jW%s*@muxQQq6;BA<64b{#yY&l5gRFY-L0=&p=aHD1U! zh-UU5M(~^@Kk7F6e|qx#d;#yj{p9)ia(^gzlE!d<;1G7PKgr2xY0YEktU>HiW0M7& z3;EmSH}o+?pv*esw@&qeREfXfWLg-F#5*JLOvIPUBz@sXI*nYkJrfJ1qlvh$IpT|j zd<#Qq{HQe+@vR7ThGLN#$X$_0CnLVZ`s*U$bhO2niX=m1Zr<}yI+=-r1hI4?jbF5; z_dEnj$`=oH0-y4QnmZ%O6f%>H%M+OhYOT9i=jtyu8ZwXr63R50bFfb(jnm~qsOa^g zakMj%q2-%=sZcZ(P5LtNh%cN-B%2fQ_@0L%7yA@r`JzOo!xv$T+Y-r?us9ZNkESE3 zi+r70Niq^nw6{m%;YgBBKq_ApN`}JeJ>N!?<8T-`;_*x|neql-?EFY5W0W@~GT}D3 zW|HrUL?-3yNMt%;WioOde3JA{GFBy$=}0wv2BndBJklP8-I*9A;0|MX#J4__h9+P9 z{E)9Blmb&Y0V5<+O}VisnTV$7-s7a#pu+0*5PoKSJgt%F>J&{nPOd4D?4UD;(g}O4 zu1QAPJ7_&)paZ{kjz(zn@f}-_j?Kx{qwzz@8OEOw(50^p4xWx{4z6xozrl4O=Ce** zU&SNiL0nJZdI{GBctZURuAk!?hetO1DY$vs=DN-Go2PG{v3cg^S(|5Xp0j!GW@B=A zGpWVsx#%h)@7rwTc&H4W$!O~oeHsgeMLrk&dmf-urZi5)ufKhX45Pd~6pxDVnbI&7 z-5W|LIDF=p8@|b5_H#}+5l{Otz7PT(&@6^kPC8`CGCXJph8jaE+=e)aGNOeTf~zxO z=|r5!WQ~(#B%X>yTjP+7ou5czdPu9O0HG#^uy4wgwyB_Of<2)aTQQ|`Y6RUJ4#lSW z(6Ch0cLOFAG}JcIL@>l?6!c*HRU^(*X<7w7%Ll1Uv@;Y>V_ddf)KCxOR%st{x{+f7 zeiEZ%3VzGpDkhMbQ-!xKnjD_oY+#O}1H~woBe-1S5MOXLXE=m#CJs}eReB(=o+*o_ z>cNw%WCkjk9F}zy*fnL%)ZCEDNlb@CzFzdZHM~y5*98CSp_b#ThdxXjXIwi_E0#j64_zTW59>iW3Pvd{BAoC}>cqBd)-3@#*F7piM zB~1t^{&s%fOM`>k0NZ{uIM@LgdUX=2gvo{r5K}CcoaMEeliX4bi50$ z0&KxCXa^t@c6dcHH?20z4OQkD!`z-7pb zXwe->k_G*KpkD(0dOlJu`4)$k|0&StVlH|H(4sqbS@ORH`e&ez&yycz$sYrKH+-|) zYm;{_^=kbS;D@)d9du5f{8>UC5~tEB51jJADG!|T!2ib{(ElH&{~u00HpTzsvDw%% zl}S7u4g4RsOb2Tv#BaVt(*JjNhAQI`ClY?WC6fOCy9uhS>F<3!m>{Z`ue?Y+0%r=S z3?HpbeTuHvov%x@fsIU&#w&>5F61R8W@J}NG#_Z1(-gx+fU?h| z=X;g>d0IgMWPCY{*|_VT%4d-D;fSuG>6Z%m6*;=94?p-3Nyq)r(pZxU`5P?xu}WTr zvvIgq>d|Fc%H5|Ui~o=n>P3v?HJGDmCNA?9$0C3n?RjhhQEU>hmAAuTXOe9tu4{2Q zP0#nB%;|6s1Ig)fbMwsUanB$yOMd`RvKlw@ym4od-BEH6KuHg7=9CGOnSTfYX-*v- zL*DBu!9N-sB`qXhFqS>!^pu<@bv;g9-vP7Z^ik_TDQO~p{HO-zx0Cg>(Ol=3v@w7B z=oItM;O3e%@_PVP!(3Tc8GpFp*#}A2o36?yQ7}BeW9g7AxjX^1!*y7eJjRHTXuj($ zm-AV0qFuG%E&CGkXCqTimpWA!3Ms`N>;r}QT!+oiXbMZeIOx_%2Xt~L* zbBto{e&)_(?osB>XYOg{>XtqwnPbcbUla}O|gHFG~?F3j9M=GvM2EpsaKO{UUI6yB3P!t8b{}p;ilFlvWt1mHl-))dJBr<-;=ke}sHt+l z%s43R1I_*WGDasfam+8*oNi4do@6;kdtUn&wB9n1_*A5(v() zhQZ~j!<^{wI@ryoxEW;*{UCMDF;_aPY8IYzS>w6q%&T(_OSd`jWfpT2n5jHTp`nzQ zF(~;+yAjt`T#WF$aQzV1)42W>m#DaWF>>bbSo{NS&ZE3JVWX=IH|J>FO3uWslzeVJ zz&t#ZVC@$G4q3a&+GVpiKn!sUE2)!p$TUcr;s%Fcq>AL6Z!TY+nOEz;w>wPW_43F0 zykY(oW*^i1{GVCPY*r&~P^VW%&hw#-js{MzkenAPTun`FYGbN7(vhmgS9OB;%8vLF zO3fOhc0CShnrmD6jg#6`GOTjpREFQb@inaR)z?g)i?yWuT8V-0qFf(pZcg$GDYim9 zl8vaNY7^pFnHde3ke=fLaO>oKbhNZz3 zD}$^3YnmEXHw9O&2(DV~_cyL;3NBpMl&dtJGPs}Z6E~WZD`l{wjt%){VI|r(E6B#z z%~H*ngI1iNwl&L^u4q^;D?>9VYQ#hMEDh~V*VWIFH8m$P{3=WeAEFTrg;J|t@hKbn zU{fTSFycXqr#9tmN4tT=AzzqSS%q}I^qI(uilM$4hl$GTRt0(PZ;lzkg^5JWP}Z`O zbcaV0anzLF*bzBVlN*;UUER>+&v)>K`kA61MPD(j7S+|McN8B_!@_OzPt zUTY*CNk+rI>Q-O%%6eaQD&0JcygLT zL3|UaIvfk7+NwK}i8PN&ahg}%5^k}T=e1;FF(BI`$yOZr#bVVsL4;^LO&!TZCf*#4 zx5C17o264}OC(`bl2Ic};Mt_mPu}WCG8s>R(1GK(B2}hiI0sBLM`H7$@n||4id9E8 zM8YyK#0WwU&|T~S9T&O2K#*I(IKAG$neGk2a0&x1)S3#ekJ_knz!+K|4W>h_IdOdc zNRFiyVi>6&&e22cFvb)^HqYL2YWwAv=Cd=c8ykw`^1)WR7lmNbmSTI|MV;^4v5*olvi;hSR? z8)7S6i;Ix_oDW6aIL3)(nj@0k;AlwIw83z=D2<>@$8#l4hAg5=B9)g_Hj+jrN-{f7 zEg zO6fJEPZ9b4J`_KV911@Lc!yDG98nKKrA9o1iT91r7zw#lC0_5NY3dqeOye};s#Ow0 zyP1NxOzb}CeKCQ=jc={gqxa=B{wv6s#whFiRvIr}$A<93{{h2L?JCyZe;4{k8d+|g z6r`c_ybd1I7-JOf6CD<^BMkkWKCOx!Wg6qGeK?Kh3*Jawut6?ihQjk@$YHGm#faoao1ub;%Xc* zz@J@!WAP>GabOmLi|lESXs;ck^0wzg?qSErs+><#=?uQ;5yk^ee`7D0ZV!gB$cymv zfz63vYb>!o6bm+|@$;i#D6_%9nNNzM*l31Aq zn=|e08zEvVVW}5Q=dm`1^sl<`g9-eos~*O!kFJkJ6S;CQxMX!hqd(|hu{ek?1TMaM zMMLAVMbM1pQ_vq!)WG7^MsVr!l?$=TT)AY)8h=x;sbS%Ae^7q~ae@9~q4*?W;YScH zD!yHKqVE;*LyHzKHQ{Gu(Uy8VzoKdU%7VXzsyBiWvAh(Xft_LnW_^{>lAfWyv1lQv zPJD|o4+E!Tt*YKR)JGf(81g=$D1N#ne+30gg3YN!unpgL#Hu<3Qd<5nr6CrPKk)%e z{r*LZgZO4-sHG(uZi}!6`v)Q|$=M*_LyxM{6nAqb!TRtuNF9D) zVesj1LE67SX{i$ZMgJN`O=@F%I2RJ{1G6CVgU%b zP`nkxSQW+FrY5b&uW&jwg>MTw5AW$L(dc2ToQ&g5IE5wSXOK9ZV#>l=M5gg-PfkNM zO)9G7wF=0bgNtWpT7Hg_*Kh%7_JrM@yfh0XyZiBVv(o<-E2zczjS?%vr_G>7!8^ab=cDlDDbRN%j@$+4b}3-(DrLS4R3-x&n|UYpI=%~RaR)fwt@R!>=P}o&rdb% zRgAj+!uEen$uCrV>sS$zh6iL(*gp>WLiuk3N1tf@*7I0Bm(_AXX*oWA?k|w{DLD-v zuq0(hKkhYrut2_75j32{eP>(JavJprGIsm*`clK;no+^R`2T^D*Z$Y*H4XVCAA8dN z)3_&)Vf|WOuje&v(u@ig*3XkTyZoaZ&`26yN}??l*8c)%*gY3xfNc8r1^T<(h5Wj# z;j570*1Q^a)_c|gzNjH-K3U3@HU1C?bdi?V?>W|Y)|LG#EG>PyAGxhd7A@b)En1}B z`4Uc%z`E;tHT(b+yS)DWLRQJIvm|9k%V~(+)I53p{t#Fo`L&%|jh3^@kS9*tuh+|0 zEsz|A{Iu1chO7Fg*^$U=`NDTQEwABNC0`(JbS#jVBL#%Q_Dn7!zpgpzGCY z>x#%9T_QPnRBTTLMPq&u`TGJ=itj)6R8TbjO34@cFU3<*q)i0_PRna}MG^V8R!I5F zG@~qvSYcM9Ta>&aTj0V~GOOohP0(`ovYtCMj<7??_bL0&0d6!d9Z&lCR|cGpJ!Gx4 cYOTz^TA;kJe!eCSC0~1$lX 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 +#include +#include + +int verif2(char tab[][10]){ + int v=0; + int i; + int j; + for (i=0;i<10;i++){ + for(j=0;j<10;j++){ + if(tab[i][j]!=' '){ + v++; + } + } + } if(v==17){ + return 1; + } return 0; +} + +void ajoutNavireAleatoire2(char tab[][10],char b,int t){ + srand(time(NULL)); + int o=(rand()%2); + int x; + int y; + int i; + int j; + int v=0; + int w=0; + if (o==0){ + while (v==0){ + srand(time(NULL)); + w=0; + x=(rand()%(10-t)); + y=(rand()%10); + for (i=x;i10 || i<0){ + printf("Navire hors limite\n\n"); + }else{ + j=coord; + if (j+5>10 || j<0){ + printf("Navire hors limite\n\n"); + }else{ + for(j=coord;j10 || i<0){ + printf("Navire hors limite\n\n"); + }else{ + j=coord; + if (j>10 || j<0){ + printf("Navire hors limite\n\n"); + }else{ + for(i=cord-'A';i10 || i<0){ + printf("Navire hors limite\n\n"); + }else{ + j=coord; + if (j+4>10 || j<0){ + printf("Navire hors limite\n\n"); + }else{ + for(j=coord;j10 || i<0){ + printf("Navire hors limite\n\n"); + }else{ + j=coord; + if (j>10 || j<0){ + printf("Navire hors limite\n\n"); + }else{ + for(i=cord-'A';i10 || i<0){ + printf("Navire hors limite\n\n"); + }else{ + j=coord; + if (j+3>10 || j<0){ + printf("Navire hors limite\n\n"); + }else{ + for(j=coord;j10 || i<0){ + printf("Navire hors limite\n\n"); + }else{ + j=coord; + if (j>10 || j<0){ + printf("Navire hors limite\n\n"); + }else{ + for(i=cord-'A';i10 || i<0){ + printf("Navire hors limite\n\n"); + }else{ + j=coord; + if (j+3>10 || j<0){ + printf("Navire hors limite\n\n"); + }else{ + for(j=coord;j10 || i<0){ + printf("Navire hors limite\n\n"); + }else{ + j=coord; + if (j>10 || j<0){ + printf("Navire hors limite\n\n"); + }else{ + for(i=cord-'A';i10 || i<0){ + printf("Navire hors limite\n\n"); + }else{ + j=coord; + if (j+2>10 || j<0){ + printf("Navire hors limite\n\n"); + }else{ + for(j=coord;j10 || i<0){ + printf("Navire hors limite\n\n"); + }else{ + j=coord; + if (j>10 || j<0){ + printf("Navire hors limite\n\n"); + }else{ + for(i=cord-'A';i10 || x<0){ + return -3; + } + if (y>10 || y<0){ + return -3; + } switch(adv[x][y]){ + case 'A': adv[x][y]='x' ; return 0; + case 'C': adv[x][y]='x' ; return 1; + case 'S': adv[x][y]='x' ; return 2; + case 'M': adv[x][y]='x' ; return 3; + case 'T': adv[x][y]='x' ; return 4; + case ' ': adv[x][y]='.' ;return -1; + } return -2; +} \ No newline at end of file diff --git a/biblioNavale2.h b/biblioNavale2.h new file mode 100644 index 0000000..1bd81d0 --- /dev/null +++ b/biblioNavale2.h @@ -0,0 +1,70 @@ + + +/* +ajoutNavireAleatoire permet d'ajouter au tableau tab un Navire de taille t, et représenté par le caractère b. + +résultat : t cases consécutives de tab reçoivent le caractère b. + +fonctionnement : +La fonction choisit aléatoirement si le navire sera horizontal ou vertical, +puis en fonction de cela choisit aléatoirement la position de façon à ce que le navire ne dépasse pas du tableau. +retour : vide +*/ +void ajoutNavireAleatoire2(char tab[][10],char b,int t); + + + +/* +verif vérifie que le tableau tab contient bien les navires demandés + +résultat : renvoie l'entier 1 si tab contient exactement 17 cases ne contenant pas un espace + renvoie 0 sinon. +*/ +int verif2(char tab[][10]); + + +/* +affiche permet d'afficher sur la sortie standard le tableau t, sous forme de grille de bataille navale. +retour : vide +*/ +void affiche2(char t[][10]); + + +/* +afficheduo permet d'afficher côte à côte les tableaux t et p, sous forme de grilles de bataille navale. +retour : vide +*/ +void afficheduo2(char t[][10],char p[][10]); + + +/* +initPlateau permet à un joueur d'initialiser le tableau plat, en y plaçant ses navires. + +résultat : A la fin de la fonction, le tableau plat contient les 5 navires de la bataille navale, placés selon les règles. + +retour : vide + +fonctionnement : +Le joueur peut placer ses navires de deux façons : + - Aléatoirement, auquel cas la fonction appelle ajoutNavireAléatoire de façon adaptée afin d'obtenir le résultat. + - A la main, auquel cas le joueur doit dire si son navire est horizontal ou vertical, + et donner la coordonnée la plus nord-ouest. Si l'utilisateur place mal son Navire, il lui est demandé de le replacer. +*/ +void initPlateau2(char plat[][10]); + + +/* +joueurJoueur permet à un joueur de jouer sur le tableau adv. + +résultat : L'utilisateur entre des coordonnées, le tableau est modifié pour indiquer s'il le coup est "à l'eau" ou "touche" + retourne un entier, correspondant au Navire touché : + -1 si le coup est à l'eau + 0 si le coup touche le Porte-Avion + 1 si le coup touche le Croiseur + 2 si le coup touche le Sous-Marin + 3 si le coup touche le Mous-Sarin + 4 si le coup touche le Torpilleur + -2 si la case contient un caractère non reconnu (ne devrait pas arriver) + -3 si le coup est hors plateau +*/ +int jouerJoueur2(char adv[][10]); \ No newline at end of file diff --git a/biblioNavale2.o b/biblioNavale2.o new file mode 100644 index 0000000000000000000000000000000000000000..2b0457a9cd2d2b9cc8d9fd26408eac21d2235624 GIT binary patch literal 13408 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 BVbcHr literal 0 HcmV?d00001