jjn4
Nombre de messages : 2690 Date d'inscription : 13/09/2009
| Sujet: Courses de toutous (nouvelle version) Jeu 13 Avr 2017 - 17:33 | |
| Vous vous rappelez des courses de toutous rondouillards ? Eh bien, j'en ai fait une version améliorée, nettement plus moderne, avec des LED et des DIGIT. Et comme c'est au plus moderne, va-t-il falloir aussi que vous sortiez la carte bleue avec les prélèvements automatiques et tout le toutim ? Aïe, aïe, aïe... Bon tiercé, quand même ! - Code:
-
rem ' Courses de toutous pantouflards - par jjn4 - 150514.1.1 ================= dim a , b , i , j : rem Variables provisoires numériques dim a$ , b$ : rem Variables provisoires alphanumériques dim ct : rem Cagnotte dim dt(7) : rem Distance de chacun des Toutous dim FD1$(12) , FD2$(12) , FD3$(12) : rem Textes des Frais Divers dim FD%(12) : rem Montant des Frais Divers dim ig : rem Indicateur de Gagnant dim in : rem Indicateur de numéro d`ordre du tir dim MM% : rem Montant de la Mise dim NC$(7) : rem Nom des Chiens dim pv : rem Paramètre de Vitesse dim rd : rem Résultat dans le Désordre dim ro : rem Résultat dans l`Ordre dim rt(7) : rem Rang de chacun des Toutous dim to(3) : rem Tiercé Obtenu dim tp(3) : rem Tiercé Parié dim tp$ : rem Titre du Programme dim zz(7) : rem Paramètre du bilan de compétences label clic : rem Redirection de tous les on-click tp$=" Courses de toutous pantouflards - par jjn4 - Ver-150514.1.1" rem Lecture des datas --------------------------------------------------------- for i=1 to 7 read NC$(i) next i for i=1 to 12 read FD1$(i) read FD%(i) read FD2$(i) read FD3$(i) next i if file_exists("Toutous-pécule.txt")=0 file_open_write 1,"Toutous-pécule.txt" file_writeln 1,"0" file_close 1 else file_open_read 1,"Toutous-pécule.txt" file_readln 1,ct file_close 1 end_if rem form0 ===================================================================== width 0,1360 height 0,720 caption 0,tp$ rem Affichage des numéros (1 à 7) --------------------------------------------- for i=1 to 7 alpha i left i,7 top i,(i-1)*60+20 font_bold i font_size i,14 caption i,i next i
picture 8 : rem ligne d`arrivée ----------------------------------------------- left 8,35 width 8,4 height 8,430 color 8,240,240,240 2d_target_is 8 2d_line 1,1,1,430 rem Toutous (10 à 40) --------------------------------------------------------- for i=1 to 7 alpha (i-1)*5+10 left (i-1)*5+10,1270 top (i-1)*5+10,(i-1)*60 font_size (i-1)*5+10,50 font_name (i-1)*5+10,"Webdings" caption (i-1)*5+10,chr$(245) colorier((i-1)*5+10,i) next i
rem Cache de départ ----------------------------------------------------------- form 45 width 45,1360 height 45,720 caption 45," Courses de toutous" picture 50 : rem Ligne de départ ---------------------------------------------- left 50,1270 width 50,4 height 50,430 color 50,240,240,240 2d_target_is 50 2d_line 1,1,1,430
alpha 55 : rem Bouton double flèches vers la gauche --------------------------- left 55,1230 top 55,440 font_color 55,0,0,255 caption 55,"Top départ...Feu !" button 60 left 60,1220 top 60,455 width 60,100 height 60,90 font_size 60,70 font_name 60,"Wingdings" caption 60,chr$(239) on_click 60,clic inactive 60
alpha 62 : rem Affichage de l`indication d`arrivée ---------------------------- left 62,2 top 62,435 font_bold 62 font_size 62,12 font_color 62,255,0,0 caption 62,"Arrivée" alpha 65 : rem Affichage des stéroïdes ---------------------------------------- left 65,2 top 65,464 width 65,56 height 65,24 color 65,192,192,192
led1 66 left 66,18 top 66,465 color 66,255,0,0 mark_off 66 alpha 67 left 67,2 top 67,490 font_color 67,0,0,255 caption 67,"Injection de"+chr$(13)+" stéroïdes" button 68 left 68,2 top 68,520 width 68,56 height 68,40 font_size 68,30 font_name 68,"Webdings" caption 68,chr$(55) on_click 68,clic inactive 68
alpha 69 : rem Bouton flèche vers la droite et butée -------------------------- left 69,190 top 69,455 font_color 69,0,0,255 caption 69,"Retour au départ" button 70 left 70,180 top 70,470 width 70,100 height 70,90 font_size 70,70 font_name 70,"Webdings" caption 70,chr$(58) on_click 70,clic inactive 70
alpha 74 : rem Bouton d`aide -------------------------------------------------- left 74,95 top 74,455 font_color 74,0,0,255 caption 74,"Information"
button 75 left 75,70 top 75,470 width 75,100 height 75,90 font_size 75,70 font_name 75,"Webdings" caption 75,chr$(105) on_click 75,clic
container 80 : rem Système de mise ============================================ left 80,900 top 80,435 width 80,310 height 80,240 caption 80,"Faites vos jeux (carte bleue)" panel 85 parent 85,80 full_space 85 font_size 85,280 font_color 85,0,0,255 font_name 85,"Webdings" caption 85,chr$(147)
digit1 90 left 90,1219 top 90,593 width 90,50 height 90,80 caption 90,0 digit1 95 left 95,1269 top 95,593 width 95,50 height 95,80 caption 95,0 alpha 97 left 97,1320 top 97,640 font_size 97,18 caption 97,"€" panel 100 parent 100,85 left 100,220 top 100,80 width 100,67 height 100,136 color 100,255,0,0 button 105 parent 105,100 left 105,4 top 105,4 width 105,60 height 105,40 font_bold 105 font_size 105,18 font_name 105,"Arial" caption 105,"5 €" on_click 105,clic button 110 parent 110,100 left 110,4 top 110,48 width 110,60 height 110,40 font_bold 110 font_size 110,18 font_name 110,"Arial" caption 110,"10 €" on_click 110,clic button 115 parent 115,100 left 115,4 top 115,92 width 115,60 height 115,40 font_bold 115 font_size 115,18 font_name 115,"Arial" caption 115,"20 €" on_click 115,clic button 120 left 120,1220 top 120,550 width 120,100 height 120,38 font_bold 120 font_size 120,16 caption 120,"Annuler" on_click 120,clic inactive 120 alpha 125 parent 125,85 left 125,40 top 125,30 font_size 125,18 font_name 125,"Arial" color 125,0,0,255 font_color 125,255,255,255 caption 125,"50 € maximum" alpha 150 : rem Précision de la nature du pari ================================ left 150,350 top 150,450 font_bold 150 font_size 150,16 font_color 150,0,0,255 caption 150,"Premier" panel 160 left 160,300 top 160,475 width 160,80 height 160,65 font_size 160,70 font_name 160,"Webdings" colorier(160,1) caption 160,chr$(245) panel 170 left 170,380 top 170,475 width 170,50 height 170,65 font_size 170,50 font_name 170,"Arial" font_color 170,0,0,255 caption 170,"1" alpha 175 left 175,300 top 175,545 font_color 175,0,0,255 caption 175,NC$(1) button 180 left 180,430 top 180,475 width 180,50 height 180,40 font_size 180,25 font_name 180,"Wingdings" caption 180,chr$(241) on_click 180,clic button 190 left 190,430 top 190,520 width 190,50 height 190,40 font_size 190,25 font_name 190,"Wingdings" caption 190,chr$(242) on_click 190,clic
alpha 200 : rem Deuxième arrivant prévu --------------------------------------- left 200,540 top 200,450 font_bold 200 font_size 200,16 font_color 200,0,0,255 caption 200,"Deuxième" panel 210 left 210,500 top 210,475 width 210,80 height 210,65 font_size 210,70 font_name 210,"Webdings" colorier(210,2) caption 210,chr$(245) panel 220 left 220,580 top 220,475 width 220,50 height 220,65 font_size 220,50 font_name 220,"Arial" font_color 220,0,0,255 caption 220,"2" alpha 225 left 225,500 top 225,545 font_color 225,0,0,255 caption 225,NC$(2) button 230 left 230,630 top 230,475 width 230,50 height 230,40 font_size 230,25 font_name 230,"Wingdings" caption 230,chr$(241) on_click 230,clic button 240 left 240,630 top 240,520 width 240,50 height 240,40 font_size 240,25 font_name 240,"Wingdings" caption 240,chr$(242) on_click 240,clic alpha 250 : rem Troisième arrivant prévu -------------------------------------- left 250,740 top 250,450 font_bold 250 font_size 250,16 font_color 250,0,0,255 caption 250,"Troisième" panel 260 left 260,700 top 260,475 width 260,80 height 260,65 font_size 260,70 font_name 260,"Webdings" colorier(260,3) caption 260,chr$(245) panel 270 left 270,780 top 270,475 width 270,50 height 270,65 font_size 270,50 font_name 270,"Arial" font_color 270,0,0,255 caption 270,"3" alpha 275 left 275,700 top 275,545 font_color 275,0,0,255 caption 275,NC$(3) button 280 left 280,830 top 280,475 width 280,50 height 280,40 font_size 280,25 font_name 280,"Wingdings" caption 280,chr$(241) on_click 280,clic button 290 left 290,830 top 290,520 width 290,50 height 290,40 font_size 290,25 font_name 290,"Wingdings" caption 290,chr$(242) on_click 290,clic alpha 300 : rem Informations diverses ========================================= left 300,10 top 300,575 font_size 300,14 font_color 300,255,0,0 caption 300,"ORDRE D'ARRIVÉE :" alpha 305 left 305,210 top 305,575 font_size 305,14 font_color 305,0,0,255 alpha 310 left 310,230 top 310,575 font_size 310,14 font_color 310,0,0,255 alpha 315 left 315,250 top 315,575 font_size 315,14 font_color 315,0,0,255 alpha 320 left 320,320 top 320,575 font_size 320,14 font_color 320,255,0,0 caption 320,"VOUS GAGNEZ :" alpha 330 left 330,490 top 330,575 font_size 330,14 font_color 330,0,0,255 alpha 340 left 340,600 top 340,575 font_size 340,14 font_color 340,255,0,0 caption 340,"VOTRE PÉCULE :" alpha 350 left 350,780 top 350,575 font_size 350,14 font_color 350,0,0,255 caption 350,str$(ct)+" €" panel 370 : rem Affichage des mauvaises nouvelles ----------------------------- left 370,10 top 370,610 width 370,805 height 370,60 color 370,0,0,0 alpha 380 parent 380,370 left 380,10 top 380,5 font_size 380,14 font_color 380,255,0,0 caption 380,"INFORMATION :" alpha 390 parent 390,370 left 390,180 top 390,5 font_size 390,14 font_color 390,0,255,0 alpha 400 parent 400,370 left 400,10 top 400,30 font_size 400,14 font_color 400,0,255,0 button 410 left 410,820 top 410,610 height 410,60 font_bold 410 font_size 410,12 caption 410,"Quitter" on_click 410,clic midi_on midi_volume 127 hide 45
end : rem ' Début des routines ================================================
sub affiche() : rem Affichage de la mise en chiffres digit ==================== dim_local v1af% , v2af% v1af%=int(MM%/10) v2af%=MM%-v1af%*10 caption 90,v1af% caption 95,v2af% end_sub
sub aide() : rem Affichage de l`aide ========================================== application_title " Qui sont ces toutous rondouillards ?" a$=" Sur conseil de leur vétérinaire, les mémères qui ont des toutous"+chr$(13) a$=a$+"gras et replets, ont décidé de leur faire faire un peu de sport."+chr$(13) a$=a$+"Aussi ont-elles organisé des courses destinées à savoir qui, de"+chr$(13) a$=a$+"leurs différents cabots rondouillards, sera le héros du jour."+chr$(13)+chr$(13) a$=a$+" Pour votre bonheur, des spéculateurs ont monté un système"+chr$(13) a$=a$+"de paris, qui risque de vous faire gagner beaucoup d'argent. Mais"+chr$(13) a$=a$+"il y a aussi l'État, la banque et la société d'organisation des courses"+chr$(13) a$=a$+"canines auxquels vous avez dû donner autorisation de prélèvement"+chr$(13) a$=a$+"automatique, qui ne manquent pas de prendre leur part du gâteau..."+chr$(13)+chr$(13) a$=a$+" Un autre détail, c'est que, habituellement, les toutous à ces"+chr$(13) a$=a$+"mémères ne sont pas des flèches et s'arrêtent souvent pour flairer"+chr$(13) a$=a$+"une touffe d'herbe, faire un petit pipi, se gratter une pupuce..."+chr$(13) a$=a$+"Alors n'attendez pas trop d'eux (sauf incitations particulières)."+chr$(13) a$=a$+"Ah, et ne vous étonnez pas de la couleur de certains, vous savez"+chr$(13) a$=a$+"qu'il est maintenant très tendance de faire teindre son chien."+chr$(13)+chr$(13) a$=a$+" Faites vite votre tiercé et apprenez à distinguer, parmi tous"+chr$(13) a$=a$+"ces toutous pantouflards, les champions et les tocards !"+chr$(13) a$=a$+"Sans compter que vous allez peut-être devenir millionnaire..."+chr$(13) a$=a$+"Allez, pour les toutous rondouillards et pantouflards, hip hip hip..." message a$ end_sub
sub annule() : rem Annule la mise ============================================= MM%=0 affiche() active 105 active 110 active 115 inactive 60 end_sub
sub bas1() : rem Le joueur choisit le chien 1 par la bas ====================== dim_local v1b1% v1b1%=val(caption$(170)) v1b1%=v1b1%-1 if v1b1%<1 v1b1%=7 end_if caption 170,v1b1% colorier(160,v1b1%) caption 175,NC$(v1b1%) verif() end_sub
sub bas2() : rem Le joueur choisit le chien 2 par le bas ====================== dim_local v1b2% v1b2%=val(caption$(220)) v1b2%=v1b2%-1 if v1b2%<1 v1b2%=7 end_if caption 220,v1b2% colorier(210,v1b2%) caption 225,NC$(v1b2%) verif() end_sub
sub bas3() : rem Le joueur choisit le chien 3 par le bas ====================== dim_local v1b3% v1b3%=val(caption$(270)) v1b3%=v1b3%-1 if v1b3%<1 v1b3%=7 end_if caption 270,v1b3% colorier(260,v1b3%) caption 275,NC$(v1b3%) verif() end_sub
sub cinq() : rem Le joueur mise cinq euros ==================================== if MM%+5<51 MM%=MM%+5 affiche() end_if verif() active 120 end_sub
clic: : rem Redirection de tous on-click ====================================== select number_click case 60 : pan() case 68 : vite() case 70 : ligne() case 75 : aide() case 105 : cinq() case 110 : dix() case 115 : vingt() case 120 : annule() case 180 : haut1() case 190 : bas1() case 230 : haut2() case 240 : bas2() case 280 : haut3() case 290 : bas3() case 410 : quitter() end_select return
sub colorier(qo%,qc%) : rem Colorier les chiens =================================== rem qc% = Quel Chien rem qo% = Quel Objet-système select qc% case 1 : font_color qo%,180,180,180 case 2 : font_color qo%,255,0,0 case 3 : font_color qo%,0,255,0 case 4 : font_color qo%,0,0,0 case 5 : font_color qo%,255,180,0 case 6 : font_color qo%,0,200,255 case 7 : font_color qo%,255,160,255 end_select end_sub
rem datas ===================================================================== data "Nuage de provence" , "Fleur de rubis" , "Chlorophylle" data "Graine de pirate" , "Clémentine-jolie" , "Septième ciel" data "Bonbon d'amour" data "L'État vous a prélevé " , 5 , " euros à titre" data "de taxe spéciale sur les spéculations cynophiles" data "L'État vous a prélevé " , 8 , " euros pour" data "participation obligatoire à la solidarité générale" data "L'État vous a prélevé " , 10 , " euros à titre" data "taxe exceptionnelle sur les revenus subsidiaires" data "L'État vous a prélevé " , 7 , " euros à titre de" data "taxe exceptionnelle sur les courses animalières" data "L'État vous a prélevé " , 8 , " euros à titre" data "de taxe spéciale sur les paris et jeux d'argent" data "Un prélèvement de " , 15 , " euros vous a été fait pour" data "renouveler votre droit de participation aux courses de toutous" data "La banque vous a prélevé " , 1 , " euros" data "pour frais de tenue de compte et de carte bleue" data "La banque vous a prélevé " , 10 , " euros pour" data "le renouvellement de votre assurance bancaire" data "La société des courses de toutous vous a prélevé " , 6 , " euros" data "pour la gestion des frais d'élimination des déjections canines" data "La société des courses canines vous a prélevé " , 7 , " euros" data "pour les frais d'entretien du champ des courses cynophiles" data "La société des courses de toutous vous a prélevé " , 12 , " euros" data "pour les frais d'organisation des concours canins" data "La société des coures canines vous a prélevé " , 8 , " euros" data "pour la gestion sanitaire des courses de toutous" rem Fin des datas
sub dix() : rem Le joueur mise dix euros ====================================== if MM%+10<51 MM%=MM%+10 affiche() end_if verif() active 120 end_sub
sub gains() : rem Calcul et affichage des gains et de l`état de la cagnotte === dim_local v1ga% ro=0 : rd=0 : a=0 for i=1 to 3 if tp(i)=to(i) ro=ro+1 end_if next i for i=1 to 3 for j=1 to 3 if tp(i)=to(j) rd=rd+1 end_if next j next i if rd=1 a=1 end_if if rd=2 a=MM% end_if if ro=1 a=MM%*2+int(rnd(10)) end_if if ro=2 a=MM%*int(rnd(20))+11 end_if if rd=3 a=MM%*int(rnd(50))+21 end_if if ro=3 a=MM%*int(rnd(100))+51 end_if ct=ct-MM%+a caption 330,str$(a)+" €" caption 350,str$(ct)+" €" a$="" : b$="" : b=0 a=int(rnd(50))+1 if pv=1 b=int(rnd(3))+1 if b=1 a$="L'État vous a prélevé 15 € pour frais de contrôle de l'utilisation" b$="des stéroïdes sur les animaux de compagnie à des fins compétitives" ct=ct-5 end_if end_if if a$="" if val(left$(caption$(350),len(caption$(350))-2))>1000 if a=49 a$="Votre compte a été entièrement vidé (probablement par des" b$="pirates informatiques), votre assurance vous rembourse 200 €" ct=200 end_if end_if end_if if a$="" if a<25 b=int((a-1)/2)+1 v1ga%=FD%(b) if b<6 if ct>100 v1ga%=int(ct/20)*FD%(b) end_if end_if a$=FD1$(b)+str$(v1ga%)+FD2$(b) b$=FD3$(b) ct=ct-v1ga% end_if end_if caption 350,str$(ct)+" €" if a$<>"" caption 390,a$ caption 400,b$ pause 100 midi_instrument 100 midi_play 60,10 pause 100 midi_play 54,10 end_if file_open_write 1,"Toutous-pécule.txt" file_writeln 1,str$(ct) file_close 1 mark_off 66 pv=0 end_sub sub haut1() : rem Le joueur choisit le chien 1 par la haut ==================== dim_local v1h1% v1h1%=val(caption$(170)) v1h1%=v1h1%+1 if v1h1%>7 v1h1%=1 end_if caption 170,v1h1% colorier(160,v1h1%) caption 175,NC$(v1h1%) verif() end_sub
sub haut2() : rem Le joueur choisit le chien 2 par la haut ==================== dim_local v1h2% v1h2%=val(caption$(220)) v1h2%=v1h2%+1 if v1h2%>7 v1h2%=1 end_if caption 220,v1h2% colorier(210,v1h2%) caption 225,NC$(v1h2%) verif() end_sub
sub haut3() : rem Le joueur choisit le chien 3 par la haut ==================== dim_local v1h3% v1h3%=val(caption$(270)) v1h3%=v1h3%+1 if v1h3%>7 v1h3%=1 end_if caption 270,v1h3% colorier(260,v1h3%) caption 275,NC$(v1h3%) verif() end_sub
sub ligne() : rem Tout le monde se remet en ligne ============================= for i=1 to 7 left (i-1)*5+10,1270 next i show 50 for i=180 to 280 step 50 active i active i+10 next i caption 330,"" for i=105 to 115 step 5 active i next i for i=1 to 2 caption (i-1)*5+90,0 next i caption 90,0 caption 95,0 inactive 70 end_sub
sub pan() : rem Déclanchement du départ ======================================= inactive 60 active 68 for i=180 to 280 step 50 inactive i inactive i+10 next i for i=105 to 115 step 5 inactive i caption i+200,"" next i inactive 120 caption 390,"" caption 400,"" midi_instrument 127 midi_play 66,6 hide 50 ig=0 in=in+1 while ig=0 a=int(rnd(7))+1 if even(a)=1 a=8-a end_if left (a-1)*5+10,left((a-1)*5+10)-25 if pv=0 pause 50 end_if for i=10 to 40 step 5 if left(i)<30 ig=1 end_if next i end_while beep a=0 : b=0 for i=1 to 7 dt(i)=left((i-1)*5+10) rt(i)=i next i for i=1 to 6 for j=1 to 6 if dt(j)=>dt(j+1) a=dt(j) : b=rt(j) dt(j)=dt(j+1) : rt(j)=rt(j+1) dt(j+1)=a : rt(j+1)=b end_if next j next i for i=305 to 315 step 5 caption i,rt((i-300)/5) next i for i=1 to 3 tp(i)=val(caption$((i-1)*50+170)) to(i)=val(caption$((i-1)*5+305)) next i gains() a=(val(caption$(310))-1)*5+10 b=(val(caption$(315))-1)*5+10 if left(a)>45 or left(b)>45 for i=left(b) to 50 step -25 if left(a)>45 left a,left(a)-25 end_if if left(b)>45 left b,left(b)-24 end_if if a<40 and b<40 and left(40)>200 left 40,left(40)+25 end_if if pv=0 pause 25 end_if next i end_if for i=1 to 7 if rt(1)=i zz(i)=zz(i)+1 end_if next i a$="Bilan des compétences de chacun des toutous : " for i=1 to 7 a$=a$+str$(zz(i)) if i<7 a$=a$+"-" end_if next i if caption$(400)="" caption 400,a$ end_if active 70 inactive 68 MM%=0 end_sub
sub quitter() : rem Quitter le programme ====================================== dim_local v1qu% v1qu%=int(rnd(7))+1 a$="Vous savez que "+NC$(v1qu%)+chr$(13) a$=a$+"et les autres vous ont pris en affection ?" a$=a$+chr$(13)+"Vous voulez vraiment les quitter ?" v1qu%=message_confirmation_yes_no(a$) if v1qu%=1 midi_off terminate end_if end_sub
sub verif() : rem Vérifie si la mise est atteinte et éteind les boutons ======= dim_local v1ve% , v2ve% , v3ve% v1ve%=val(caption$(170)) v2ve%=val(caption$(220)) v3ve%=val(caption$(270)) if MM%+5>50 inactive 105 end_if if MM%+10>50 inactive 110 end_if if MM%+20>50 inactive 115 end_if inactive 60 if active(70)=0 if MM%>0 if v1ve%<>v2ve% and v2ve%<>v3ve% and v1ve%<>v3ve% active 60 end_if end_if end_if end_sub
sub vingt() : rem Le joueur mise vingt euros ================================== if MM%+20<51 MM%=MM%+20 affiche() end_if verif() active 120 end_sub
sub vite() : rem Affichage de la vitesse ====================================== if pv=0 pv=1 mark_on 66 else pv=0 mark_off 66 end_if end_sub
| |
|