jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Mah-jong grec Dim 9 Avr 2017 - 15:29 | |
| Vous connaissez les lettres grecques ? Oui, bon, alpha, bêta... d'accord, mais certaines risquent de vous rester bien mystérieuses... Eh bien, voici un jeu qui va vous les faire réviser en s'amusant... - Code:
-
rem ' Mah-Jong grec - par jjn4 - le 09/04/2017 ================================ dim DC%(6,3) : rem Définition des Couleurs utilisées dim ET%(256) : rem État des Tuiles dim LCF%(5,6) : rem Limite des Couches par Formule dim LG$(39) , LG2$(39) : rem Lettres Grecques et son clone dim NB$(9) : rem Nom des Boutons de commande dim NF% : rem Numéro de la Formule utilisée dim NLG$(39) : rem Nom des Lettres Grecques dim NPL% : rem Niveau de Progression dans la liste des coups joués dim NRT%(5,3) : rem Nombre de Répétition des Tuiles par formule et niveau dim NTR% : rem Nombre de Tuiles Restant non jouées dim NTU% : rem Nombre de Tuiles Utilisées par formule dim PTC% : rem Numéro de la Première Tuile Cliquée dim TG%(256) , TD%(256) : rem Repérage des Tuiles Gauche et Droite dim TH1%(256) , TH2%(256) , TH3%(256) , TH4%(256) : rem Tuiles en Haut dim V1M% , V2M% , V3M$ , V4M% : rem Variables à utilisation Multiple label clic : rem Redirection de tous les on-click
rem Form0 ===================================================================== width 0,1360 height 0,720 caption 0," Maj-Jong Grec - par jjn4 - Ver-090417.1.1"
rem Cache de début de jeu ===================================================== form 10 width 10,1360 height 10,720 caption 10," Maj-jong grec - suspens..." panel 20 parent 20,10 left 20,170 top 20,100 width 20,800 height 20,450 alpha 30 parent 30,20 left 30,10 top 30,60 font_size 30,280 font_name 30,"Webdings" caption 30,chr$(83) alpha 40 parent 40,20 left 40,460 top 40,180 font_size 40,50 font_name 40,"Arial" caption 40,"Mah-jong"+chr$(13)+" grec" progress_bar 50 parent 50,20 left 50,50 top 50,30 width 50,700 max 50,200 min 50,0 position 50,0
rem Panneau de fin de jeu ===================================================== panel 60 left 60,280 top 60,200 width 60,540 height 60,80 font_size 60,20 font_name 60,"Arial" caption 60,"V o u l e z - v o u s r e j o u e r ?" hide 60 on_click 60,clic
rem Lecture des datas ========================================================= for V1M% = 1 to 6 for V2M% = 1 to 3 read DC%(V1M%,V2M%) next V2M% next V1M% for V1M% = 1 to 9 read NB$(V1M%) next V1M% for V1M% = 1 to 13 read LG$(V1M%) next V1M% for V1M% = 14 to 39 LG$(V1M%)=chr$(V1M%+83) next V1M% for V1M% = 1 to 39 read NLG$(V1M%) next V1M% for V1M% = 1 to 5 for V2M% = 1 to 3 read NRT%(V1M%,V2M%) next V2M% next V1M% for V1M% = 1 to 5 for V2M% = 1 to 6 read LCF%(V1M%,V2M%) next V2M% next V1M% position 50,50 rem Construction des tuiles =================================================== for V1M% = 99 to 356 panel V1M% hide V1M% width V1M%,65 height V1M%,95 font_name V1M%,"Symbol" font_size V1M%,40 on_click V1M%,clic inactive V1M% next V1M% position 50,20 formule1() NF%=1 position 50,100
rem Déclaration des niveaux et zone de dialogue - n° 400 à 440 ================ alpha 400 left 400,1165 top 400,5 width 400,150 height 400,25 color 400,0,0,0 alpha 405 left 405,1173 top 405,11 font_bold 405 color 405,0,0,0 font_color 405,255,255,255 caption 405," É T A G E S" rem Objet-Système n° 410 à 415 et 420 à 425 -------------------------------- for V1M% = 1 to 6 alpha 409+V1M% left 409+V1M%,1140+V1M%*25 top 409+V1M%,30 width 409+V1M%,25 height 409+V1M%,25 color 409+V1M%,DC%(V1M%,1),DC%(V1M%,2),DC%(V1M%,3) alpha 419+V1M% left 419+V1M%,1149+V1M%*25 top 419+V1M%,36 caption 419+V1M%,V1M% color 419+V1M%,DC%(V1M%,1),DC%(V1M%,2),DC%(V1M%,3) next V1M% rem Zone de dialogue - n° 430 et 440 --------------------------------------- alpha 430 : rem Zone de dialogue left 430,1165 top 430,55 width 430,150 height 430,25 color 430,200,200,200 alpha 440 left 440,1169 top 440,59 font_size 440,10 font_bold 440 color 440,200,200,200 position 50,150
rem Boutons de commande - n° 500 à 580 à pas de 10 ============================ for V1M% = 1 to 9 button V1M%*10+490 left V1M%*10+490,1165 top V1M%*10+490,(V1M%-1)*65+85 width V1M%*10+490,150 height V1M%*10+490,60 font_bold V1M%*10+490 font_size V1M%*10+490,14 font_name V1M%*10+490,"Arial" caption V1M%*10+490,NB$(V1M%) on_click V1M%*10+490,clic next V1M% inactive 530 inactive 540 position 50,200 dlist 600 : rem Liste servant à reculer et avancer ------------------------- panel 700 : rem Cache en cours de partie width 700,1150 height 700,670 lettres() display midi_on midi_volume 127 midi_instrument 115 midi_play 80,10 caption 440,"Bienvenue" parent 20,700 activer() hide 700 hide 10
end : rem ' Début des routines ================================================
sub activer() : rem Activer les tuiles disponibles en début de jeu ============ dim_local v1ac% , v2ac% for v1ac% = 1 to NTU% v2ac%=0 if TG%(v1ac%)>0 then v2ac%=v2ac%+1 if TD%(v1ac%)>0 then v2ac%=v2ac%+1 if TH1%(v1ac%)>0 then v2ac%=v2ac%+1 if TH2%(v1ac%)>0 then v2ac%=v2ac%+1 if TH3%(v1ac%)>0 then v2ac%=v2ac%+1 if TH4%(v1ac%)>0 then v2ac%=v2ac%+1 if v2ac%<2 active v1ac%+99 end_if next v1ac% end_sub
sub affich() : rem Affiche l`indication d`appuyer sur le bouton rejouer ======= caption 60,"Alors, cliquez sur le bouton « Rejouer »" end_sub
sub aide() dim_local v1ai% application_title " Explication du fonctionnement du Mah-Jong grec"+chr$(13) V3M$=" De par leur origine, les Mah-jong sont généralement en chinois."+chr$(13) V3M$=V3M$+"Mais pour nous, les caractères chinois se confondent facilement."+chr$(13) V3M$=V3M$+"Alors, voici un Mah-jong plus conforme à notre civilisation"+chr$(13) V3M$=V3M$+"gréco-latine."+chr$(13)+chr$(13) V3M$=V3M$+" A noter cependant que, conformément à l'esprit de la civilisation"+chr$(13) V3M$=V3M$+"chinoise, il n'y a pas de points, ni de compétition, ni de stress,"+chr$(13) V3M$=V3M$+"dans ce jeu. C'est un jeu calme où on a tout le temps de réfléchir,"+chr$(13) V3M$=V3M$+"le but étant d'aller simplement jusqu'au bout de l'objectif qu'on"+chr$(13) V3M$=V3M$+"s'est fixé et de la sérénité qu'on cherche à atteindre."+chr$(13)+chr$(13) V3M$=V3M$+" Le fonctionnement de ce jeu est simple. Les tuiles s'enlèvent"+chr$(13) V3M$=V3M$+"deux par deux en les sortant par la gauche ou par la droite, à la"+chr$(13) V3M$=V3M$+"condition qu'elles ne soient pas coincées par d'autres tuiles,"+chr$(13) V3M$=V3M$+"c'est-à-dire qu'une tuile ayant une copine à sa gauche et une autre"+chr$(13) V3M$=V3M$+"à sa droite ne peut être enlevée qu'en retirant d'abord une de celles"+chr$(13) V3M$=V3M$+"qui la gênent sur les côtés (idem si elle en a d'autres sur son dos)." message V3M$ end_sub
sub avancer() : rem Le joueur avance dans sa progression dans la liste ======== if count(600)>1 and NPL%<count(600)-1 desact() hide item_read$(600,NPL%+1) hide item_read$(600,NPL%+2) verif(item_read$(600,NPL%+1)) verif(item_read$(600,NPL%+2)) desact() NTR%=NTR%-2 NPL%=NPL%+2 if NPL%>count(600)-1 inactive 540 end_if active 530 caption 440,"Retour vers l'avant" end_if end_sub
clic: : rem Redirection de tous les on-click ================================== select number_click case 60 : affich() case 500 : formule() case 510 : niveau() case 520 : suggest() case 530 : reculer() case 540 : avancer() case 550 : restruc() case 560 : rejouer() case 570 : aide() case 580 : quitter() end_select if number_click>99 and number_click<357 tuile() end_if return
rem Début des datas =========================================================== data 255,255,0,255,200,255,0,255,0,255,180,0,0,220,255,255,80,255 data "Formule 1" , "Niveau 1" , "Suggestion" , " Reculer" , "Avancer" data "Restructurer" , "Rejouer" , "Aide" , "Quitter" data "D","F","G","J","L","P","Q","S","V","W","X","Y","¡" data "delta","phi","gamma","thêta","lambda","pi","thêta","sigma","sigma" data "oméga","ksi","psi","upsilon","alpha","bêta","khi","delta","epsilon" data "phi","gamma","êta","iota","phi","kappa","lambda","mu","nu","omicron" data "pi","thêta","rhô","sigma","tau","upsilon","pi","oméga","ksi","psi","zêta" data 16,8,4,14,10,4,16,14,8,32,16,8,22,18,6 data 148,163,0,0,0,0,184,224,239,0,0,0,213,281,319,323,0,0 data 205,277,322,346,355,0,178,232,267,287,295,297 rem Fin des datas
sub desact() : rem Désactive-Reactive les boutons de commande ================= dim_local v1in% , v2in% for v1in% = 1 to 7 if width(v1in%*10+490)=149 v2in%=1 exit_for end_if next v1in% if v2in%=0 for v1in% = 1 to 7 if active(v1in%*10+490)=1 width v1in%*10+490,149 inactive v1in%*10+490 end_if next v1in% else for v1in% = 1 to 7 if width(v1in%*10+490)=149 active v1in%*10+490 width v1in%*10+490,150 end_if next v1in% end_if end_sub
sub fini() : rem Le joueur a fini de vider sa planche de travail ============== dim_local v1fi% for v1fi% = 520 to 550 step 10 inactive v1fi% next v1fi% caption 440,"Bravo, c'est gagné !" show 60 midi_instrument 100 for v1fi% = 60 to 72 step 2 midi_play v1fi%,10 next v1fi% active 500 active 510 end_sub
sub formule() : rem Modification de la formule ================================ dim_local v1fo% inactive 500 desact() caption 440,"Travail en cours" hide 60 show 700 position 50,0 NF%=val(right$(caption$(500),1)) NF%=NF%+1 if NF%>5 NF%=1 end_if caption 500,"Formule "+str$(NF%) for v1fo% = 100 to 356 hide v1fo% inactive v1fo% TG%(v1fo%-100)=0 TD%(v1fo%-100)=0 TH1%(v1fo%-100)=0 TH2%(v1fo%-100)=0 TH3%(v1fo%-100)=0 TH4%(v1fo%-100)=0 next v1fo% NPL%=0 select NF% case 1 : formule1() case 2 : formule2() case 3 : formule3() case 4 : formule4() case 5 : formule5() end_select clear 600 lettres() activer() hide 700 caption 440,"Formule "+str$(NF%) midi_instrument 115 midi_play 80,10 desact() active 500 active 550 end_sub
sub formule1() : rem Affichage des tuiles de formule 1 - N° 100 à 163 ========= dim_local v1f1% , v2f1% NTU%=64 rem Couche 1 - tuiles n° 100 à 148 ----------------------------------------- for v1f1% = 1 to 2 for v2f1% = 1 to 17 left (v1f1%-1)*17+v2f1%+99,(v2f1%-1)*65+20 top (v1f1%-1)*17+v2f1%+99,(v1f1%-1)*95+195 color (v1f1%-1)*17+v2f1%+99,255,255,0 TG%((v1f1%-1)*17+v2f1%)=(v1f1%-1)*17+v2f1%+98 TD%((v1f1%-1)*17+v2f1%)=(v1f1%-1)*17+v2f1%+100 if v1f1%=2 TH1%((v1f1%-1)*17+v2f1%)=v2f1%+146 TH2%((v1f1%-1)*17+v2f1%)=v2f1%+147 else TH3%((v1f1%-1)*17+v2f1%)=v2f1%+146 TH4%((v1f1%-1)*17+v2f1%)=v2f1%+147 end_if next v2f1% position 50,100 next v1f1% : rem Tuiles n° 134 à 148 ....................................... for v1f1% = 1 to 5 for v2f1% = 1 to 3 left (v1f1%-1)*3+v2f1%+133,(v2f1%-1)*65+475 top (v1f1%-1)*3+v2f1%+133,(v1f1%-1)*95+5+int(v1f1%/3)*190 color (v1f1%-1)*3+v2f1%+133,255,255,0 TG%((v1f1%-1)*3+v2f1%+34)=(v1f1%-1)*3+v2f1%+132 TD%((v1f1%-1)*3+v2f1%+34)=(v1f1%-1)*3+v2f1%+134 next v2f1% next v1f1% for v1f1% = 1 to 3 TG%((v1f1%-1)*17+1)=0 TG%((v1f1%-1)*3+38)=0 TD%((v1f1%-1)*3+34)=0 TD%((v1f1%-1)*3+43)=0 TH2%(v1f1%+31)=0 TH4%(v1f1%+14)=0 next v1f1% for v1f1% = 1 to 2 TH1%(v1f1%+17)=0 TH1%(v1f1%+32)=0 TH1%(v1f1%+41)=v1f1%+161 TH2%(v1f1%+40)=v1f1%+161 TH3%((v1f1%-1)*15+1)=0 TH3%((v1f1%-1)*15+2)=0 TH3%(v1f1%+25)=v1f1%+161 TH4%(v1f1%+24)=v1f1%+161 next v1f1% TG%(47)=0 : TD%(17)=0 TH2%(18)=0 : TH4%(1)=0 position 50,150 rem Couche 2 - tuiles n° 149 à 161 ----------------------------------------- for v1f1% = 1 to 13 left v1f1%+148,(v1f1%-1)*65+117 top v1f1%+148,242 color v1f1%+148,255,200,255 TG%(v1f1%+49)=v1f1%+147 TD%(v1f1%+49)=v1f1%+149 next v1f1% : rem Tuiles n° 162 à 163 ....................................... for v1f1% = 1 to 2 left v1f1%+161,(v1f1%-1)*65+507 top v1f1%+161,337 color v1f1%+161,255,200,255 TG%(v1f1%+62)=v1f1%+160 TD%(v1f1%+62)=v1f1%+162 next v1f1% TG%(50)=0 : TG%(63)=0 TD%(62)=0 : TD%(64)=0 position 50,200 for v1f1% = 100 to 163 show v1f1% next v1f1% end_sub
sub formule2() : rem Affichage des tuiles de formule 2 - n° 100 à 239 ========= dim_local v1f2% , v2f2% NTU%=140 rem Couche 1 - tuiles n° 100 à 184 ----------------------------------------- for v1f2% = 1 to 3 for v2f2% = 1 to 17 left (v1f2%-1)*17+v2f2%+99,(v2f2%-1)*65+20 top (v1f2%-1)*17+v2f2%+99,(v1f2%+1)*95+5 color (v1f2%-1)*17+v2f2%+99,255,255,0 TG%((v1f2%-1)*17+v2f2%)=(v1f2%-1)*17+v2f2%+98 TD%((v1f2%-1)*17+v2f2%)=(v1f2%-1)*17+v2f2%+100 if v1f2%=1 TH3%((v1f2%-1)*17+v2f2%)=v2f2%+183 TH4%((v1f2%-1)*17+v2f2%)=v2f2%+184 end_if if v1f2%=2 TH1%((v1f2%-1)*17+v2f2%)=v2f2%+183 TH2%((v1f2%-1)*17+v2f2%)=v2f2%+184 TH3%((v1f2%-1)*17+v2f2%)=v2f2%+199 TH4%((v1f2%-1)*17+v2f2%)=v2f2%+200 end_if if v1f2%=3 TH1%((v1f2%-1)*17+v2f2%)=v2f2%+199 TH2%((v1f2%-1)*17+v2f2%)=v2f2%+200 end_if next v2f2% next v1f2% : rem Tuiles n° 151 à 166 ....................................... position 50,50 for v1f2% = 1 to 4 for v2f2% = 1 to 4 left (v1f2%-1)*4+v2f2%+150,(v2f2%-1)*65+20+int((v2f2%-1)/2)*845 top (v1f2%-1)*4+v2f2%+150,(v1f2%-1)*95+5+int((v1f2%-1)/2)*285 color (v1f2%-1)*4+v2f2%+150,255,255,0 next v2f2% next v1f2% : rem Tuiles n° 167 à 178 ....................................... for v1f2% = 1 to 4 for v2f2% = 1 to 3 left (v1f2%-1)*3+v2f2%+166,(v2f2%-1)*65+475 top (v1f2%-1)*3+v2f2%+166,(v1f2%-1)*95+5+int((v1f2%-1)/2)*285 color (v1f2%-1)*3+v2f2%+166,255,255,0 next v2f2% next v1f2% : rem Tuiles n° 179 à 182 ....................................... for v1f2% = 1 to 4 left v1f2%+178,(v1f2%-1)*65+345+int((v1f2%-1)/2)*195 top v1f2%+178,5 color v1f2%+178,255,255,0 next v1f2% : rem Tuiles n° 183 à 184 ....................................... for v1f2% = 1 to 2 left v1f2%+182,(v1f2%-1)*260+410 top v1f2%+182,575 color v1f2%+182,255,255,0 next v1f2% for v1f2% = 1 to 3 TG%((v1f2%-1)*17+1)=0 TD%((v1f2%-1)*17+17)=0 next v1f2% for v1f2% = 1 to 8 TG%((v1f2%-1)*2+53)=v1f2%*2+149 TD%((v1f2%-1)*2+52)=v1f2%*2+150 next v1f2% TG%(68)=180 : TG%(69)=167 : TG%(70)=168 : TG%(72)=170 : TG%(73)=171 TG%(75)=173 : TG%(76)=174 : TG%(77)=183 : TG%(78)=176 TG%(79)=177 : TG%(81)=179 : TG%(82)=169 : TG%(83)=181 : TG%(85)=178 TD%(68)=168 : TD%(69)=169 : TD%(70)=181 : TD%(71)=171 : TD%(72)=172 TD%(74)=174 : TD%(75)=175 : TD%(77)=177 : TD%(78)=178 TD%(79)=184 : TD%(80)=180 : TD%(81)=167 : TD%(82)=182 : TD%(84)=176 TH1%(2)=217 : TH1%(9)=221 : TH1%(10)=222 : TH1%(17)=218 : TH1%(18)=0 TH1%(35)=0 : TH1%(61)=219 : TH1%(63)=220 : TH1%(75)=223 : TH1%(76)=224 TH2%(1)=217 : TH2%(8)=221 : TH2%(9)=222 : TH2%(16)=218 : TH2%(34)=0 TH2%(51)=0 : TH2%(60)=219 : TH2%(62)=220 : TH2%(74)=223 : TH2%(75)=224 TH3%(1)=0 : TH3%(18)=0 : TH3%(36)=219 : TH3%(43)=223 TH3%(44)=224 : TH3%(51)=220 : TH3%(57)=217 : TH3%(59)=218 TH3%(72)=221 : TH3%(73)=222 TH4%(17)=0 : TH4%(34)=0 : TH4%(35)=219 : TH4%(42)=223 TH4%(43)=224 : TH4%(50)=220 : TH4%(56)=217 : TH4%(58)=218 TH4%(71)=221 : TH4%(72)=222 position 50,100 rem Couche 2 - tuiles n° 185 à 216 ----------------------------------------- for v1f2% = 1 to 2 for v2f2% = 1 to 16 left (v1f2%-1)*16+v2f2%+184,(v2f2%-1)*65+53 top (v1f2%-1)*16+v2f2%+184,(v1f2%-1)*95+242 color (v1f2%-1)*16+v2f2%+184,255,200,255 TG%((v1f2%-1)*16+v2f2%+85)=(v1f2%-1)*16+v2f2%+183 TD%((v1f2%-1)*16+v2f2%+85)=(v1f2%-1)*16+v2f2%+185 if v1f2%=1 TH3%((v1f2%-1)*16+v2f2%+85)=v2f2%+223 TH4%((v1f2%-1)*16+v2f2%+85)=v2f2%+224 else TH1%((v1f2%-1)*16+v2f2%+85)=v2f2%+223 TH2%((v1f2%-1)*16+v2f2%+85)=v2f2%+224 end_if next v2f2% next v1f2% : rem Tuiles n° 217 à 220 ....................................... for v1f2% = 1 to 2 for v2f2% = 1 to 2 left (v1f2%-1)*2+v2f2%+216,(v2f2%-1)*975+53 top (v1f2%-1)*2+v2f2%+216,(v1f2%-1)*285+147 color (v1f2%-1)*2+v2f2%+216,255,200,255 next v2f2% next v1f2% : rem Tuiles n° 221 à 224 ....................................... for v1f2% = 1 to 2 for v2f2% = 1 to 2 left (v1f2%-1)*2+v2f2%+220,(v2f2%-1)*65+508 top (v1f2%-1)*2+v2f2%+220,(v1f2%-1)*285+147 color (v1f2%-1)*2+v2f2%+220,255,200,255 next v2f2% next v1f2% TG%(86)=0 : TG%(102)=0 : TG%(123)=221 : TG%(125)=223 TD%(101)=0 : TD%(117)=0 : TD%(122)=222 : TD%(124)=224 TH1%(102)=0 : TH2%(117)=0 : TH3%(86)=0 : TH4%(101)=0 position 50,150 rem Couche 3 - tuiles n°225 à 239 ------------------------------------------ for v1f2% = 1 to 15 left v1f2%+224,(v1f2%-1)*65+85 top v1f2%+224,290 color v1f2%+224,0,255,0 TG%(v1f2%+125)=v1f2%+223 TD%(v1f2%+125)=v1f2%+225 next v1f2% TG%(126)=0 : TD%(140)=0 position 50,200 for v1f2% = 100 to 239 show v1f2% next v1f2% end_sub
sub formule3() : rem Affichage des tuiles de formule 3 - n° 100 à 323 ========= dim_local v1f3% , v2f3% , v3f3% NTU%=224 rem Couche 1 - n° 100 à 213 ------------------------------------------------ for v1f3% = 1 to 2 for v2f3% = 1 to 3 for v3f3% = 1 to 17 left (v1f3%-1)*51+(v2f3%-1)*17+v3f3%+99,(v3f3%-1)*65+20 top (v1f3%-1)*51+(v2f3%-1)*17+v3f3%+99,(v2f3%-1)*95+5+(v1f3%-1)*380 color (v1f3%-1)*51+(v2f3%-1)*17+v3f3%+99,255,255,0 TG%((v1f3%-1)*51+(v2f3%-1)*17+v3f3%)=(v1f3%-1)*51+(v2f3%-1)*17+v3f3%+98 TD%((v1f3%-1)*51+(v2f3%-1)*17+v3f3%)=(v1f3%-1)*51+(v2f3%-1)*17+v3f3%+100 if v2f3%=1 TH3%((v1f3%-1)*51+(v2f3%-1)*17+v3f3%)=(v1f3%-1)*28+v3f3%+211 TH4%((v1f3%-1)*51+(v2f3%-1)*17+v3f3%)=(v1f3%-1)*28+v3f3%+212 end_if if v2f3%=2 TH1%((v1f3%-1)*51+(v2f3%-1)*17+v3f3%)=(v1f3%-1)*28+v3f3%+211 TH2%((v1f3%-1)*51+(v2f3%-1)*17+v3f3%)=(v1f3%-1)*28+v3f3%+212 TH3%((v1f3%-1)*51+(v2f3%-1)*17+v3f3%)=(v1f3%-1)*28+v3f3%+225 TH4%((v1f3%-1)*51+(v2f3%-1)*17+v3f3%)=(v1f3%-1)*28+v3f3%+226 end_if if v2f3%=3 TH1%((v1f3%-1)*51+(v2f3%-1)*17+v3f3%)=(v1f3%-1)*28+v3f3%+225 TH2%((v1f3%-1)*51+(v2f3%-1)*17+v3f3%)=(v1f3%-1)*28+v3f3%+226 end_if next v3f3% next v2f3% next v1f3% : rem Tuiles n° 202 à 213 ........................................ for v1f3% = 1 to 12 left v1f3%+201,(v1f3%-1)*65+20+int((v1f3%-1)/6)*325 top v1f3%+201,290 color v1f3%+201,255,255,0 TG%(v1f3%+102)=v1f3%+200 TD%(v1f3%+102)=v1f3%+202 next v1f3% for v1f3% = 1 to 6 TG%((v1f3%-1)*17+1)=0 TD%((v1f3%-1)*17+17)=0 next v1f3% TG%(103)=0 : TG%(109)=0 TD%(108)=0 : TD%(114)=0 TH1%(18)=0 : TH1%(19)=0 : TH1%(34)=0 : TH1%(35)=0 : TH1%(36)=0 : TH1%(102)=0 TH1%(51)=0 : TH1%(69)=0 : TH1%(70)=0 : TH1%(85)=0 : TH1%(86)=0 : TH1%(87)=0 TH1%(105)=270 : TH1%(106)=271 : TH1%(107)=272 : TH1%(111)=273 : TH1%(112)=274 : TH1%(113)=275 TH1%(54)=276 : TH1%(55)=277 : TH1%(56)=278 : TH1%(65)=279 : TH1%(66)=280 : TH1%(67)=281 TH2%(18)=0 : TH2%(33)=0 : TH2%(34)=0 : TH2%(35)=0 TH2%(50)=0 : TH2%(51)=0 : TH2%(69)=0 : TH2%(84)=0 : TH2%(85)=0 TH2%(86)=0 : TH2%(101)=0 : TH2%(102)=0 : TH2%(104)=270 : TH2%(105)=271 : TH2%(106)=272 TH2%(110)=273 : TH2%(111)=274 : TH2%(112)=275 : TH2%(53)=276 TH2%(54)=277 : TH2%(55)=278 : TH2%(64)=279 : TH2%(65)=280 : TH2%(66)=281 TH3%(1)=0 : TH3%(2)=0 : TH3%(17)=0 : TH3%(18)=0 TH3%(19)=0 : TH3%(34)=0 : TH3%(52)=0 : TH3%(53)=0 TH3%(68)=0 : TH3%(69)=0 : TH3%(70)=0 : TH3%(85)=0 TH3%(37)=270 : TH3%(38)=271 : TH3%(39)=272 : TH3%(48)=273 : TH3%(49)=274 TH3%(50)=275 : TH3%(105)=276 : TH3%(106)=277 : TH3%(107)=278 TH3%(111)=279 : TH3%(112)=280 : TH3%(113)=281 TH4%(1)=0 : TH4%(16)=0 : TH4%(17)=0 : TH4%(18)=0 TH4%(33)=0 : TH4%(34)=0 : TH4%(52)=0 : TH4%(67)=0 : TH4%(68)=0 TH4%(69)=0 : TH4%(84)=0 : TH4%(85)=0 : TH4%(36)=270 : TH4%(37)=271 TH4%(38)=272 : TH4%(47)=273 : TH4%(48)=274 : TH4%(49)=275 : TH4%(104)=276 TH4%(105)=277 : TH4%(106)=278 : TH4%(110)=279 : TH4%(111)=280 : TH4%(112)=281 position 50,50 rem Couche 2 - n° 214 à 281 ------------------------------------------------ for v1f3% = 1 to 4 for v2f3% = 1 to 14 left (v1f3%-1)*14+v2f3%+213,(v2f3%-1)*65+117 top (v1f3%-1)*14+v2f3%+213,(v1f3%-1)*95+52+int((v1f3%-1)/2)*190 color (v1f3%-1)*14+v2f3%+213,255,200,255 TG%((v1f3%-1)*14+v2f3%+114)=(v1f3%-1)*14+v2f3%+212 TD%((v1f3%-1)*14+v2f3%+114)=(v1f3%-1)*14+v2f3%+214 if odd(v1f3%)=1 TH3%((v1f3%-1)*14+v2f3%+114)=int((v1f3%-1)/2)*13+v2f3%+280 TH4%((v1f3%-1)*14+v2f3%+114)=int((v1f3%-1)/2)*13+v2f3%+281 else TH1%((v1f3%-1)*14+v2f3%+114)=int((v1f3%-1)/2)*13+v2f3%+280 TH2%((v1f3%-1)*14+v2f3%+114)=int((v1f3%-1)/2)*13+v2f3%+281 end_if next v2f3% next v1f3% : rem Tuiles n° 270 à 281 ....................................... for v1f3% = 1 to 2 for v2f3% = 1 to 6 left (v1f3%-1)*6+v2f3%+269,(v2f3%-1)*65+117+int((v2f3%-1)/3)*520 top (v1f3%-1)*6+v2f3%+269,(v1f3%-1)*95+242 color (v1f3%-1)*6+v2f3%+269,255,200,255 TG%((v1f3%-1)*6+v2f3%+170)=(v1f3%-1)*6+v2f3%+268 TD%((v1f3%-1)*6+v2f3%+170)=(v1f3%-1)*6+v2f3%+270 next v2f3% next v1f3% TG%(115)=0 : TG%(129)=0 : TG%(143)=0 : TG%(157)=0 TG%(171)=0 : TG%(174)=0 : TG%(177)=0 : TG%(180)=0 TD%(128)=0 : TD%(142)=0 : TD%(156)=0 : TD%(170)=0 TD%(173)=0 : TD%(176)=0 : TD%(179)=0 : TD%(182)=0 TH1%(129)=0 : TH1%(144)=316 : TH1%(145)=317 : TH1%(155)=318 TH1%(156)=319 : TH1%(157)=0 : TH1%(172)=308 : TH1%(173)=309 TH1%(175)=310 : TH1%(176)=311 : TH1%(178)=312 : TH1%(179)=313 TH1%(181)=314 : TH1%(182)=315 TH2%(142)=0 : TH2%(143)=316 : TH2%(144)=317 : TH2%(154)=318 TH2%(155)=319 : TH2%(170)=0 : TH2%(171)=308 : TH2%(172)=309 TH2%(174)=310 : TH2%(175)=311 : TH2%(177)=312 : TH2%(178)=313 TH2%(180)=314 : TH2%(181)=315 TH3%(115)=0 : TH3%(130)=308 : TH3%(131)=309 : TH3%(141)=310 TH3%(142)=311 : TH3%(143)=0 : TH3%(172)=312 : TH3%(173)=313 TH3%(175)=314 : TH3%(176)=315 : TH3%(178)=316 : TH3%(179)=317 TH3%(181)=318 : TH3%(182)=319 TH4%(128)=0 : TH4%(129)=308 : TH4%(130)=309 : TH4%(140)=310 TH4%(141)=311 : TH4%(156)=0 : TH4%(171)=312 : TH4%(172)=313 TH4%(174)=314 : TH4%(175)=315 : TH4%(177)=316 : TH4%(178)=317 TH4%(180)=318 : TH4%(181)=319 position 50,100 rem Couche 3 - n° 282 à 319 ------------------------------------------------ for v1f3% = 1 to 2 for v2f3% = 1 to 13 left (v1f3%-1)*13+v2f3%+281,(v2f3%-1)*65+150 top (v1f3%-1)*13+v2f3%+281,(v1f3%-1)*380+100 color (v1f3%-1)*13+v2f3%+281,0,255,0 TG%((v1f3%-1)*13+v2f3%+182)=(v1f3%-1)*13+v2f3%+280 TD%((v1f3%-1)*13+v2f3%+182)=(v1f3%-1)*13+v2f3%+282 next v2f3% next v1f3% : rem Tuiles n° 308 à 319 ....................................... for v1f3% = 1 to 3 for v2f3% = 1 to 4 left (v1f3%-1)*4+v2f3%+307,int((v2f3%-1)/2)*585+(v2f3%-1)*65+150 top (v1f3%-1)*4+v2f3%+307,(v1f3%-1)*95+195 color (v1f3%-1)*4+v2f3%+307,0,255,0 next v2f3% next v1f3% TG%(183)=0 : TG%(196)=0 : TG%(210)=308 : TG%(212)=310 TG%(214)=312 : TG%(216)=314 : TG%(218)=316 : TG%(220)=318 TD%(195)=0 : TD%(208)=0 : TD%(209)=309 : TD%(211)=311 TD%(213)=313 : TD%(215)=315 : TD%(217)=317 : TD%(219)=319 TH1%(214)=320 : TH1%(216)=321 : TH1%(218)=322 : TH1%(220)=323 TH2%(213)=320 : TH2%(215)=321 : TH2%(217)=322 : TH2%(219)=323 TH3%(210)=320 : TH3%(212)=321 : TH3%(214)=322 : TH3%(216)=323 TH4%(209)=320 : TH4%(211)=321 : TH4%(213)=322 : TH4%(215)=323 position 50,150 rem Couche 4 - n° 320 à 323 ------------------------------------------------ for v1f3% = 1 to 2 for v2f3% = 1 to 2 left (v1f3%-1)*2+v2f3%+319,(v2f3%-1)*715+182 top (v1f3%-1)*2+v2f3%+319,(v1f3%-1)*95+242 color (v1f3%-1)*2+v2f3%+319,255,180,0 next v2f3% next v1f3% position 50,200 for v1f3% = 100 to 323 show v1f3% next v1f3% end_sub
sub formule4() : rem Affichage des tuiles de formule 4 - n° 100 à 355 ========= dim_local v1f4% , v2f4% , v3f4% NTU%=256 rem Couche 1 n° 100 à 204 -------------------------------------------------- for v1f4% = 1 to 3 for v2f4% = 1 to 7 for v3f4% = 1 to 5 left (v1f4%-1)*35+(v2f4%-1)*5+v3f4%+99,(v1f4%-1)*390+(v3f4%-1)*65+20 top (v1f4%-1)*35+(v2f4%-1)*5+v3f4%+99,(v2f4%-1)*95+5 color (v1f4%-1)*35+(v2f4%-1)*5+v3f4%+99,255,255,0 TG%((v1f4%-1)*35+(v2f4%-1)*5+v3f4%)=(v1f4%-1)*35+(v2f4%-1)*5+v3f4%+98 TD%((v1f4%-1)*35+(v2f4%-1)*5+v3f4%)=(v1f4%-1)*35+(v2f4%-1)*5+v3f4%+100 if v2f4%>1 TH1%((v1f4%-1)*35+(v2f4%-1)*5+v3f4%)=(v1f4%-1)*24+(v2f4%-1)*4+v3f4%+200 TH2%((v1f4%-1)*35+(v2f4%-1)*5+v3f4%)=(v1f4%-1)*24+(v2f4%-1)*4+v3f4%+201 end_if if v2f4%<7 TH3%((v1f4%-1)*35+(v2f4%-1)*5+v3f4%)=(v1f4%-1)*24+(v2f4%-1)*4+v3f4%+204 TH4%((v1f4%-1)*35+(v2f4%-1)*5+v3f4%)=(v1f4%-1)*24+(v2f4%-1)*4+v3f4%+205 end_if next v3f4% next v2f4% next v1f4% : rem Tuile n° 205 .............................................. left 205,345 top 205,290 color 205,255,255,0 for v1f4% = 0 to 100 step 5 TG%(v1f4%+1)=0 TD%(v1f4%+5)=0 TH1%(v1f4%+1)=0 TH2%(v1f4%+10)=0 TH3%(v1f4%+1)=0 TH4%(v1f4%+10)=0 next v1f4% TG%(51)=205 : TG%(106)=119 TD%(20)=205 : TD%(106)=150 TH4%(5)=0 : position 50,50 rem Couche 2 - tuiles n° 206 à 277 ----------------------------------------- for v1f4% = 1 to 3 for v2f4% = 1 to 6 for v3f4% = 1 to 4 left (v1f4%-1)*24+(v2f4%-1)*4+v3f4%+205,(v1f4%-1)*390+(v3f4%-1)*65+52 top (v1f4%-1)*24+(v2f4%-1)*4+v3f4%+205,(v2f4%-1)*95+52 color (v1f4%-1)*24+(v2f4%-1)*4+v3f4%+205,255,200,255 TG%((v1f4%-1)*24+(v2f4%-1)*4+v3f4%+106)=(v1f4%-1)*24+(v2f4%-1)*4+v3f4%+204 TD%((v1f4%-1)*24+(v2f4%-1)*4+v3f4%+106)=(v1f4%-1)*24+(v2f4%-1)*4+v3f4%+206 if v2f4%>1 TH1%((v1f4%-1)*24+(v2f4%-1)*4+v3f4%+106)=(v1f4%-1)*15+(v2f4%-1)*3+v3f4%+273 TH2%((v1f4%-1)*24+(v2f4%-1)*4+v3f4%+106)=(v1f4%-1)*15+(v2f4%-1)*3+v3f4%+274 end_if if v2f4%<6 TH3%((v1f4%-1)*24+(v2f4%-1)*4+v3f4%+106)=(v1f4%-1)*15+(v2f4%-1)*3+v3f4%+276 TH4%((v1f4%-1)*24+(v2f4%-1)*4+v3f4%+106)=(v1f4%-1)*15+(v2f4%-1)*3+v3f4%+277 end_if next v3f4% next v2f4% next v1f4% for v1f4% = 107 to 175 step 4 TG%(v1f4%)=0 TD%(v1f4%+3)=0 TH1%(v1f4%+4)=0 TH2%(v1f4%+7)=0 TH3%(v1f4%+4)=0 TH4%(v1f4%+7)=0 next v1f4% TH3%(107)=0 : TH4%(110)=0 : position 50,100 rem Couche 3 - tuiles n° 278 à 322 ----------------------------------------- for v1f4% = 1 to 3 for v2f4% = 1 to 5 for v3f4% = 1 to 3 left (v1f4%-1)*15+(v2f4%-1)*3+v3f4%+277,(v1f4%-1)*390+(v3f4%-1)*65+85 top (v1f4%-1)*15+(v2f4%-1)*3+v3f4%+277,(v2f4%-1)*95+100 color (v1f4%-1)*15+(v2f4%-1)*3+v3f4%+277,0,255,0 TG%((v1f4%-1)*15+(v2f4%-1)*3+v3f4%+178)=(v1f4%-1)*15+(v2f4%-1)*3+v3f4%+276 TD%((v1f4%-1)*15+(v2f4%-1)*3+v3f4%+178)=(v1f4%-1)*15+(v2f4%-1)*3+v3f4%+278 if v2f4%>1 TH1%((v1f4%-1)*15+(v2f4%-1)*3+v3f4%+178)=(v1f4%-1)*8+(v2f4%-1)*2+v3f4%+319 TH2%((v1f4%-1)*15+(v2f4%-1)*3+v3f4%+178)=(v1f4%-1)*8+(v2f4%-1)*2+v3f4%+320 end_if if v2f4%<5 TH3%((v1f4%-1)*15+(v2f4%-1)*3+v3f4%+178)=(v1f4%-1)*8+(v2f4%-1)*2+v3f4%+321 TH4%((v1f4%-1)*15+(v2f4%-1)*3+v3f4%+178)=(v1f4%-1)*8+(v2f4%-1)*2+v3f4%+322 end_if next v3f4% next v2f4% next v1f4% for v1f4% = 179 to 221 step 3 TG%(v1f4%)=0 TD%(v1f4%+2)=0 TH1%(v1f4%)=0 TH2%(v1f4%+2)=0 TH3%(v1f4%)=0 TH4%(v1f4%+2)=0 next v1f4% position 50,150 rem Couche 4 - tuiles n° 323 à 346 ----------------------------------------- for v1f4% = 1 to 3 for v2f4% = 1 to 4 for v3f4% = 1 to 2 left (v1f4%-1)*8+(v2f4%-1)*2+v3f4%+322,(v1f4%-1)*390+(v3f4%-1)*65+117 top (v1f4%-1)*8+(v2f4%-1)*2+v3f4%+322,(v2f4%-1)*95+147 color (v1f4%-1)*8+(v2f4%-1)*2+v3f4%+322,255,180,0 TG%((v1f4%-1)*8+(v2f4%-1)*2+v3f4%+223)=(v1f4%-1)*8+(v2f4%-1)*2+v3f4%+321 TD%((v1f4%-1)*8+(v2f4%-1)*2+v3f4%+223)=(v1f4%-1)*8+(v2f4%-1)*2+v3f4%+323 if v2f4%>1 TH1%((v1f4%-1)*8+(v2f4%-1)*2+v3f4%+223)=(v1f4%-1)*3+v2f4%+345 TH2%((v1f4%-1)*8+(v2f4%-1)*2+v3f4%+223)=(v1f4%-1)*3+v2f4%+345 end_if if v2f4%<4 TH3%((v1f4%-1)*8+(v2f4%-1)*2+v3f4%+223)=(v1f4%-1)*3+v2f4%+346 TH4%((v1f4%-1)*8+(v2f4%-1)*2+v3f4%+223)=(v1f4%-1)*3+v2f4%+346 end_if next v3f4% next v2f4% next v1f4% for v1f4% = 224 to 246 step 2 TG%(v1f4%)=0 TD%(v1f4%+1)=0 TH1%(v1f4%)=0 TH2%(v1f4%+1)=0 TH3%(v1f4%)=0 TH4%(v1f4%+1)=0 next v1f4% position 50,200 rem Couche 5 - tuiles n° 347 à 355 ----------------------------------------- for v1f4% = 1 to 3 for v2f4% = 1 to 3 left (v1f4%-1)*3+v2f4%+346,(v1f4%-1)*390+150 top (v1f4%-1)*3+v2f4%+346,(v2f4%-1)*95+195 color (v1f4%-1)*3+v2f4%+346,0,220,255 next v2f4% next v1f4% for v1f4% = 100 to 355 show v1f4% next v1f4% end_sub
sub formule5() : rem Affichage des tuiles de formule 5 - n° 100 à 297 ========= dim_local v1f5% , v2f5% , v3f5% , v4f5% NTU%=198 rem Couche 1 - n° 100 à 176 ------------------------------------------------ v3f5%=99 for v1f5% = 1 to 7 v4f5%=v4f5%+1 for v2f5% = 1 to 19-v1f5%*2 v3f5%=v3f5%+1 left v3f5%,(v2f5%-1)*65+(v1f5%-1)*65+20 top v3f5%,(v1f5%-1)*95+5 color v3f5%,255,255,0 TG%(v3f5%-99)=v3f5%-1 TD%(v3f5%-99)=v3f5%+1 if v1f5%>1 TH1%(v3f5%-99)=v3f5%-(19-v1f5%*2)-(v4f5%-1)*5+(v1f5%-2)*2+81 TH2%(v3f5%-99)=v3f5%-(19-v1f5%*2)-(v4f5%-1)*5+(v1f5%-2)*2+82 end_if if v1f5%<7 TH3%(v3f5%-99)=v3f5%-(19-v1f5%*2)-(v4f5%-1)*5+94 TH4%(v3f5%-99)=v3f5%-(19-v1f5%*2)-(v4f5%-1)*5+95 end_if next v2f5% next v1f5% : rem Tuiles n° 177 à 178 ....................................... for v1f5% = 1 to 2 v3f5%=v3f5%+1 left v3f5%,(v1f5%-1)*390+345 top v3f5%,575 color v3f5%,255,255,0 next v1f5% v2f5%=99 for v1f5% = 6 to 1 step -1 v2f5%=v2f5%+v1f5%*2+5 TG%(v2f5%-(v1f5%*2+4)-99)=0 TD%(v2f5%-(v1f5%*2-12)-(6-v1f5%)*2-99)=0 TH1%((v2f5%+1)-99)=0 TH2%(v2f5%+(v1f5%*2+3)-99)=0 TH3%(v2f5%-(v1f5%*2+4)-99)=0 TH3%(v2f5%-(v1f5%*2+3)-99)=0 TH3%(v2f5%-99)=0 TH4%(v2f5%-(v1f5%*2+4)-99)=0 TH4%((v2f5%-1)-99)=0 TH4%(v2f5%-99)=0 next v1f5% TG%(73)=177 : TG%(79)=176 TD%(78)=172 : TD%(77)=178 : position 50,50 rem Couche 2 - n° 179 à 232 ------------------------------------------------ v1f5%=0 for v1f5% = 1 to 6 v4f5%=v4f5%+1 for v2f5% = 1 to 16-v1f5%*2 v3f5%=v3f5%+1 left v3f5%,(v2f5%-1)*65+(v1f5%-1)*65+117 top v3f5%,(v1f5%-1)*95+52 color v3f5%,255,200,255 TG%(v3f5%-99)=v3f5%-1 TD%(v3f5%-99)=v3f5%+1 if v1f5%>1 TH1%(v3f5%-99)=v3f5%-(19-v1f5%*2)-(v4f5%-1)*5+(v1f5%-2)*2+94 TH2%(v3f5%-99)=v3f5%-(19-v1f5%*2)-(v4f5%-1)*5+(v1f5%-2)*2+95 end_if if v1f5%<6 TH3%(v3f5%-99)=v3f5%-(19-v1f5%*2)-(v4f5%-1)*5+104 TH4%(v3f5%-99)=v3f5%-(19-v1f5%*2)-(v4f5%-1)*5+105 end_if next v2f5% next v1f5% v2f5%=176 for v1f5% = 6 to 1 step -1 v2f5%=v2f5%+v1f5%*2+5 TG%((v2f5%-(7-v1f5%)-13)-99)=0 TD%(v2f5%-(7-v1f5%)*3+2-99)=0 TH1%((v2f5%-(7-v1f5%)-13)-99)=0 TH2%(v2f5%-(7-v1f5%)*3+2-99)=0 TH3%((v2f5%-(v1f5%*2)-(7-v1f5%)*3+1)-99)=0 TH3%((v2f5%-(v1f5%*2)-(7-v1f5%)*3+2)-99)=0 TH3%((v2f5%-(v1f5%*2)-(7-v1f5%)*5+16)-99)=0 TH4%((v2f5%-(v1f5%*2)-(7-v1f5%)*3+1)-99)=0 TH4%((v2f5%-(7-v1f5%)*3+1)-99)=0 TH4%((v2f5%-(7-v1f5%)*3+2)-99)=0 next v1f5% TG%(77)=175 : position 50,80 rem Couche 3 - N° 233 à 267 ------------------------------------------------ v1f5%=0 for v1f5% = 1 to 5 v4f5%=v4f5%+1 for v2f5% = 1 to 13-v1f5%*2 v3f5%=v3f5%+1 left v3f5%,(v2f5%-1)*65+(v1f5%-1)*65+214 top v3f5%,(v1f5%-1)*95+100 color v3f5%,0,255,0 TG%(v3f5%-99)=v3f5%-1 TD%(v3f5%-99)=v3f5%+1 if v1f5%>1 TH1%(v3f5%-99)=v3f5%-(19-v1f5%*2)-(v4f5%-1)*5+(v1f5%-2)*2+108 TH2%(v3f5%-99)=v3f5%-(19-v1f5%*2)-(v4f5%-1)*5+(v1f5%-2)*2+109 end_if if v1f5%<5 TH3%(v3f5%-99)=v3f5%-(19-v1f5%*2)-(v4f5%-1)*5+115 TH4%(v3f5%-99)=v3f5%-(19-v1f5%*2)-(v4f5%-1)*5+116 end_if next v2f5% next v1f5% v2f5%=232 for v1f5% = 5 to 1 step -1 v2f5%=v2f5%+v1f5%*2+5 TG%((v2f5%-(v1f5%*2)-(6-v1f5%)*4)-99)=0 TD%((v2f5%-(v1f5%*2)-(6-v1f5%)*6+12)-99)=0 TH1%((v2f5%-(v1f5%*2)-(6-v1f5%)*4)-99)=0 TH2%((v2f5%-(v1f5%*2)-(6-v1f5%)*6+12)-99)=0 TH3%((v2f5%-(v1f5%*2)-(6-v1f5%)*4)-99)=0 TH3%((v2f5%-(v1f5%*2)-(6-v1f5%)*4+1)-99)=0 TH3%((v2f5%-(v1f5%*2)-(6-v1f5%)*6+12)-99)=0 TH4%((v2f5%-(v1f5%*2)-(6-v1f5%)*4)-99)=0 TH4%((v2f5%-(v1f5%*2)-(6-v1f5%)*6+11)-99)=0 TH4%((v2f5%-(v1f5%*2)-(6-v1f5%)*6+12)-99)=0 next v1f5% position 50,120 rem Couche 4 - n° 268 à 287 ------------------------------------------------ v1f5%=0 for v1f5% = 1 to 4 v4f5%=v4f5%+1 for v2f5% = 1 to 10-v1f5%*2 v3f5%=v3f5%+1 left v3f5%,(v2f5%-1)*65+(v1f5%-1)*65+311 top v3f5%,(v1f5%-1)*95+147 color v3f5%,255,180,0 TG%(v3f5%-99)=v3f5%-1 TD%(v3f5%-99)=v3f5%+1 if v1f5%>1 TH1%(v3f5%-99)=v3f5%-(19-v1f5%*2)-(v4f5%-1)*5+(v1f5%-2)*2+121 TH2%(v3f5%-99)=v3f5%-(19-v1f5%*2)-(v4f5%-1)*5+(v1f5%-2)*2+122 end_if if v1f5%<4 TH3%(v3f5%-99)=v3f5%-(19-v1f5%*2)-(v4f5%-1)*5+125 TH4%(v3f5%-99)=v3f5%-(19-v1f5%*2)-(v4f5%-1)*5+126 end_if next v2f5% next v1f5% v2f5%=267 for v1f5% = 4 to 1 step -1 v2f5%=v2f5%+v1f5%*2+5 TG%((v2f5%-(v1f5%*2)-(4-v1f5%)*5-4)-99)=0 TD%((v2f5%-(v1f5%*2)-(4-v1f5%)*7+3)-99)=0 TH1%((v2f5%-(v1f5%*2)-(4-v1f5%)*5-4)-99)=0 TH2%((v2f5%-(v1f5%*2)-(4-v1f5%)*7+3)-99)=0 TH3%((v2f5%-(v1f5%*2)-(4-v1f5%)*5-4)-99)=0 TH3%((v2f5%-(v1f5%*2)-(4-v1f5%)*5-4+1)-99)=0 TH3%((v2f5%-(v1f5%*2)-(4-v1f5%)*7+3)-99)=0 TH4%((v2f5%-(v1f5%*2)-(4-v1f5%)*5-4)-99)=0 TH4%((v2f5%-(v1f5%*2)-(4-v1f5%)*7+2)-99)=0 TH4%((v2f5%-(v1f5%*2)-(4-v1f5%)*7+3)-99)=0 next v1f5% TH1%(188)=0 : TH2%(187)=0 : TH3%(185)=0 : TH4%(184)=0 : position 50,160 rem Couche 5 - n° 288 à 295 ------------------------------------------------ v1f5%=0 for v1f5% = 1 to 2 v4f5%=v4f5%+1 for v2f5% = 1 to 7-v1f5%*2 v3f5%=v3f5%+1 left v3f5%,(v2f5%-1)*65+(v1f5%-1)*65+408 top v3f5%,(v1f5%-1)*95+195 color v3f5%,0,220,255 TG%(v3f5%-99)=v3f5%-1 TD%(v3f5%-99)=v3f5%+1 next v2f5% next v1f5% v2f5%=287 for v1f5% = 2 to 1 step -1 v2f5%=v2f5%+v1f5%*2+5 TG%((v2f5%-(v1f5%*2)-(2-v1f5%)*4-4)-99)=0 TD%((v2f5%-(v1f5%*2)-(2-v1f5%)*6)-99)=0 next v1f5% TH1%(195)=296 : TH1%(196)=297 TH2%(194)=296 : TH2%(195)=297 TH3%(191)=296 : TH3%(192)=297 TH4%(190)=296 : TH4%(191)=297 : position 50,190 rem Couche 6 - n° 296 à 297 ------------------------------------------------ for v1f5% = 1 to 2 v3f5%=v3f5%+1 left v3f5%,(v1f5%-1)*65+506 top v3f5%,242 color v3f5%,255,80,255 next v1f5% TG%(198)=296 : TD%(197)=297 for v1f5% = 100 to 297 show v1f5% next v1f5% end_sub
sub lettres() : rem Choix des lettres grecques ================================ dim_local fole% : rem Formule en cours dim_local nile% : rem Niveau en cours dim_local nlle% : rem Nombre de Lettres à choisir dim_local v1le% , v2le% , v3le% : rem Variables à utilisation variée fole%=val(right$(caption$(500),1)) nile%=val(right$(caption$(510),1)) nlle%=NTU%/NRT%(fole%,nile%) for v1le% = 1 to 39 LG2$(v1le%)=LG$(v1le%) next v1le% for v1le% = 1 to 400 v2le%=int(rnd(39))+1 v3le%=int(rnd(39))+1 V3M$=LG2$(v2le%) LG2$(v2le%)=LG2$(v3le%) LG2$(v3le%)=V3M$ next v1le% v3le%=99 for v1le% = 1 to nlle% for v2le% = 1 to NRT%(fole%,nile%) v3le%=v3le%+1 caption v3le%,LG2$(v1le%) show v3le% next v2le% next v1le% for v1le% = 1 to 1999 v2le%=int(rnd(NTU%))+1 v3le%=int(rnd(NTU%))+1 V3M$=caption$(v2le%+99) caption v2le%+99,caption$(v3le%+99) caption v3le%+99,V3M$ next v1le% NTR%=NTU% end_sub
sub niveau() : rem Modification du niveau ===================================== dim_local v1ni% dim_local quni% : rem QUel NIveau inactive 510 hide 60 caption 440,"Travail en cours" display desact() quni%=val(right$(caption$(510),1)) quni%=quni%+1 if quni%>3 quni%=1 end_if for v1ni% = 100 to 356 inactive v1ni% next v1ni% caption 510,"Niveau "+str$(quni%) caption 440,"Niveau "+str$(quni%) NPL%=0 lettres() clear 600 activer() midi_instrument 115 midi_play 80,10 desact() active 510 active 550 end_sub
sub quitter() dim_local v1qu% V3M$="Vous n'avez pas essayé toutes les formules."+chr$(13) V3M$=V3M$+"Vous désirez vraiment déjà partir ?" v1qu%=message_confirmation_yes_no(V3M$) if v1qu%=1 midi_off terminate end_if end_sub
sub reculer() : rem Le joueur recule dans sa progression ====================== if count(600)>1 and NPL%>1 desact() show item_read$(600,NPL%) show item_read$(600,NPL%-1) verif3(item_read$(600,NPL%)) verif3(item_read$(600,NPL%-1)) desact() NTR%=NTR%+2 NPL%=NPL%-2 if NPL%<2 inactive 530 end_if caption 440,"Retour en arrière" active 540 end_if end_sub
sub rejouer() : rem Le joueur demande à faire une autre partie ================ dim_local v1re% v1re%=val(right$(caption$(510),1)) v1re%=v1re%-1 caption 440,"Travail en cours" caption 510,"Niveau "+str$(v1re%) display inactive 530 inactive 540 hide 60 desact() show 700 caption 440,"Nouvelle partie" clear 600 for v1re% = 100 to 356 inactive v1re% next v1re% NPL%=0 desact() niveau() activer() active 500 active 550 hide 700 caption 440,"Vous pouvez y aller" end_sub
sub restruc() : rem Restructurer la partie restante et injouable ============== dim_local v1rs% , v2rs% , v3rs% : rem Variables à utilisation multiple inactive 530 inactive 540 desact() caption 440,"Travail en cours" display for v1rs% = 1 to 1999 v2rs%=int(rnd(NTU%))+1 v3rs%=int(rnd(NTU%))+1 if show(v2rs%+99)=1 and show(v3rs%+99)=1 V3M$=caption$(v2rs%+99) caption v2rs%+99,caption$(v3rs%+99) caption v3rs%+99,V3M$ end_if next v1rs% caption 440,"Disposition modifiée" clear 600 NPL%=0 midi_instrument 115 midi_play 80,10 desact() end_sub
sub suggest() : rem Suggestions de l`ordinateur =============================== dim_local v1su% , v2su% dim_local r1su% , r2su% : rem Réponses trouvées desact() midi_instrument 115 midi_play 80,10 for v1su% = NTU%+99 to 100 step -1 if active(v1su%)=1 if show(v1su%)=1 for v2su% = 100 to NTU%+99 if v2su%<>v1su% if active(v2su%)=1 if show(v2su%)=1 if caption$(v2su%)=caption$(v1su%) font_color v1su%,255,0,0 font_color v2su%,255,0,0 caption 440,"Clignotants rouges" r1su%=v1su% r2su%=v2su% exit_for end_if end_if end_if end_if next v2su% if r1su%>0 exit_for end_if end_if end_if next v1su% pause 500 if r1su%>0 font_color r1su%,0,0,0 font_color r2su%,0,0,0 else caption 440,"Jeu impossible" end_if desact() midi_play 80,10 end_sub
sub tuile() : rem Lorsque l`utilisateur clique sur une tuile ================== dim_local v1tu% inactive 500 inactive 510 V3M$=caption$(number_click) for v1tu% = 1 to 39 if LG$(v1tu%)=V3M$ caption 440,NLG$(v1tu%) exit_for end_if next v1tu% if PTC%=0 PTC%=number_click font_color PTC%,255,0,0 inactive 520 desact() else if PTC%=number_click font_color PTC%,0,0,0 active 520 PTC%=0 desact() else if caption$(PTC%)=caption$(number_click) font_color PTC%,0,0,0 hide PTC% display hide number_click verif(PTC%) verif(number_click) caption 440,"Bien joué" if count(600)>0 if count(600)>NPL%+1 for v1tu% = NPL%+1 to count(600) item_delete 600,count(600) next v1tu% end_if end_if item_add 600,PTC% item_add 600,number_click PTC%=0 desact() inactive 540 active 520 active 530 NPL%=NPL%+2 NTR%=NTR%-2 if NTR%<1 fini() end_if else caption 440,"Lettres différentes" end_if end_if end_if end_sub
sub verif(qt%) : rem Vérification si la tuile est disponible ================== dim_local v1ve% , v2ve% dim_local fove% : rem Quelle formule est utilisée rem qt% = Quelle Tuile fove%=val(right$(caption$(500),1)) verif2(TG%(qt%-99)) : rem Recherche de tuile à gauche ---------------------- verif2(TD%(qt%-99)) : rem Recherche de tuile à droite ---------------------- rem Recherche de tuile en dessous ------------------------------------------ if qt%>LCF%(fove%,1) for v1ve% = 1 to NTU% if qt%=TH1%(v1ve%) v2ve%=v1ve% exit_for end_if next v1ve% verif2(v2ve%+99) for v1ve% = 1 to NTU% if qt%=TH2%(v1ve%) v2ve%=v1ve% exit_for end_if next v1ve% verif2(v2ve%+99) for v1ve% = 1 to NTU% if qt%=TH3%(v1ve%) v2ve%=v1ve% exit_for end_if next v1ve% verif2(v2ve%+99) for v1ve% = 1 to NTU% if qt%=TH4%(v1ve%) v2ve%=v1ve% exit_for end_if next v1ve% verif2(v2ve%+99) end_if end_sub
sub verif2(tt%) : rem Sup de la vérif et activation des tuiles dispo ========== dim_local cdve% : rem Calcul du degré de disponibilité de la tuile rem tt% = Tuile Trouvée if tt%>99 if show(tt%)=1 if TG%(tt%-99)>0 and show(TG%(tt%-99))=1 cdve%=cdve%+1 end_if if TD%(tt%-99)>0 and show(TD%(tt%-99))=1 cdve%=cdve%+1 end_if if TH1%(tt%-99)>0 and show(TH1%(tt%-99))=1 cdve%=cdve%+2 end_if if TH2%(tt%-99)>0 and show(TH2%(tt%-99))=1 cdve%=cdve%+2 end_if if TH3%(tt%-99)>0 and show(TH3%(tt%-99))=1 cdve%=cdve%+2 end_if if TH4%(tt%-99)>0 and show(TH4%(tt%-99))=1 cdve%=cdve%+2 end_if if cdve%<2 active tt% end_if end_if end_if end_sub
sub verif3(ta%) : rem Vérification en cas de rajout de tuile (reculer) ======== dim_local v1vi% rem ta% = Tuile Ajoutée if TG%(ta%-99)>0 if TG%(TG%(ta%-99)-99)>0 if show(TG%(TG%(ta%-99)-99))=1 inactive TG%(ta%-99) end_if end_if end_if if TD%(ta%-99)>0 if TD%(TD%(ta%-99)-99)>0 if show(TD%(TD%(ta%-99)-99))=1 inactive TD%(ta%-99) end_if end_if end_if for v1vi% = 1 to NTU% if TH1%(v1vi%)=ta% inactive v1vi%+99 end_if if TH2%(v1vi%)=ta% inactive v1vi%+99 end_if if TH3%(v1vi%)=ta% inactive v1vi%+99 end_if if TH4%(v1vi%)=ta% inactive v1vi%+99 end_if next v1vi% end_sub
Amusez-vous bien !
Dernière édition par jjn4 le Dim 9 Avr 2017 - 18:14, édité 1 fois | |
|