jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Bataille terrestre (new look) Jeu 26 Jan 2017 - 15:48 | |
| Puisque je suis parti dans les batailles navales (qui sont d'ailleurs tout sauf navales), j'ai repris ma bataille terrestre de 2010 (ouh, 2010, la préhistoire de l'informatique !) et j'en ai dépoussiéré le listing et installé quelques aménagements pour le rendre plus GNAC. Voici donc « Bataille terrestre », le retour ! - Code:
-
rem ' Bataille terrestre (new look) - par jjn4 - Ver-140310.3.0 - 26/01/2017 dim CD% : rem Nombre de Chars Détruits dim CED% : rem Nombre de Chars Ennemis Détruits dim ECS%(25) , ECT%(25) : rem Emplacement des Chars amis et ennemis dim IO% : rem Indicateur comme quoi c`est le tour de l`Ordi de jouer dim KCH% : rem Cellules des grilles concernées dim NCP% : rem Nombre de chars placés dim NJ% : rem Niveau de Jeu dim NPJ% , NPO% : rem Nombre de Points du Joueur et de l`Ordi dim VMI% , VMJ% , VMK% , VMA$ : rem Variables à utilisation multiple label clic rem form0 width 0,1050 height 0,570 caption 0,"BATAILLE TERRESTRE"
rem Construction des grilles de jeu for VMK%=0 to 1 : rem Objet 1 à 25 pour la grille du joueur for VMI%=0 to 4 : rem Objets 26 à 50 pour l`ordinateur for VMJ%=1 to 5 picture VMI%*5+VMJ%+25*VMK% left VMI%*5+VMJ%+25*VMK%,VMJ%*80-35+450*VMK% top VMI%*5+VMJ%+25*VMK%,VMI%*80+50 width VMI%*5+VMJ%+25*VMK%,76 height VMI%*5+VMJ%+25*VMK%,76 select VMK% case 0 : cursor_cross VMI%*5+VMJ%+25*VMK% case 1 : cursor_noparking VMI%*5+VMJ%+25*VMK% end_select on_click VMI%*5+VMJ%+25*VMK%,clic on_click VMI%*5+VMJ%,clic next VMJ% next VMI% next VMK%
rem Cadres d`écriture alpha 51 left 51,165 top 51,15 font_bold 51 font_size 51,12 caption 51,"TA GRILLE DE JEU" alpha 52 left 52,520 top 52,15 font_bold 52 font_size 52,12 caption 52,"LA GRILLE DE JEU DE TON ADVERSAIRE" alpha 53 left 53,45 top 53,465 font_bold 53 font_size 53,12 font_color 53,0,180,255
rem Dessins des fléches for VMI%=55 to 59 : rem Objets 55, 56, 57, 58 et 59 alpha VMI% left VMI%,8 top VMI%,(VMI%-55)*80+65 font_name VMI%,"Wingdings" font_size VMI%,30 font_color VMI%,0,0,255 caption VMI%,chr$(240) alpha VMI%+5 : rem Objets 60, 61, 62, 63 et 64 hide VMI%+5 left VMI%+5,458 top VMI%+5,(VMI%-55)*80+65 font_name VMI%+5,"Wingdings" font_size VMI%+5,30 font_color VMI%+5,0,0,255 caption VMI%+5,chr$(240) next VMI%
rem Inscription des points alpha 65 left 65,435 top 65,35 font_color 65,255,0,0 caption 65,NPJ% alpha 66 left 66,495 top 66,35 font_color 66,255,0,0 caption 66,NPO% alpha 67 left 67,446 top 67,18 font_color 67,255,0,0 caption 67,"SCORES" rem Deuxième ligne de commentaires cavaliers alpha 73 left 73,45 top 73,490 font_bold 73 font_size 73,12 font_color 73,0,0,255 rem Dessin du char dans la marge alpha 80 left 80,910 top 80,20 font_bold 80 font_size 80,12 caption 80," BATAILLE"+chr$(13)+"TERRESTRE" picture 85 left 85,930 top 85,65 width 85,80 height 85,60 color 85,240,240,240 char(85) rem Affichage des boutons de jeu : rem Objets n° 90, 100, 110 et 120 for VMI%=1 to 4 button VMI%*10+80 left VMI%*10+80,910 top VMI%*10+80,VMI%*95+45 width VMI%*10+80,110 height VMI%*10+80,85 font_bold VMI%*10+80 font_size VMI%*10+80,14 font_name VMI%*10+80,"Arial" on_click VMI%*10+80,clic next VMI% caption 90,"Niveau 1" caption 100,"Rejouer" caption 110,"Aide" caption 120,"Quitter" inactive 100 midi_on midi_instrument 127 midi_volume 127 oui()
end : rem ' Début des routines =========================================
sub aide() : rem Explications du jeu dim_local bai$ , cai$ , dai$ : rem Variables à utilisation multiple cai$=chr$(13) dai$=cai$+cai$ application_title " Mode d'emploi du jeu" bai$=" Vous connaissez la bataille navale ? Eh bien, la bataille terrestre, c'est"+cai$ bai$=bai$+"pareil, sauf que c'est sur terre, avec des chars camouflés dans la forêt."+dai$ bai$=bai$+" Chaque camp a 4 chars et doit faire sauter ceux de l'ennemi avant que"+cai$ bai$=bai$+"celui-ci ne vainque son adversaire. Les explosions qui se produisent"+cai$ bai$=bai$+"provoquent des cratères qui permettent de savoir où on a déjà tiré. Mais"+cai$ bai$=bai$+"seulement au niveau 1. Au niveau 2, il faut faire attention à ne pas tirer"+cai$ bai$=bai$+"2 fois au même endroit, parce que l'ordinateur, lui, ne s'y trompe pas."+dai$ bai$=bai$+" Ce logiciel de simulation guerrière provient sûrement d'un système"+cai$ bai$=bai$+"d'entraînement militaire, car le langage y est particulièrement fleuri."+cai$ bai$=bai$+"Ne vous en formalisez pas. Il paraît que c'est viril de parler comme ça !" message bai$ end_sub
sub boum() : rem Tir du joueur dim_local ibo% : rem Variables à utilisation multiple 2d_target_is KCH% 2d_pen_color 255,0,0 for ibo%=1 to 70 2d_line 38-rnd(36),38-rnd(36),38+rnd(36),38+rnd(36) 2d_line 38-rnd(36),38+rnd(36),38+rnd(36),38-rnd(36) next ibo% midi_play 50,6 pause 500 if NJ%=2 feuille(KCH%) else trou(KCH%) end_if for ibo%=26 to 50 inactive ibo% next ibo% end_sub
sub char(kcha%) : rem Dessin d`un char dim_local icha% : rem Variables à utilisation multiple 2d_target_is kcha% 2d_pen_color 135,135,0 for icha%=1 to 8 2d_line 17+icha%,48+icha%,75-icha%,48+icha% 2d_line 25-icha%,40+icha%,65+icha%,40+icha% next icha% 2d_fill_color 135,135,0 2d_rectangle 37,37,53,42 2d_rectangle 33,32,57,40 for icha%=1 to 3 2d_line 1,28+icha%,40,34+icha% next icha% 2d_fill_color 180,180,180 for icha%=1 to 5 2d_circle 19+icha%*9,50,5 next icha% end_sub
sub choix() : rem Choix des emplacements des 4 chars du joueur dim_local ich% : rem Variables à utilisation multiple NCP%=NCP%+1 if NCP%<5 caption 73,"Place tes 4 chars camouflés dans la forêt" KCH%=number_click if ECS%(KCH%)<>1 ECS%(KCH%)=1 2d_target_is KCH% 2d_pen_color 135,135,0 for ich%=1 to 8 2d_line 1+ich%,48+ich%,59-ich%,48+ich% 2d_line 9-ich%,40+ich%,49+ich%,40+ich% next ich% 2d_fill_color 135,135,0 2d_rectangle 21,37,36,42 2d_rectangle 17,32,41,40 for ich%=1 to 3 2d_line 41,33+ich%,74,27+ich% next ich% 2d_fill_color 180,180,180 for ich%=1 to 5 2d_circle 3+ich%*9,50,5 next ich% if NCP%=4 remonte() caption 73,"C'est à toi de tirer" for ich%=55 to 59 hide ich% show ich%+5 next ich% for ich%=1 to 25 cursor_noparking ich% cursor_cross ich%+25 active ich%+25 next ich% end_if else non() end_if end_if end_sub
clic: : rem Redirection de tous les on-click VMK%=number_click if VMK%>0 and VMK%<26 choix() end_if if VMK%>25 and VMK%<51 tir() end_if select VMK% case 90 : niveau() case 100 : oui() case 110 : aide() case 120 : quitter() end_select return
sub croix() : rem Dessin des croix if IO%=0 CED%=CED%+1 else CD%=CD%+1 end_if 2d_fill_color 255,0,0 2d_pen_color 255,0,0 2d_rectangle 35,10,41,70 2d_rectangle 20,26,56,32 end_sub
sub feuille(qfeu%) : rem Dessin des feuilles dans une cellule dim_local jfeu% : rem Variables à utilisation multiple dim_local cxfeu% , cyfeu% , rfeu% : rem Coordonnées des cercles de feuilles dim_local cfeu% : rem Couleur des feuilles 2d_target_is qfeu% color qfeu%,120,70,0 for jfeu%=1 to 90 cxfeu%=int(rnd(70))+1 cyfeu%=int(rnd(70))+1 rfeu%=int(rnd(12))+2 cfeu%=int(rnd(80))+120 2d_fill_color 0,cfeu%,0 2d_pen_color 0,cfeu%,0 2d_circle cxfeu%,cyfeu%,rfeu% next jfeu% end_sub
sub feuilles() : rem Dessin de la végétation dim_local ife% : rem Variables à utilisation multiple for ife%=1 to 25 feuille(ife%) feuille(ife%+25) next ife% end_sub
sub fin() : rem Fin du jeu dim_local kfi% , afi$ : rem Variables à utilisation multiple if CD%=4 remonte() caption 73,"Ah, ah, j'ai encore triomphé, tocard ! Veux-tu rejouer ?" for kfi%=26 to 50 if ECT%(kfi%-25)=1 char(kfi%) end_if next kfi% NPO%=NPO%+1 end_if if CED%=4 afi$="Oui, tu as gagné, ringard, mais seulement par hasard. " afi$=afi$+"Veux-tu rejouer ?" remonte() caption 73,afi$ NPJ%=NPJ%+1 end_if caption 65,NPJ% caption 66,NPO% active 90 active 100 end_sub
sub niveau() : rem Choix du niveau de jeu dim_local vmvi% , vmvi$ : rem Variables à utilisation Multiple vmvi$=caption$(90) vmvi%=val(right$(vmvi$,1)) if vmvi%=1 NJ%=2 caption 90,"Niveau 2" else NJ%=1 caption 90,"Niveau 1" end_if end_sub
sub non() : rem Erreur de placement de ses chars par le joueur NCP%=NCP%-1 remonte() caption 73,"Tu as déjà placé un char à cet endroit, recommence" end_sub
sub ordi() : rem Action de l`ordinateur dim_local ior% , aor$ , bor$ : rem Variables à utilisation multiple KCH%=int(rnd(25))+1 IO%=1 for ior%=1 to 9999 if ECS%(KCH%)>1 KCH%=int(rnd(25))+1 else exit_for end_if next ior% pause 2000 boum() if ECS%(KCH%)=1 croix() ECS%(KCH%)=2 if (4-CD%)>1 bor$="s" else bor$="" end_if if CD%<4 aor$="Tu n'en as plus pour longtemps, charogne. Il ne te reste plus que " aor$=aor$+str$(4-CD%)+" char"+bor$+". A toi" remonte() caption 73,aor$ end_if else remonte() caption 73,"Je t'ai manqué, salopard. A toi." ECS%(KCH%)=3 end_if if CD%>3 fin() end_if for ior%=26 to 50 active ior% next ior% end_sub
sub oui() : rem Le joueur accepte de rejouer dim_local iou% , jou% : rem Variables à utilisation multiple CD%=0 CED%=0 IO%=0 for iou%=1 to 25 ECT%(iou%)=0 ECS%(iou%)=0 next iou% for iou%=1 to 4 KCH%=int(rnd(25))+1 for jou%=1 to 5 if ECT%(KCH%)=1 KCH%=int(rnd(25))+1 end_if next jou% ECT%(KCH%)=1 next iou% for iou%=55 to 59 show iou% hide iou%+5 next iou% for iou%=1 to 25 cursor_cross iou% cursor_noparking iou%+25 color iou%,255,255,255 color iou%+25,255,255,255 next iou% NCP%=0 feuilles() inactive 100 remonte() caption 73,"Place tes 4 chars camouflés dans la forêt" end_sub
sub quitter() : rem Terminer le jeu dim_local aqu% , aqu$ : rem Variables à utilisation multiple aqu$=str$(NPJ%)+" à "+str$(NPO%)+", tu pourrais faire mieux !"+chr$(13) aqu$=aqu$+"C'est vrai que tu veux détaler, mec ?" aqu%=message_confirmation_yes_no(aqu$) if aqu%=1 midi_off terminate end_if end_sub
sub remonte() : rem Remonte le texte d`une ligne caption 53,caption$(73) end_sub
sub tir() : rem Tir de la part de l`ordinateur dim_local iti% , ati$ : rem Variables à utilisation multiple inactive 90 if NCP%>3 and CD%<4 and CED%<4 KCH%=0 IO%=0 KCH%=number_click if ECT%(KCH%-25)<2 boum() if ECT%(KCH%-25)=1 croix() if CED%<4 ati$="Tu as détruit un de mes chars, fumier, mais il m'en reste encore " ati$=ati$+str$(4-CED%)+". A moi maintenant." remonte() caption 73,ati$ end_if else remonte() caption 73,"Ah, ah, c'était à côté, saligaud. C'est à moi maintenant !" end_if if ECT%(KCH%-25)=1 ECT%(KCH%-25)=2 end_if if CED%<4 ordi() else fin() end_if end_if end_if end_sub
sub trou(qtr%) : rem Dessin d`un trou 2d_target_is qtr% feuille(qtr%) 2d_fill_color 120,70,0 2d_pen_color 120,70,0 2d_circle 38,38,25 end_sub
Dernière édition par jjn4 le Ven 27 Jan 2017 - 14:36, édité 1 fois | |
|