FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Demande pour Jack concernant PanExpress
par Jack Aujourd'hui à 7:48

» Calculatrice
par papydall Hier à 22:54

» EPP_V01 éditeur pour Panoramic
par Minibug Mer 19 Sep 2018 - 21:03

» [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ?
par Jean Claude Mer 19 Sep 2018 - 21:02

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Mer 19 Sep 2018 - 15:58

» Planétarium virtuel.
par Pedro Alvarez Mer 19 Sep 2018 - 9:28

» Petit coucou en passant !
par Minibug Dim 16 Sep 2018 - 15:03

» bug SEVERE fnc+sub : variables globales corrompus
par silverman Dim 16 Sep 2018 - 13:38

» Verrouiller un form en avant plan
par silverman Dim 16 Sep 2018 - 12:50

» Fin de l'aventure.
par Pedro Alvarez Sam 15 Sep 2018 - 18:16

» Demande d'explications Sur File_Write & File_writeln
par Jack Sam 15 Sep 2018 - 17:26

» MEMO avec des possibilités de commande
par Oscaribout Mer 12 Sep 2018 - 1:06

» La théorie du chaos
par jean_debord Mar 11 Sep 2018 - 9:30

» Orbites de l’ensemble de Mandelbrot
par Jean Claude Lun 10 Sep 2018 - 21:08

» Version instantanée V 0.9.29i2 du 4/09/2018
par silverman Mer 5 Sep 2018 - 10:15

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2018
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
CalendrierCalendrier

Partagez | 
 

 T&O Savant-Cosinus Junior (jeu pédagogique)

Aller en bas 
AuteurMessage
jjn4

avatar

Nombre de messages : 1761
Date d'inscription : 13/09/2009

MessageSujet: T&O Savant-Cosinus Junior (jeu pédagogique)   Mar 21 Juin 2016 - 17:10

Scénario :
Vous avez aux alentours de 7 ans, et...
No
Comment ça, il n'y en a pas beaucoup
sur ce forum qui ont cet âge-là ?
Bon, ok, d'accord, alors on va dire
que vous connaissez quelqu'un qui a
aux alentours de 7 ans.
Dans ce cas, vous êtes concerné...
clown alien clown

Problème :
Est-ce que je dois vous expliquer comment ça marche ?
(sachant qu'en principe, un môme de 7 ans devrait être
capable de comprendre le jeu sans explication particulière)
silent alien silent

Alors, vous me direz : si donc, vous avez plus de 7 ans,
pouvez-vous y jouer ? Bien sûr, c'est valable jusqu'à 77 ans !
Et puis, je ne suis pas sûr (même à cet âge canonique)
que vous arriviez à obtenir 10/10 à tous les coups !!!
Laughing alien Laughing

Code:
rem ' Jeu éducatif T&O Savant-Cosinus Junior
   dim ga% , gi% , gj% , ga$ , gw$ , gh$ , da , db : rem Variables globales provisoires
   dim gat% : rem Activation ou non du Timeur
   dim gic% : rem Indice de couleur pour les panels
   dim gij% : rem Indice de carte Jouée
   dim gnb$ : rem Nombre Binaire en chaîne de caractères
   dim gnc% : rem Nombre de Cartes jouées
   dim gnd$(3) : rem Nom des Dessins
   dim gnl% : rem Nombre de Lettres placées dans la réglette
   dim gnm$ : rem Nom Modifié du dessin
   dim gnt% : rem Nombre de tours effectués dans le jeu
   dim gtj : rem Total de points du Joueur (avec décimale)
   dim gpe% : rem Nombre de quart de Points à enlever selon erreurs
   dim gtp$ : rem Titre du Programme
   gtp$="Thomas et Ophélie SAVANT-COSINUS Junior"
   label clac : rem Cible des on-click des petits carrés
   label clic : rem Cible des autres on-click sauf timeur
   label close : rem Arrêt du programme
   label go : rem Cible de l`on-click du timeur
  
rem form0
   width 0,1024
   height 0,620
   caption 0,gtp$
   on_close 0,close

alpha 1 : rem Éléments de présentation ----------------------------------------
   left 1,200
   top 1,10
   font_size 1,50
   font_color 1,0,150,0
   font_name 1,"French Script MT"
   caption 1,lower$(gtp$)
  
alpha 2 : rem Dessin du gamin
   left 2,60
   top 2,100
   font_size 2,300
   font_color 2,0,0,200
   font_name 2,"Webdings"
   caption 2,chr$(130)
  
alpha 3 : rem Dessin de la fillette
   left 3,330
   top 3,100
   font_size 3,300
   font_color 3,255,0,255
   font_name 3,"Webdings"
   caption 3,chr$(131)
  
alpha 4 : rem Avertissement sur la démo
   left 4,700
   top 4,110
   color 4,255,255,0
   font_size 4,30
   font_color 4,255,0,0
   font_name 4,"French Script MT"
   caption 4," Pour savoir comment "+chr$(13)+"          ça fonctionne "
  
alpha 5 : rem Dessin de la flèche indicatrice du bouton démo
   left 5,705
   top 5,195
   font_size 5,90
   font_color 5,255,0,0
   font_name 5,"Wingdings"
   caption 5,chr$(201)
  
alpha 6 : rem Dessin de l`étiquette DÉMO
   hide 6
   left 6,250
   top 6,5
   color 6,0,200,255
   font_size 6,150
   font_color 6,0,0,255
   font_name 6,"Arial"
   caption 6," démo "
  
alpha 7 : rem Dessin de la flèche-guide de démonstration
   hide 7
   left 7,940
   top 7,490
   color 7,150,255,255
   font_size 7,40
   font_color 7,255,0,0
   font_name 7,"Wingdings"
   caption 7,chr$(245)

panel 10 : rem Dessin des cartes retournées -----------------------------------
   hide 10
   left 10,10
   top 10,5
   width 10,140
   height 10,200
   color 10,255,255,255
  
picture 20 : rem Cadre du dos de la carte retournée
   parent 20,10
   left 20,10
   top 20,10
   width 20,120
   height 20,180
   2d_target_is 20
   2d_fill_diagonal_cross
   2d_pen_color 255,0,0
   2d_fill_color 255,0,0
   2d_rectangle 0,0,120,180
   on_click 20,clic

alpha 30 : rem Dessin des lignes de support des cartes du bas -----------------
   left 30,10
   top 30,560
   width 30,665
   height 30,5
   color 30,0,0,0
  
for gi%=1 to 4 : rem Dessin des petites lignes verticales
   alpha gi%*10+30 : rem Obj-Syst n° 40 à 70 à pas de 10
      left gi%*10+30,220*(gi%-1)+10
      top gi%*10+30,540
      width gi%*10+30,5
      height gi%*10+30,20
      color gi%*10+30,0,0,0
next gi%

dlist 80 : rem Liste des dessins
   while ga$<>"Fin-datas"
      read ga$
      gj%=gj%+1
   end_while
   gj%=gj%-1
   restore
   for gi%=1 to gj%
      read ga$
      item_add 80,ga$
   next gi%

timer 90
   timer_interval 90,100
   on_timer 90,go
   timer_off 90

panel 100 : rem Dessin de la première carte du bas ----------------------------
   hide 100
   left 100,55
   top 100,350
   width 100,140
   height 100,200
   color 100,255,255,255
  
for gi%=1 to 8  : rem Carrés binaires de la 1° carte
   for gj%=1 to 8  : rem n°110 à 180, puis 210 à 280, etc... jusqu`à 810 à 880
      picture gi%*10+gj%*100
         parent gi%*10+gj%*100,100
         left gi%*10+gj%*100,gj%*15-4
         top gi%*10+gj%*100,gi%*22-10
         width gi%*10+gj%*100,15
         height gi%*10+gj%*100,22
         on_click gi%*10+gj%*100,clac
   next gj%
next gi%

picture 890 : rem Dos de la carte
   parent 890,100
   left 890,10
   top 890,10
   width 890,121
   height 890,180
   2d_target_is 890
   2d_fill_diagonal_cross
   2d_pen_color 255,0,0
   2d_fill_color 255,0,0
   2d_rectangle 0,0,120,180
   on_click 890,clic

panel 1100 : rem Dessin de la deuxième carte du bas ---------------------------
   hide 1100
   left 1100,275
   top 1100,350
   width 1100,140
   height 1100,200
   color 1100,255,255,255

for gi%=1 to 8  : rem Carrés binaires de la 2° carte
   for gj%=1 to 8  : rem n°1110 à 1180, puis 1210 à 1280, etc... jusqu`à 1810 à 1880
      picture gi%*10+gj%*100+1000
         parent gi%*10+gj%*100+1000,1100
         left gi%*10+gj%*100+1000,gj%*15-4
         top gi%*10+gj%*100+1000,gi%*22-10
         width gi%*10+gj%*100+1000,15
         height gi%*10+gj%*100+1000,22
         on_click gi%*10+gj%*100+1000,clac
   next gj%
next gi%

picture 1890 : rem Dos de la carte
   parent 1890,1100
   left 1890,10
   top 1890,10
   width 1890,121
   height 1890,180
   2d_target_is 1890
   2d_fill_diagonal_cross
   2d_pen_color 255,0,0
   2d_fill_color 255,0,0
   2d_rectangle 0,0,120,180
   on_click 1890,clic

panel 2100 : rem Dessin de la troisième carte du bas ---------------------------
   hide 2100
   left 2100,495
   top 2100,350
   width 2100,140
   height 2100,200
   color 2100,255,255,255

for gi%=1 to 8  : rem Carrés binaires de la 3° carte
   for gj%=1 to 8  : rem n°2110 à 2180, puis 2210 à 2280, etc... jusqu`à 2810 à 2880
      picture gi%*10+gj%*100+2000
         parent gi%*10+gj%*100+2000,2100
         left gi%*10+gj%*100+2000,gj%*15-4
         top gi%*10+gj%*100+2000,gi%*22-10
         width gi%*10+gj%*100+2000,15
         height gi%*10+gj%*100+2000,22
         on_click gi%*10+gj%*100+2000,clac
   next gj%
next gi%

picture 2890 : rem Dos de la carte
   parent 2890,2100
   left 2890,10
   top 2890,10
   width 2890,121
   height 2890,180
   2d_target_is 2890
   2d_fill_diagonal_cross
   2d_pen_color 255,0,0
   2d_fill_color 255,0,0
   2d_rectangle 0,0,120,180
   on_click 2890,clic

for gi%=0 to 2 : rem Dessin des touches de lettres disponibles -----------------
   for gj%=0 to 9 : rem Obj-Syst n° 3000 à 3290 à pas de 10
      button gj%*10+gi%*100+3000
         hide gj%*10+gi%*100+3000
         left gj%*10+gi%*100+3000,gj%*98+3
         top gj%*10+gi%*100+3000,gi%*70+103
         width gj%*10+gi%*100+3000,95
         height gj%*10+gi%*100+3000,68
         font_size gj%*10+gi%*100+3000,35
         font_name gj%*10+gi%*100+3000,"Arial"
         caption gj%*10+gi%*100+3000,chr$(gj%+gi%*10+97)
         on_click gj%*10+gi%*100+3000,clic
   next gj%
next gi%
caption 3260,"'"
caption 3270,"-"
caption 3280," "
font_size 3290,50
font_name 3290,"Wingdings"
caption 3290,chr$(67)

panel 3300 : rem dessin de la réglette de réception des lettres ---------------
   hide 3300
   left 3300,3
   top 3300,5
   width 3300,977
   height 3300,95
   color 3300,255,100,255
  
for gi%=1 to 12 : rem Dessin des carrés où recevoir les lettres du nom
   button gi%*10+3300 : rem Obj-Syst n° 3310 à 3420
      parent gi%*10+3300,3300
      left gi%*10+3300,gi%*81-77
      top gi%*10+3300,5
      width gi%*10+3300,78
      height gi%*10+3300,85
      font_size gi%*10+3300,30
      font_name gi%*10+3300,"Arial"
      caption gi%*10+3300,chr$(95)
      on_click gi%*10+3300,clic
next gi%
  
alpha 3430 : rem Dessin des figures de degré de satisfaction et autres --------
   hide 3430
   left 3430,820
   top 3430,355
   font_size 3430,140
   font_name 3430,"Wingdings"

alpha 3440 : rem Dessin de la poubelle
   hide 3440
   left 3440,680
   top 3440,330
   font_size 3440,100
   font_name 3440,"Webdings"
   font_color 3440,255,0,0
   caption 3440,chr$(210)
   on_click 3440,clic
  
panel 3445 : rem Nom du dernier dessin de la poubelle
   hide 3445
   left 3445,680
   top 3445,445
   width 3445,130
   height 3445,25
   font_size 3445,10
   font_name 3445,"Arial"
  
panel 3450 : rem Bouton de démo
   left 3450,690
   top 3450,320
   width 3450,120
   height 3450,120
   font_size 3450,90
   color 3450,255,255,255
   font_color 3450,30,150,200
   font_name 3450,"Webdings"
   caption 3450,chr$(78)
   on_click 3450,clic

alpha 3460 : rem Dessin du score ----------------------------------------------
   hide 3460
   left 3460,690
   top 3460,475
   width 3460,110
   height 3460,90
   color 3460,255,150,255
  
alpha 3470 : rem Affichage du trait
   hide 3470
   left 3470,705
   top 3470,502
   font_size 3470,12
   font_name 3470,"Arial"
   color 3470,255,150,255
   caption 3470,"_________"
  
alpha 3480 : rem Affichage du numérateur
   hide 3480
   left 3480,710
   top 3480,485
   font_size 3480,20
   font_name 3480,"Arial"
   color 3480,255,150,255
   caption 3480,"00"
  
alpha 3490 : rem Affichage de la fraction
   hide 3490
   left 3490,747
   top 3490,485
   font_size 3490,20
   font_name 3490,"Arial"
   color 3490,255,150,255
   caption 3490,". 0"
  
alpha 3500 : rem Affichage du dénominateur
   hide 3500
   left 3500,729
   top 3500,523
   font_size 3500,20
   font_name 3500,"Arial"
   color 3500,255,150,255
   caption 3500,"10"
  
alpha 3510 : rem Dessin de la coupe
   hide 3510
   left 3510,820
   top 3510,355
   font_size 3510,140
   font_color 3510,255,180,0
   font_name 3510,"Webdings"
   caption 3510,chr$(37)
  
alpha 3520 : rem Affichage des encouragements
   hide 3520
   left 3520,850
   top 3520,520
   font_bold 3520
   font_size 3520,25
   color 3520,0,255,255
   font_name 3520,"Arial"
   caption 3520," bravo ! "
  
panel 3530 : rem Compteur de cartes -------------------------------------------
   hide 3530
   left 3530,160
   top 3530,5
   width 3530,50
   height 3530,30
   font_size 3530,16
   font_name 3530,"Arial"
   caption 3530,"0"
  
rem Dernières commande de préparation
   show 10
   beep
   midi_on

end : rem ' Début des routines ================================================

clac: : rem Cible des on-click des petits carrés
   for gj%=0 to 2000 step 1000
      color gj%+100,255,255,255
   next gj%
   if gic%<>int(number_click/1000)+1
      gic%=int(number_click/1000)+1
      color (gic%-1)*1000+100,150,255,0
      hide 10
      hide 3530
      show 3300
      show 3440
      hide 3445
      if gij%=0
         gpe%=0
      end_if
      for gi%=3310 to 3420 step 10
         caption gi%,"_"
      next gi%
      for gi%=3460 to 3500 step 10
         show gi%
      next gi%
      for gi%=0 to 2
         for gj%=0 to 9
            show gj%*10+gi%*100+3000
         next gj%
      next gi%
      gnl%=0
   else
      gic%=0
      show 10
      show 3530
      hide 3300
      for gi%=0 to 2
         for gj%=0 to 9
            hide gj%*10+gi%*100+3000
         next gj%
      next gi%
   end_if
return

clic: : rem Cible des autres on-click sauf timeur
   select number_click
      case 20 : va()
      case 890 : tourne(number_click)
      case 1890 : tourne(number_click)
      case 2890 : tourne(number_click)
      case 3290 : verif()
      case 3440 : poubelle()
      case 3450 : demo()
   end_select
   if number_click>3305 and number_click<3425
      if gnl%>0
         caption 3300+gnl%*10,chr$(95)
         clic_clic()
         gnl%=gnl%-1
         if gnl%<0
            gnl%=0
         end_if
      end_if
   end_if
   if number_click>2995 and number_click<3285
      gnl%=gnl%+1
      if gnl%<13
         clic_clic()
         caption 3300+gnl%*10,caption$(number_click)
         display
      else
         gnl%=12
      end_if
   end_if
return

close: : rem Arrêt du programme
   terminate
return

go: : rem Cible de l`on-click du timeur
   if gnt%<10
      if mouse_left_down(0)=1
         ga%=0
         gi%=mouse_x_position(0)
         gj%=mouse_y_position(0)
         if gi%>25 and gi%<660 and gj%>260 and gj%<545
            gnt%=gnt%+1
            if gi%<232
               if show(100)=0
                  show 100
                  show 890
                  timer_off 90
                  vide(0)
                  deplace(100,10,5,55,350,1)
                  charge(0)
                  timer_on 90
                  ga%=1
               end_if
            end_if
            if gi%>231 and gi%<453
               if show(1100)=0
                  show 1100
                  show 1890
                  timer_off 90
                  vide(1000)
                  deplace(1100,10,5,275,350,5)
                  charge(1000)
                  timer_on 90
                  ga%=1
               end_if
            end_if
            if gi%>452
               if show(2100)=0
                  show 2100
                  show 2890
                  timer_off 90
                  vide(2000)
                  deplace(2100,10,5,495,350,5)
                  charge(2000)
                  timer_on 90
                  ga%=1
               end_if
            end_if
         end_if
         if ga%=1
            timer_off 90
            gat%=0
            2d_target_is 20
            2d_pen_color 255,0,0
            2d_rectangle 0,0,120,180
            color 10,255,255,255
            color 3530,240,240,240
            caption 3530,gnt%
         end_if
      end_if
   end_if
return

rem ' Début des sub-routines --------------------------------------------------

sub charge(cz%) : rem Charge un dessin dans la carte
   dim_local cw% , cg% , ck% , cs%
   if count(80)>0
      cw%=int(rnd(count(80)))+1
      gw$=item_read$(80,cw%)
      gnd$(int(cz%/1000)+1)=right$(gw$,len(gw$)-19)
      cs%=val(left$(gw$,1))
      gw$=mid$(gw$,3,16)
      gh$=""
      for cg%=1 to len(gw$)/2
         ga$=mid$(gw$,cg%*2-1,2)
         converti_hexa_bin(ga$)
         if len(gnb$)<8
            gnb$=string$(8-len(gnb$),"0")+gnb$
         end_if
         gh$=gh$+gnb$
      next cg%
      if cs%=0
         vire_h(100+cz%)
      else
         vire_v(100+cz%)
      end_if
      for cg%=1 to 8
         for ck%=1 to 8
            if mid$(gh$,(cg%-1)*8+ck%,1)="1"
               color cg%*10+ck%*100+cz%,0,0,0
            end_if
         next ck%
      next cg%
   end_if
end_sub

sub clic() : rem Clic de la flèche de démo
   font_color 7,0,0,255
   pause 250
   midi_instrument 115
   midi_play 67,11
   midi_play 65,10
   font_color 7,255,0,0
end_sub

sub clic_clic() : rem Bruits fait par le clic sur les figures
      midi_instrument 115
      midi_volume 127
      font_bold number_click
      font_underline number_click
      midi_play 67,11
      midi_play 65,10
      font_bold_off number_click
      font_underline_off number_click
end_sub

sub converti_hexa_bin(ca$) : rem Convertisseur d`hexadécimal en binaire
   rem ca$ est le nombre hexadécimal exprimé en chaîne de caractères
   rem gnb$ Nombre Binaire, doit être défini en variable globale
   dim_local cd%
   cd%=hex(ca$)
   gnb$=""
   while cd%>0
      gnb$=str$(mod(cd%,2))+gnb$
      cd%=int(cd%/2)
   end_while
end_sub

sub demo() : rem Macro de démonstration du fonctionnement du programme
   dim_local di% , da$
   midi_volume 127 : rem Clic sur le bouton de démo
   midi_instrument 115
   color 3450,150,255,255
   midi_play 67,11
   midi_play 65,10
   pause 250
   color 3450,255,255,255
   pause 100
   for di%=1 to 5 : rem Effacement des enfsnts et autres présentations
      hide di%
   next di%
   gnl%=0
   caption 3530,"0"
   caption 3480,"00"
   caption 3490,". 0"
   show 3530
   hide 3450
   for di%=0 to 2000 step 1000
      show di%+890
   next di%
   for di%=1 to 5 : rem Clignotement en bleu
      color 0,255,255,255
      pause 250
      color 0,150,255,255
      pause 250
   next di%
   show 6
   pause 1200
   show 7 : rem Arrivée de la flèche
   deplace(7,940,490,500,250,1)
   pause 800
   hide 6
   deplace(7,500,250,160,100,1)
   pause 500
   clic()
   color 10,150,255,0
   color 3530,150,255,0
   pause 600 : rem Descente de la flèche vers la carte 1
   caption 7,chr$(247)
   deplace(7,160,100,200,300,1)
   pause 500
   clic()
   pause 500
   color 10,255,255,255
   color 3530,240,240,240
   caption 3530,"1"
   show 100 : rem Descente de la première carte
   vide(0)
   deplace(100,10,5,55,350,1)
   vire_h(100)
   if count(80)>0
      for di%=1 to count(80)
         da$=item_read$(80,di%)
         if right$(da$,6)="damier"
            exit_for
         end_if
      next di%
   end_if
   da$=mid$(da$,3,16)
   demo_ch(da$,0)
   caption 7,chr$(245)
   pause 500 : rem Remontée de la flèche vers le tas de carte du haut
   deplace(7,200,300,160,100,1)
   pause 500
   clic()
   color 10,150,255,0
   color 3530,150,255,0
   pause 500 : rem Redescente de la flèche vers la 2° carte
   caption 7,chr$(247)
   deplace(7,160,100,420,300,1)
   pause 500
   clic()
   pause 500
   show 1100 : rem Descente de la 2° carte
   color 10,255,255,255
   color 3530,240,240,240
   caption 3530,"2"
   vide(1000)
   deplace(1100,10,5,275,350,5)
   vire_h(1100)
   if count(80)>0
      for di%=1 to count(80)
         da$=item_read$(80,di%)
         if right$(da$,7)="voiture"
            exit_for
         end_if
      next di%
   end_if
   da$=mid$(da$,3,16)
   demo_ch(da$,1000)
   pause 500 : rem Remontée de la fléche vers le tas de carte du haut
   caption 7,chr$(245)
   deplace(7,420,300,160,100,1)
   pause 500
   clic()
   color 10,150,255,0
   color 3530,150,255,0
   pause 500 : rem Redescente de la flèche vers la 3° carte
   caption 7,chr$(247)
   vide(2000)
   deplace(7,160,100,640,300,1)
   pause 500
   clic()
   show 2100 : rem Descente de la 3° carte
   color 10,255,255,255
   color 3530,240,240,240
   caption 3530,"3"
   vide(2000)
   deplace(2100,10,5,495,350,5)
   vire_v(2100)
   if count(80)>0
      for di%=1 to count(80)
         da$=item_read$(80,di%)
         if right$(da$,8)="bonhomme"
            exit_for
         end_if
      next di%
   end_if
   da$=mid$(da$,3,16)
   demo_ch(da$,2000)
   pause 500 : rem Déplace la flèche vers la 1° carte
   deplace(7,640,300,130,350,1)
   pause 500
   clic() : rem Découvre la 1° carte et la flèche va vers la 2° carte
   hide 890
   pause 500
   deplace(7,130,350,350,350,1)
   pause 500
   clic() : rem Découvre la 2° carte et la flèche va vers la 3° carte
   hide 1890
   pause 500
   deplace(7,350,350,570,300,1)
   pause 500
   clic() : rem Découvre la 3° carte et la flèche retourne vers la 1° carte
   hide 2890
   pause 500
   deplace(7,570,300,130,350,1)
   pause 500
   clic() : rem Colore le bord de la première carte en vert
   color 100,150,255,0
   for di%=3000 to 3300 step 10
      show di%
   next di%
   show 3440
   for di%=3460 to 3500 step 10
      show di%
   next di%
   hide 10
   hide 3530
   pause 1000 : rem Remonte la flèche et hésite (clignote)
   caption 7,chr$(241)
   deplace(7,130,350,150,300,1)
   pause 1000
   for di%=1 to 4
      hide 7
      pause 100
      show 7
      pause 200
   next di% : rem La flèche erre, hésite et va de droite et de gauche
   deplace(7,150,300,550,300,1)
   pause 500
   for di%=1 to 4
      hide 7
      pause 100
      show 7
      pause 200
   next di%
   deplace(7,550,300,250,300,1)
   pause 500
   for di%=1 to 4
      hide 7
      pause 100
      show 7
      pause 200
   next di%
   pause 500 : rem La flèche va jeter cette carte à la poubelle
   caption 7,chr$(248)
   deplace(7,250,300,640,300,1)
   pause 500
   font_color 3440,120,0,255
   clic()
   font_color 3440,255,0,0
   pause 500
   gic%=1
   trigger_click 3440
   pause 500 : rem La flèche commence à remonter vars le tas de cartes du haut
   caption 7,chr$(245)
   deplace(7,640,300,400,150,1)
   pause 500 : rem La flèche hésite puis redescend pour voir le nom
   for di%=1 to 4
      hide 7
      pause 100
      show 7
      pause 200
   next di%
   pause 500
   caption 7,chr$(248)
   for di%=1 to 4
      hide 7
      pause 100
      show 7
      pause 200
   next di%
   pause 500
   deplace(7,400,150,640,300,1)
   pause 500
   font_color 3440,120,0,255
   clic()
   font_color 3440,255,0,0
   show 3445
   caption 3445,"damier"
   for di%=1 to 8
      hide 7
      pause 100
      show 7
      pause 200
   next di%
   pause 500 : rem La flèche remonte vers le tas de cartes du haut
   caption 7,chr$(245)
   deplace(7,640,300,160,100,1)
   pause 500
   clic() : rem La flèche redescend vers l`emplacement 1
   color 10,150,255,0
   color 3530,150,255,0
   hide 3445
   pause 500
   caption 7,chr$(247)
   deplace(7,160,100,200,300,1)
   pause 500
   clic() : rem Une nouvelle carte descend à l`emplacement 1
   color 10,255,255,255
   color 3530,240,240,240
   caption 3530,"4"
   show 100
   show 890
   vide(0)
   deplace(100,10,5,55,350,1)
   vire_v(100)
   pause 500 : rem La fléche retourne la carte
   deplace(7,200,300,150,300,1)
   pause 500
   clic()
   hide 890
   if count(80)>0
      for di%=1 to count(80)
         da$=item_read$(80,di%)
         if right$(da$,7)="horloge"
            exit_for
         end_if
      next di%
   end_if
   da$=mid$(da$,3,16)
   demo_ch(da$,0)
   pause 1000 : rem La flèche met le tour de la carte 1 en vert
   deplace(7,150,300,200,300,1)
   pause 500
   clic()
   color 100,150,255,0
   for di%=3000 to 3300 step 10
      show di%
   next di%
   show 3440
   for di%=3460 to 3500 step 10
      show di%
   next di%
   hide 10
   hide 3530
   pause 500 : rem La flèche erre et hésite
   caption 7,chr$(241)
   pause 500
   for di%=1 to 4
      hide 7
      pause 100
      show 7
      pause 200
   next di%
   pause 500
   deplace(7,200,300,500,300,1)
   for di%=1 to 4
      hide 7
      pause 100
      show 7
      pause 200
   next di%
   pause 500
   deplace(7,500,300,100,300,1)
   for di%=1 to 4
      hide 7
      pause 100
      show 7
      pause 200
   next di%
   pause 500 : rem La flèche remet la carte 1 en blanc
   caption 7,chr$(248)
   pause 500
   clic()
   color 100,255,255,255
   for di%=3000 to 3300 step 10
      hide di%
   next di%
   show 3440
   for di%=3460 to 3500 step 10
      hide di%
   next di%
   show 10
   show 3530
   pause 1000 : rem La flèche choisit finalement la carte 2
   deplace(7,100,300,300,350,1)
   pause 500
   clic()
   color 1100,150,255,0
   for di%=3000 to 3300 step 10
      show di%
   next di%
   show 3440
   for di%=3460 to 3500 step 10
      show di%
   next di%
   hide 10
   hide 3530
   pause 500
   caption 7,chr$(241) : rem La flèche réfléchit (clignote)
   deplace(7,300,350,290,300,1)
   for di%=1 to 8
      hide 7
      pause 100
      show 7
      pause 200
   next di%
   pause 500
   gic%=2 : rem La flèche essaie le mot « auto »
   gnd$(gic%)="voiture"
   deplace(7,300,300,50,140,1)
   trigger_click 3000
   pause 500
   deplace(7,50,140,52,270,1)
   trigger_click 3200
   pause 500
   deplace(7,52,270,930,210,1)
   trigger_click 3190
   pause 500
   deplace(7,930,210,440,210,1)
   trigger_click 3140
   pause 500
   deplace(7,440,210,840,320,1)
   caption 7,chr$(246)
   pause 1000
   deplace(7,840,320,900,280,1)
   trigger_click 3290
   pause 500
   deplace(7,900,280,840,320,1)
   caption 7,chr$(241)
   pause 1000 : rem La flèche efface le mot « auto »
   deplace(7,840,320,610,70,1)
   pause 1000
   caption 3380,""
   for di%=1 to 4
      font_name 3380,"Webdings"
      caption 3380,chr$(103)
      trigger_click 3380
      pause 100
      font_name 3380,"Arial"
      caption 3380,"_"
      pause 1000
   next di% : rem La flèche se remet en position et réfléchit
   deplace(7,610,70,290,300,1)
   for di%=1 to 8
      hide 7
      pause 100
      show 7
      pause 200
   next di%
   pause 500 : rem La flèche essaie le mot « voiture »
   deplace(7,290,300,150,270,1)
   trigger_click 3210
   pause 500
   deplace(7,150,270,440,210,1)
   trigger_click 3140
   pause 500
   deplace(7,440,210,830,140,1)
   trigger_click 3080
   pause 500
   deplace(7,830,140,930,210,1)
   trigger_click 3190
   pause 500
   deplace(7,930,210,50,270,1)
   trigger_click 3200
   pause 500
   deplace(7,50,270,730,210,1)
   trigger_click 3170
   pause 500
   deplace(7,730,210,440,140,1)
   trigger_click 3040
   pause 1000
   caption 7,chr$(246)
   deplace(7,440,140,840,320,1)
   pause 1000
   deplace(7,840,320,900,280,1)
   trigger_click 3290
   pause 500
   caption 7,chr$(245)
   deplace(7,900,280,550,250,1)
   pause 1000
   show 6
   pause 1000
   hide 7
   for di%=1 to 5 : rem Clignotement en bleu
      color 0,255,255,255
      pause 250
      color 0,150,255,255
      pause 250
   next di%
   pause 500
   color 0,240,240,240
   for di%=1 to 5
      show di%
   next di%
   show 3450
   hide 6
   hide 100
   hide 2100
   hide 3530
   caption 3530,"0"
   caption 3480,"00"
   caption 3490,". 0"
   gic%=0
   gnd$(2)=""
   gnt%=0
   gtj=0
   gpe%=0
   gnc%=0
   gnl%=0
end_sub

sub demo_ch(da$,dz%) : rem Charge les dessins pour la démo
   dim_local dj% , db$ , dh$ , dk%
   for dj%=1 to 8
      db$=mid$(da$,dj%*2-1,2)
      converti_hexa_bin(db$)
      if len(gnb$)<8
         gnb$=string$(8-len(gnb$),"0")+gnb$
      end_if
      dh$=dh$+gnb$
   next dj%
   for dj%=1 to 8
      for dk%=1 to 8
         if mid$(dh$,(dj%-1)*8+dk%,1)="1"
            color dj%*10+dk%*100+dz%,0,0,0
         end_if
      next dk%
   next dj%
end_sub

sub deplace(dq%,dx1%,dy1%,dx2%,dy2%,dh%) : rem Déplacement d`objets
   dim_local di2%
   da=(dy2%-dy1%)/(dx2%-dx1%)
   db=dy1%-(da*dx1%)
   for di2%=dx1% to dx2% step sgn(dx2%-dx1%)*dh%
      left dq%,di2%
      top dq%,int(da*di2%+db)
      display
   next di2%
end_sub

sub fini() : rem Termine le jeu de 10 tours
   dim_local fi% , fj%
   hide 10
   hide 3530
   font_size 3510,int(gtj)*10+40
   hide 3440
   hide 3445
   show 3510
   show 3520
   show 2
   show 3
   midi_instrument 117
   for fi%=1 to 20
      top 2,80
      top 3,80
      midi_play 60+int(rnd(10)),10
      pause 100
      top 2,100
      top 3,100
      pause 100
      font_color 3510,int(rnd(255))+1,int(rnd(255))+1,int(rnd(255))+1
   next fi%
   midi_instrument 55
   for fi%=60 to 64 step 2
      for fj%=1 to 3
         midi_play fi%,8
         font_color 3510,int(rnd(255))+1,int(rnd(255))+1,int(rnd(255))+1
         pause 10
      next fj%
      midi_play fi%+2,9
      top 2,80
      top 3,80
      pause 200
      top 2,100
      top 3,100
   next fi%
   font_color 3510,255,180,0
   pause 500
   show 1
   show 4
   show 5
   show 10
   caption 3480,"00"
   caption 3490,". 0"
   caption 3530,"0"
   for fi%=3460 to 3500 step 10
      hide fi%
   next fi%
   gnt%=0
   gtj=0
   gpe%=0
   gnc%=0
   show 3450
   hide 3510
   hide 3520
end_sub

sub poubelle() : rem Action d`absorption de la poubelle
   dim_local pa% , px% , py% , pi%
   if gic%>0
      font_color 3440,120,0,255
      for pi%=3000 to 3300 step 10
         hide pi%
      next pi%
      hide 3430
      for pi%=3310 to 3420 step 10
         caption pi%,"_"
      next pi%
      pa%=(gic%-1)*1000+100
      px%=left(pa%)
      py%=top(pa%)
      color pa%,255,255,255
      deplace(pa%,px%,py%,550,100,5)
      deplace(pa%,550,100,670,220,5)
      hide pa%
      font_color 3440,255,0,0
      midi_instrument 47
      midi_volume 127
      midi_play 67,6
      pause 100
      left pa%,px%
      top pa%,py%
      caption 3445,gnd$(gic%)
      gic%=0
      show 10
      show 3530
      gnc%=gnc%+1
      if gnc%>9 and show(100)=0 and show(1100)=0 and show(2100)=0
         fini()
      end_if
      gij%=0
   else
      show 3445
   end_if
end_sub

sub tourne(ta%)
   hide ta%
end_sub

sub transf() : rem Transforme le nom du dessin en enlevant les accents
   dim_local ti% , tm$ , tt$
   for ti%=1 to len(gnm$)
      tm$=mid$(gnm$,ti%,1)
      if tm$="à" or tm$="â" or tm$="ä" then tm$="a"
      if tm$="é" or tm$="è" or tm$="ê" or tm$="ë" then tm$="e"
      if tm$="î" or tm$="ï" then tm$="i"
      if tm$="ô" or tm$="ö" then tm$="o"
      if tm$="ù" or tm$="û" or tm$="ü" then tm$="u"
      if tm$="ç" then tm$="c"
      if tm$="ñ" then tm$="n"
      tt$=tt$+tm$
   next ti%
   gnm$=tt$
end_sub

sub va() : rem Déclenche la détection de l`endroit où placer la carte
   dim_local vi%
   if show(100)=0 or show(1100)=0 or show(2100)=0
      if gat%=0
         timer_on 90
         gat%=1
         2d_target_is 20
         2d_pen_color 0,0,0
         2d_rectangle 0,0,120,180
         color 10,150,255,0
         if gnt%<10
            color 3530,150,255,0
         end_if
         hide 3445
         for vi%=1 to 5
            hide vi%
         next vi%
         show 3530
         hide 3450
      else
         gat%=0
         timer_off 90
         2d_target_is 20
         2d_pen_color 255,0,0
         2d_rectangle 0,0,120,180
         color 10,255,255,255
         color 3530,240,240,240
         caption 3530,gnt%
      end_if
   end_if
end_sub

sub verif() : rem Vérification de la réponse
   dim_local vi% , vj% , va$ , va% , vx% , vy% , vn% , vh$ , vr
   clic_clic()
   midi_instrument 11
   midi_volume 127
   for vi%=1 to 12
      va$=va$+caption$(3300+vi%*10)
      if caption$(3300+vi%*10)<>"_"
         font_bold 3300+vi%*10
         font_underline 3300+vi%*10
         midi_play 59+vi%,11
         pause 200
         font_bold_off 3300+vi%*10
         font_underline_off 3300+vi%*10
      end_if
   next vi%
   va%=instr(va$,"_")
   if va%>0
      va$=left$(va$,va%-1)
   end_if
   if va$<>""
      gnm$=gnd$(gic%)
      transf()
      if va$=gnm$
         for vi%=1 to len(gnd$(gic%))
            caption 3300+vi%*10,mid$(gnd$(gic%),vi%,1)
         next vi%
         show 3430
         font_color 3430,0,0,255
         color 3430,120,255,255
         caption 3430,chr$(74)
         display
         for vi%=1 to 2
            midi_instrument 123
            midi_volume 127
            midi_play 65,8
            midi_play 75,8
            midi_play 64,8
            midi_play 75,8
            for vj%=1 to 5
               top 3430,340
               pause 100
               top 3430,355
               pause 100
            next vj%
         next vi%
         for vi%=3000 to 3300 step 10
            hide vi%
         next vi%
         for vi%=3310 to 3420 step 10
            caption vi%,"_"
         next vi%
         for vi%=3430 to 3450 step 10
            hide vi%
         next vi%
         vn%=(gic%-1)*1000+100
         vx%=left(vn%)
         vy%=top(vn%)
         deplace(vn%,vx%,vy%,vx%+100,-220,2)
         hide vn%
         left vn%,vx%
         top vn%,vy%
         color vn%,255,255,255
         show 10
         show 3530
         if gpe%>4
            gpe%=4
         end_if
         gtj=(gtj+1)-(gpe%/4)
         vh$=str$(int(gtj))
         if len(vh$)<2
            vh$="0"+vh$
         end_if
         caption 3480,vh$
         vr=frac(gtj)
         vr=(vr*4)+187
         if vr=187
            vr=48
         end_if
         caption 3490,". "+chr$(vr)
         gnc%=gnc%+1
         if gnc%>9 and show(100)=0 and show(1100)=0 and show(2100)=0
            fini()
         end_if
         gij%=0
      else
         show 3430
         font_color 3430,255,0,0
         color 3430,255,255,0
         caption 3430,chr$(76)
         display
         midi_instrument 110
         midi_volume 127
         midi_play 35,8
         midi_play 35,8
         pause 500
         hide 3430
         gpe%=gpe%+1
         gnc%=gnc%+1
         gij%=1
      end_if
   end_if
end_sub

sub vide(vc%) : rem Vide les carrés des cartes
   dim_local vu% , vv%
   for vu%=1 to 8
      for vv%=1 to 8
         color vu%*10+vv%*100+vc%,255,255,255
      next vv%
   next vu%
end_sub

sub vire_h(vq%) : rem Met la carte en positions horizontale
   dim_local vu% , vv%
   left vq%,25+int(vq%/1000)*220
   top vq%,410
   width vq%,200
   height vq%,140
   width vq%+790,180
   height vq%+790,121
   2d_target_is vq%+790
   2d_clear
   2d_fill_diagonal_cross
   2d_pen_color 255,0,0
   2d_fill_color 255,0,0
   2d_rectangle 0,0,180,120
   for vu%=1 to 8
      for vv%=1 to 8
         left vu%*10+vv%*100+vq%-100,vv%*22-10
         top vu%*10+vv%*100+vq%-100,vu%*15-4
         width vu%*10+vv%*100+vq%-100,22
         height vu%*10+vv%*100+vq%-100,15
      next vv%
   next vu%
end_sub

sub vire_v(vq%) : rem Met la carte en positions verticale
   dim_local vu% , vv%
   left vq%,55+int(vq%/1000)*220
   top vq%,350
   width vq%,140
   height vq%,200
   width vq%+790,121
   height vq%+790,180
   2d_target_is vq%+790
   2d_clear
   2d_fill_diagonal_cross
   2d_pen_color 255,0,0
   2d_fill_color 255,0,0
   2d_rectangle 0,0,120,180
   for vu%=1 to 8
      for vv%=1 to 8
         left vu%*10+vv%*100+vq%-100,vv%*15-4
         top vu%*10+vv%*100+vq%-100,vu%*22-10
         width vu%*10+vv%*100+vq%-100,15
         height vu%*10+vv%*100+vq%-100,22
      next vv%
   next vu%
end_sub

rem ' Datas -------------------------------------------------------------------
   data "0.001F7FBFFFFF6666.camion"
   data "1.087F5D5D1C141414.bonhomme"
   data "0.AA55AA55AA55AA55.damier"
   data "0.000E1121FFFFFF42.voiture"
   data "1.3C4289918985427E.horloge"
   data "1.1038387C7CFE1010.sapin"
   data "0.0000FCFFFDFDFF78.tasse"
   data "1.3C186681818181FF.bouteille"
   data "0.FFBD7E3C3C18183C.coupe"
   data "0.7F41414141417F7F.télé"
   data "0.00003E6B3E000000.masque"
   data "0.FF8587858785FF81.four"
   data "0.0000FF4242424200.table"
   data "0.000705FD65670000.clef"
   data "0.001C093F2F210000.robinet"
   data "0.FF81ADA5A5A581FF.calendrier"
   data "0.000040FF40000000.épée"
   data "1.80808080FC848484.chaise"
   data "0.18244281ADADA1A1.maison"
   data "1.7E81BDA5BD817E00.cible"
   data "0.007E42427EFF0000.chapeau"
   data "1.7E81A5817E000000.prise"
   data "1.001818FF18180000.croix"
   data "0.0000C0C0FE000000.pipe"
   data "0.000E0AFFAB03ABFF.crocodile"
   data "0.081C1C3E08FF7F3E.bateau"
   data "0.081C3E7F08082838.parapluie"
   data "1.8244281038EEAAEE.ciseaux"
   data "0.00714642FFA5A5E7.vélo"
   data "1.0054387C38541010.fleur"
   data "1.AAFEBEBAFAFEFEFE.tour"
   data "0.AAFFFFE7C3C3C3C3.château"
   data "1.087C5C1C1C1C1C08.stylo"
   data "1.24FFBD3C3C3C0000.maillot"
   data "1.7C7C6C6C6C6C6C00.pantalon"
   data "0.0002FEFF171F0303.pistolet"
   data "0.007F49497F49497F.fenêtre"
   data "1.003E22223E3E3E3E.porte"
   data "0.04867C3C3C181018.oiseau"
   data "0.04867F7C3F755454.chien"
   data "0.FFA581FFA581FF81.commode"
   data "1.3C1824428181817E.pot"
   data "0.000000081C3E7FFF.pyramide"
   data "0.00307F3078FEAAFE.char"
   data "0.0000817E81000000.os"
   data "1.55FF55555555FF55.barrière"
   data "0.08087F080808081C.avion"
   data "0.3F21213111517107.grue"
   data "0.7C82AA9282BA827C.tête"
   data "0.28AAAAFE783B3E3C.main"
   data "0.0000E8F0F8FCFFE7.chaussure"
   data "1.1C3E7F7F3E1C0808.arbre"
   data "1.007F557F557F5577.immeuble"
   data "1.0808080808080810.club de golf"
   data "1.00FEAABAAABA2838.veste"
   data "0.000000040E8E7E7F.escargot"
   data "1.101038287C44FE82.tour eiffel"
   data "1.081C1C1C1C1C1C00.pile"
   data "0.00000F01013F7FFF.fer"
   data "0.004242FF42420000.haltère"
   data "1.081C3E7F00550055.douche"
   data "0.FE10397F7C7C3844.hélicoptère"
   data "0.00206A3E3F3E5255.chameau"
   data "0.00206C3E3F3E5255.dromadaire"
   data "0.1C7F5FFFFF8FAAEA.éléphant"
   data "1.2828282828381010.diapason"
   data "1.007F555500000000.peigne"
   data "0.04081C1C1C7F3E1C.bougie"
   data "0.003C3C3C3C3C3C00.carré"
   data "0.007E2A7E7EFF2400.wagon"
   data "0.3C24FFFFFFFFFFFF.valise"
   data "1.7E9999E7FF55AAFF.crâne"
   data "0.000000FFF0F0F000.casserole"
   data "0.000000FFF8700000.poêle"
   data "0.101CBEFBFFBE1800.poisson"
   data "1.1C224141417F7F7F.puits"
   data "1.141414141436223E.thermomètre"
   data "0.003C429999423C00.oeil"
   data "0.007E7E7E7E7E7E00.rectangle"
   data "0.02060E1E0E060200.triangle"
   data "0.00000007FF070000.rame"
   data "0.1824424242422418.cercle"
   data "0.3C644E5F404040E0.lampe"
   data "0.00000BFF0B000000.longue-vue"
   data "1.1824040404040404.canne"
   data "0.00EB497F497F7F41.balance"
   data "0.00020010197357FF.photo"
   data "1.FFFFC3C3C3C3C3C3.arche"
   data "0.00FFFF2424242424.pont"
   data "0.1C08080808080808.clou"
   data "0.F7ADF7EFF7EFB5EF.gond"
   data "0.FE82AA8282AA82FE.dé"
   data "0.FF01FD85A5BD81FF.spirale"
   data "0.7EC3A59999A5C37E.roue"
   data "1.384444284482C67C.sablier"
   data "0.00000000EFFF7E3C.cendrier"
   data "1.3844443810101010.loupe"
   data "0.FF9191FF8181FF80.drapeau"
   data "1.083E5D9C3E7F1414.dame"
   data "1.8080FC84FE828282.fauteuil"
   data "1.243C243C243C243C.échelle"
   data "0.0103070F1F3F7FFF.escalier"
   data "1.3C1818181818183C.colonne"
   data "1.000A2E380A2E3808.cactus"
   data "0.FF80B591919580FF.réveil"
   data "1.2828103844828244.pince"
   data "0.1082D6FEFED69210.papillon"
   data "0.18423C997E187E99.insecte"
   data "0.00060704047454DC.serpent"
   data "0.006020604077151D.ver de terre"
   data "0.77087F087F080808.antenne"
   data "1.1F23231F2343433F.lettre"
   data "1.81FFFFFF81818181.panneau"
   data "1.FEBE3E7F55555514.gant"
   data "1.7E7EFFFFC381817E.orteil"
   data "1.3C3C428991423C3C.montre"
   data "1.103CCB89FF81817E.souris"
   data "1.0080F8880808081C.tuyau"
   data "1.3F2121515121030F.potence"
   data "0.000406FFFF060400.flèche"
   data "0.00000203FF030300.marteau"
   data "0.0000C37EC3000000.clé"
   data "0.00367F7F7F3E1C08.coeur"
   data "0.1C1C1C086B7F6B08.trèfle"
   data "0.081C3E7F7F3E1C08.carreau"
   data "0.081C3E7F7F080808.champignon"
   data "0.3F3B71BBFFFF6666.ambulance"
   data "0.003E222222666600.note"
   data "1.3E363E363E363E08.feu rouge"
   data "1.1C22223E4149413E.cadenas"
   data "1.081C1C1C1C1C1C36.fusée"
   data "0.002E6A2A2A2A2E00.dix"
   data "1.040C14247E040400.quatre"
   data "1.003E021E02023E00.trois"
   data "1.003E023E20203E00.deux"
   data "1.1C3C6C0C0C0C0C0C.un"
   data "1.3E61407F4141631C.six"
   data "1.7F0303060C183060.sept"
   data "1.3C42423C4242423C.huit"
   data "1.3C42423E0202423C.neuf"
   data "0.2266222222222277.onze"
   data "0.46C94943474C48EF.douze"
   data "0.4EC14146414141EE.treize"
   data "0.42C64A4A525F42E2.quatorze"
   data "0.4EC8484E414149E6.quinze"
   data "0.46C8484E494949E6.seize"
   data "0.4FC1434246444CE8.dix-sept"
   data "0.46C94946494949E6.dix-huit"
   data "0.46C94947414149E6.dix-neuf"
   data "0.62951535458585F2.vingt"
   data "0.6295152515159572.trente"
   data "0.2265A5A5A5F52522.quarante"
   data "0.E28585E515159562.cinquante"
   data "0.E28585E595959562.soixante"
   data "0.F21535256545C582.soixante-dix"
   data "0.6295956595959562.quatre-vingt"
   data "0.FE545424245454FE.chiffre"
   data "1.1C1C080808080808.allumette"
   data "0.FFFFFFFFFFFFFFFF.tableau noir"
   data "0.FFC3BFBFCFF7F7CF.ardoise"
   data "0.FFC3A59999A5C3FF.enveloppe"
   data "1.6C6C6C7C547C387C.lapin"
   data "1.7C7C7C1038383838.serrure"
   data "0.287C287E28FE28FF.xylophone"
   data "0.54D5D5D5D5D5D554.accordéon"
   data "0.01038FFF8F030100.trompette"
   data "0.FF4A4A4A4A000000.clavier"
   data "0.E0E0407F7F40E0E0.hache"
   data "1.08080808081C1C08.fil à plomb"
   data "1.BDFFBDFFBDFFBDFF.film"
   data "0.000010FFFE100000.couteau"
   data "0.3CFF7E3C187E7E00.enclume"
   data "0.0000FFBFBFAAE000.scie"
   data "1.7F03030303030300.équerre"
   data "0.00080FFF0F080000.tournevis"
   data "0.00007EFFEACAFAC2.perceuse"
   data "0.00407CFFD4F4C4C0.mitraillette"
   data "0.20F0FFFFF0200000.pinceau"
   data "1.1C08386060380808.vilebrequin"
   data "0.0000060CFFFFFF20.rabot"
   data "1.08080808083E2A2A.fourche"
   data "1.0808080808081C1C.pelle"
   data "1.07070707070F7F7F.botte"
   data "0.30488BBEBCB87838.arrosoir"
   data "1.101010101010FF55.rateau"
   data "1.3C428181FF7E7E3C.seau"
   data "0.147F4141417F2222.chevalet"
   data "0.0000000FFFFF0B0F.tronçonneuse"
   data "1.3C18183C66C3E742.compas"
   data "1.7F08080808080808.té"
   data "1.0E0E04FC80BFFF3F.rouleau"
   data "0.0000000000FF4242.banc"
   data "1.1C1C1C1C1C081408.stylo-plume"
   data "1.6624428181FFFFFF.encrier"
   data "1.0E1CC8FF4B091C3E.ventilateur"
   data "0.FF55FFAAFF55FFAA.grille"
   data "0.0477153C280EFB08.mots croisés"
   data "0.0000013F7F3F8180.dentifrice"
   data "1.C3FF18FFDB183C3C.moulin"
   data "0.000095FF81140000.tringle"
   data "0.FE55FFFF66660000.car"
   data "Fin-datas"
rem Fin des datas


Dernière édition par jjn4 le Mer 22 Juin 2016 - 14:38, édité 4 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
jjn4

avatar

Nombre de messages : 1761
Date d'inscription : 13/09/2009

MessageSujet: +++   Mar 21 Juin 2016 - 17:34

Tiens, ça y est, j'ai eu à nouveau toujours cette erreur mystérieuse.
Elle indique :

Erreur externe
Ligne 1062 --------> db=dy1-(da*dx1)
' -5.7 ' is not a valid floating point value
scratch scratch scratch alien scratch scratch scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Jean Claude

avatar

Nombre de messages : 5643
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: T&O Savant-Cosinus Junior (jeu pédagogique)   Mar 21 Juin 2016 - 17:56

J'ai fait 3+1/4 sur 10.

Mais ça n'a jamais planté.

Bon heu... le dessin de la flèche, ça ressemble plus à un demi-essieu qu'à une flèche.
Je sais, tu vas dire que c'est une flèche martienne... alien

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jjn4

avatar

Nombre de messages : 1761
Date d'inscription : 13/09/2009

MessageSujet: +++   Mar 21 Juin 2016 - 18:06

Absolument martien !
Laughing Laughing Laughing alien alien alien alien alien alien alien alien alien alien alien Laughing Laughing Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
papydall

avatar

Nombre de messages : 5991
Age : 68
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: T&O Savant-Cosinus Junior (jeu pédagogique)   Mar 21 Juin 2016 - 18:17

jjn4 a écrit:
Tiens, ça y est, j'ai eu à nouveau toujours cette erreur mystérieuse.
Elle indique :

Erreur externe
Ligne 1062 --------> db=dy1-(da*dx1)
' -5.7 ' is not a valid floating point value

C’est plutôt la ligne 1061 --- > db=dy1-(da*dx1)


Code:

sub deplace(dq%,dx1%,dy1%,dx2%,dy2%,dh%) : rem Déplacement d`objets
 dim_local di% , da , db , dx1 , dx2 , dy1 , dy2
 dx1=dx1% : dx2=dx2% : dy1=dy1% : dy2=dy2%
 da=(dy2-dy1)/(dx2-dx1)
 db=dy1-(da*dx1)
 for di%=dx1% to dx2% step sgn(dx2%-dx1%)*dh%
     left dq%,di%
     top dq%,int(da*di%+db)
     display
 next di%
end_sub

La SUB Deplace(…) a comme paramètres formels dx1%, dx2%,dy1%, dy2% : ce sont des entiers, ils sont considérés comme variables locales.
Au sein de la SUB, tu déclares DIM_LOCAL dx1,dx2,dy1,dy2 : ce sont aussi des variables locales mais d’un autre type : ce sont des flottants (des réels si tu veux).
Tu mélange des entiers et des flottants.
Il y a donc conflit entre ces variables.

Modifie la sub comme ceci :

Code:

sub deplace(dq%,dx1%,dy1%,dx2%,dy2%,dh%) : rem Déplacement d`objets
  dim_local di% , da% , db%
   da% = (dy2%-dy1%)/(dx2%-dx1%)
   db% = dy1%-(da%*dx1%)
  for di%=dx1% to dx2% step sgn(dx2%-dx1%)*dh%
      left dq%,di%
      top dq%,int(da%*di%+db%)
      display
  next di%
end_sub



En tout cas BRAVO pour ce programme. king


message édité
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
jjn4

avatar

Nombre de messages : 1761
Date d'inscription : 13/09/2009

MessageSujet: +++   Mar 21 Juin 2016 - 18:35

J'avais mis les réels pour faire tous les calculs en réels,
au cas où le conflit aurait été là. Ceci dit, maintenant
que je les ai retirés et que j'ai remis les entiers seuls,
le problème persiste.
J'ai aussi modifié le di%, car il y avait une sub
qui déclarait une variable locale di% et lançait
une autre sud déclarant aussi une variable locale di%,
il pouvait y avoir conflit, je ne sais pas.
Alors j'ai mis di2% pour la deuxième.
Ceci dit, l'erreur persiste. Décidément...!!!
scratch scratch scratch scratch alien scratch scratch scratch scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
jjn4

avatar

Nombre de messages : 1761
Date d'inscription : 13/09/2009

MessageSujet: +++   Mer 22 Juin 2016 - 14:57

Finalement, j'ai trouvé une solution :
J'ai mis les deux variables réelles en variables globales
et, apparemment, l'erreur ne se produit plus.
Ne me demandez-pas pourquoi !
Ou bien j'ai fait une erreur de programmation particulièrement ardue,
ou il y a un bug au niveau du langage qui rendrait incompatibles
les variables réelles avec les sub en situation complexe ?
En tout cas, il semblerait que ça marche, c'est le principal.
cheers alien king

Finalement, si le principe du jeu est intéressant, d'un point de vue pédagogique,
il faut admettre que les dessins sont assez grossiers et souvent difficiles à interpréter.
Il faudrait que j'affine la gestion de la trame des dessins en les passant de 8x8 à 16x16,
par exemple. Mais j'arrête là pour le moment, puisque je pars en vacances vendredi.
Je m'y attellerai peut-être à la rentrée...
Bye, bye !!!!!
sunny jocolor alien Sleep geek
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Contenu sponsorisé




MessageSujet: Re: T&O Savant-Cosinus Junior (jeu pédagogique)   

Revenir en haut Aller en bas
 
T&O Savant-Cosinus Junior (jeu pédagogique)
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Présentation Ptit-Junior
» Sketchup Junior
» nouvelle commande
» Kimura Takuya (idole) [SMAP]
» Cherche Taff Nuke junior

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les jeux faits avec Panoramic-
Sauter vers: