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
» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Aujourd'hui à 19:15

» Projet de planétarium virtuel.
par Pedro Alvarez Aujourd'hui à 16:46

» Quantité de mémoire utilisée par un exe
par Jack Aujourd'hui à 16:39

» Problème avec 'file_load'.
par Pedro Alvarez Hier à 8:12

» Version instantanée V 0.9.28i20 du 13/06/2018
par jjn4 Sam 16 Juin 2018 - 14:25

» string$(0,chr$(32)) sans erreur
par silverman Ven 15 Juin 2018 - 19:56

» Version instantanée V 0.9.28i19 du 13/06/2018
par Minibug Ven 15 Juin 2018 - 19:14

» Mes souhaits d'amélioration de Panoramic.
par Pedro Alvarez Jeu 14 Juin 2018 - 20:17

» [RÉSOLU] Message d'erreur impossible à indentifier
par Minibug Mer 13 Juin 2018 - 20:52

» Cadre pour image
par Jean Claude Mar 12 Juin 2018 - 16:31

» Créateur d'objets Panoramic
par Minibug Mar 12 Juin 2018 - 14:02

» Planétarium gratuit.
par Jean Claude Sam 9 Juin 2018 - 18:50

» Comment afficher une image sans fond.
par JL35 Sam 9 Juin 2018 - 14:16

» image_width(n) et image_height(n)
par silverman Sam 9 Juin 2018 - 11:22

» Site sur la programmation sympa
par Jean Claude Jeu 7 Juin 2018 - 11:20

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2018
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

Partagez | 
 

 Boncomptoramic (Le compte est bon)

Aller en bas 
Aller à la page : 1, 2  Suivant
AuteurMessage
jjn4

avatar

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

MessageSujet: Boncomptoramic (Le compte est bon)   Jeu 22 Déc 2016 - 15:36

Dans un premier temps, pour Noël, j'avais pensé vous faire
une petite animation avec sapins et lumières clignotantes,
puis je me suis dit qu'après des réjouissances pareillement
folles (trop fatigantes), avec autant de foie gras (trop lourd),
de mets délicieux (trop arrosés), de tels réveillons (trop longs),
tant de nuits (trop courtes), vous vous retrouvez avachi sur le
canapé du salon, le corps totalement affalé, la bouche pâteuse,
les cheveux ébouriffés, l'oeil vitreux, l'esprit vide, vide, vide,
vide comme un écran de télé un jour de panne de courant...

Donc je me suis dit qu'un sapin décoré de plus (même de style
martien), cela ne vous tirerait pas de votre léthargie. Alors,
finalement, je vous ai fait un jeu qui va vous réveiller (oh, pas
trop, quand même. Pas trop dur, non plus), juste des petits
exercices de calcul mental, excellents pour la digestion, et
parfaits pour revigorer les méninges...
Code:
rem ' Le compte est bon - Boncomptoramic - 22/12/2016 - jjn4
  dim ii% , jj% , a$ : rem Variables provisoires
  dim nb% : rem NomBre de caractères à afficher
  dim nb$(5) : rem Noms des Boutons
  dim nt : rem Nombre de Tours
  dim pn%(24) : rem Plaques de Nombres
  dim rm : rem Record Maximum
  dim tt$ : rem TiTre du jeu
  tt$="LE COMPTE EST BON"
  nb$(1)="Le compte est bon" : nb$(2)="Approximatif" : nb$(3)="Pas trouvé"
  nb$(4)="Quitter le jeu" : nb$(5)="Mode d'emploi"
  label chrono , clic , err , how , key
  on_error_goto err
 
rem form0
  width 0,1000
  height 0,685
 
rem Présentation
  pause 200
  for ii%=1 to len(tt$)
      affiche(ii%*55-35,150,mid$(tt$,ii%,1))
  next ii%
  for ii%=1 to 10
      pn%(ii%*2-1)=ii%
      pn%(ii%*2)=ii%
  next ii%
  for ii%=21 to 24
      pn%(ii%)=(ii%-20)*25
  next ii%
  pause 500
  for ii%=1 to len(tt$)
      delete ii%
  next ii%
  caption 0,"  "+tt$+" - par jjn4 - 1/12"
 
rem Lecture du record
  if file_exists("Boncomptoramic-Record.txt")=1
      file_open_read 1,"Boncomptoramic-Record.txt"
        file_readln 1,a$
      file_close 1
      rm=val(a$)
  else
      file_open_write 1,"Boncomptoramic-Record.txt"
        file_writeln 1,"0"
      file_close 1
  end_if

rem Affichage du jeu
  for ii%=1 to 6 : rem Affichage des 6 plaques de nombres de 1 à 100
      panel ii%*10 : rem Panels 10, 20, 30, 40, 50 et 60
        left ii%*10,105*ii%-95
        top ii%*10,20
        width ii%*10,100
        height ii%*10,60
        color ii%*10,255,255,255
        font_bold ii%*10
        font_size ii%*10,28
        font_name ii%*10,"Arial"
        on_click ii%*10,clic
  next ii%
  for ii%=1 to 3 : rem Affichage des 3 chiffres du nombre à trouver
      panel 60+ii%*5 : rem Panels 65, 70 et 75
        left 60+ii%*5,ii%*90-70
        top 60+ii%*5,100
        width 60+ii%*5,89
        height 60+ii%*5,130
        color 60+ii%*5,255,255,255
        font_bold 60+ii%*5
        font_size 60+ii%*5,80
        font_name 60+ii%*5,"Arial"
  next ii%
  panel 80 : rem Affichage du chrono
      left 80,325
      top 80,100
      width 80,120
      height 80,80
      color 80,200,255,255
      font_bold 80
      font_size 80,46
      font_name 80,"Arial"
  button 90 : rem Affichage du bouton d`arrêt du chrono
      left 90,455
      top 90,100
      width 90,180
      height 90,80
      font_bold 90
      font_size 90,16
      caption 90,"Arrêt Chrono"
      on_click 90,clic
      hide 90
  button 100 : rem Affichage du bouton Jouet/Rejouer
      left 100,325
      top 100,185
      width 100,310
      height 100,50
      font_bold 100
      font_size 100,16
      caption 100,"Jouer / Rejouer"
      on_click 100,clic
  timer 110 : rem Mise en place du timeur
      timer_interval 110,1000
      timer_off 110
      on_timer 110,chrono
  memo 120 : rem Affichage de l`ardoise
      left 120,645
      top 120,10
      width 120,320
      height 120,555
      bar_vertical 120
      font_bold 120
      font_size 120,16
      color 120,240,240,240
      inactive 120
  for ii%=1 to 3 : rem Affichage 3 boutons « Compte-bon, Approx et Pas-trouvé »
      button 120+ii%*10 : rem Boutons 130, 140 et 150
        left 120+ii%*10,ii%*205-185
        top 120+ii%*10,255
        width 120+ii%*10,202
        height 120+ii%*10,60
        font_bold 120+ii%*10
        font_size 120+ii%*10,16
        caption 120+ii%*10,nb$(ii%)
        hide 120+ii%*10
        on_click 120+ii%*10,clic
  next ii%
  alpha 160 : rem Affichage de la question « Combien : »
      left 160,50
      top 160,355
      caption 160,"Combien :"
      font_bold 160
      font_size 160,24
      font_name 160,"Arial"
      hide 160
  edit 170 : rem Affichage de la zone de texte où noter le nombre trouvé
      left 170,225
      top 170,340
      width 170,202
      font_bold 170
      font_size 170,36
      font_name 170,"Arial"
      color 170,255,255,255
      on_change 170,how
      on_key_down 170,key
      hide 170
  button 180 : rem Affichage du bouton « Le calcul est fini »
      left 180,430
      top 180,340
      width 180,202
      height 180,60
      font_bold 180
      font_size 180,16
      caption 180,"Le calcul est fini"
      on_click 180,clic
      hide 180
  for ii%=1 to 2 : rem Affichage des boutons Quitter et Aide
      button 181+ii% : rem Boutons 182 et 183
        left 181+ii%,205*ii%-185
        top 181+ii%,420
        width 181+ii%,200
        height 181+ii%,60
        font_bold 181+ii%
        font_size 181+ii%,16
        font_name 181+ii%,"Arial"
        caption 181+ii%,nb$(ii%+3)
        on_click 181+ii%,clic
  next ii%
  panel 184 : rem Affichage du nombre à trouver
      left 184,430
      top 184,420
      width 184,200
      height 184,60
      font_bold 184
      font_size 184,16
      font_name 184,"Arial"
      color 184,160,255,100
      hide 184
  panel 185 : rem Affichage du nombre de points
      left 185,10
      top 185,505
      width 185,110
      height 185,60
      color 185,255,215,255
      font_bold 185
      font_size 185,20
      font_name 185,"Arial"
  alpha 190 : rem Affichage de l`indication du Score
      left 190,140
      top 190,515
      font_bold 190
      font_size 190,24
      font_name 190,"Arial"
      caption 190,"Score :"
  panel 200 : rem Affichage du Score
      left 200,260
      top 200,505
      width 200,100
      height 200,60
      color 200,255,215,255
      font_bold 200
      font_size 200,24
      font_name 200,"Arial"
  alpha 210 : rem Affichage de l`indication du Record
      left 210,385
      top 210,515
      font_bold 210
      font_size 210,24
      font_name 210,"Arial"
      caption 210,"Record :"
  panel 220 : rem Affichage du Record
      left 220,530
      top 220,505
      width 220,100
      height 220,60
      color 220,255,215,255
      font_bold 220
      font_size 220,24
      font_name 220,"Arial"
      caption 220,rm
  panel 230 : rem Panneau d`affichage des commentaires
      left 230,10
      top 230,585
      width 230,634
      height 230,40
      color 230,255,255,100
      font_size 230,16
      font_name 230,"Arial"
      font_color 230,255,0,0
  panel 240 : rem Panneau d`affichage de la catégorie d`erreur
      left 240,645
      top 240,585
      width 240,320
      height 240,40
      color 240,255,255,100
      font_size 240,12
      font_name 240,"Arial"
      font_color 240,255,0,0
  button 250 : rem Bouton +
      left 250,464
      top 250,100
      width 250,50
      height 250,40
      font_bold 250
      font_size 250,30
      caption 250,"+"
      on_click 250,clic
      hide 250
  button 260 : rem Bouton -
      left 260,520
      top 260,100
      width 260,50
      height 260,40
      font_bold 260
      font_size 260,50
      caption 260,"-"
      on_click 260,clic
      hide 260
  button 270 : rem Bouton x
      left 270,464
      top 270,145
      width 270,50
      height 270,40
      font_bold 270
      font_size 270,25
      caption 270,"x"
      on_click 270,clic
      hide 270
  button 280 : rem Bouton /
      left 280,520
      top 280,145
      width 280,50
      height 280,40
      font_bold 280
      font_size 280,24
      font_name 280,"Arial"
      caption 280,"/"
      on_click 280,clic
      hide 280
  button 290 : rem Bouton =
      left 290,576
      top 290,100
      width 290,50
      height 290,40
      font_bold 290
      font_size 290,30
      caption 290,"="
      on_click 290,clic
      hide 290
  button 300 : rem Bouton Enter
      left 300,576
      top 300,145
      width 300,50
      height 300,40
      font_bold 300
      font_size 300,25
      font_name 300,"Wingdings"
      caption 300,chr$(195)
      on_click 300,clic
      hide 300
  for ii%=1 to 6 : rem Boutons d`accueil des résultats d`opérations partielles
      button ii%*10+300 : rem Boutons 310, 320, 330, 340, 350 et 360
        left ii%*10+300,ii%*56+240
        top ii%*10+300,190
        width ii%*10+300,50
        height ii%*10+300,40
        font_bold ii%*10+300
        font_size ii%*10+300,14
        on_click ii%*10+300,clic
        hide ii%*10+300
  next ii%
  for jj%=0 to 1 : rem Boutons d`indication des chiffres pour l`approximation
      for ii%=1 to 6 : rem Boutons 370, 380, 390, 400, 410, 420
        button jj%*60+ii%*10+360 : rem Boutons 430, 440, 450, 460, 470, 480
            left jj%*60+ii%*10+360,ii%*56+240
            top jj%*60+ii%*10+360,240+jj%*50
            width jj%*60+ii%*10+360,50
            height jj%*60+ii%*10+360,40
            font_bold jj%*60+ii%*10+360
            font_size jj%*60+ii%*10+360,12
            font_name jj%*60+ii%*10+360,"Arial"
            caption jj%*60+ii%*10+360,jj%*6+ii%
            on_click jj%*60+ii%*10+360,clic
            hide jj%*60+ii%*10+360
      next ii%
  next jj%
  caption 460,"0"
  caption 470,"DEL"
  caption 480,"Enter"
  beep
 
end

sub affiche(x%,y%,c$) : rem Affiche la présentation
  dim_local i%
  nb%=nb%+1
  alpha nb%
      left nb%,x%
      top nb%,y%
      font_bold nb%
      font_size nb%,55
      font_name nb%,"Arial"
      if c$<>" "
        for i%=65 to asc(c$)
            caption nb%,chr$(i%)
            pause 5
        next i%
      else
        color nb%,240,240,240
      end_if
end_sub

sub aide() : rem Mode d`emploi du jeu
  dim_local a$ , i$
  i$=chr$(13)
  application_title "  Mode d'emploi de ce jeu"
  a$="  Le but de ce jeu est de faire un peu travailler vos méninges passablement engourdies."+i$
  a$=a$+"Pour cela, vous allez faire un peu de calcul mental. Oh, rien de bien méchant !"+i$
  a$=a$+"Pas de puissances énièmes, ni de calculs logarithmiques ou d'équations quantiques."+i$
  a$=a$+"Rien que des additions, des soustractions, des multiplications et des divisions."+i$
  a$=a$+"Vous voyez !  Cela ne devrait pas trop vous fouler la rate !"+i$+i$
  a$=a$+"  A noter que ce jeu se joue seul. C'est un simple logiciel d'entraînement au calcul"+i$
  a$=a$+"pour personnes comme vous et moi. Cela ne vise aucunement l'organisation de"+i$
  a$=a$+"tournois stressants entre champions et autres héros toutes catégories..."+i$+i$
  a$=a$+"  Il s'agit d'arriver au nombre de 3 chiffres proposé au hasard, en utilisant les"+i$
  a$=a$+"6 plaques affichées (des nombres de 1 à 100) pour y parvenir, en les combinant entre"+i$
  a$=a$+"eux par le biais des 4 opérations de calcul les plus simples. Vous pouvez trouver"+i$
  a$=a$+"le compte juste, ou bien approximativement, et même passer au tour suivant."+i$+i$
  a$=a$+"  Exposez ensuite sur l'ardoise comment vous arrivez au nombre choisi, en ne faisant"+i$
  a$=a$+"qu'une seule opération par ligne. Exemple : 25 + 3 = 28 (ensuite ligne suivante) etc..."+i$
  a$=a$+"Vous pouvez utiliser les signes + - * x X / \ : mais ensuite toujours le signe ="+i$
  a$=a$+"Si vous faites une erreur, l'ordinateur vous indique à quelle ligne. Sinon, vous"+i$
  a$=a$+"aurez droit à 6 points ou 3 points ou 0 point, selon les cas. Notons que l'ordinateur"+i$
  a$=a$+"ne vous donne pas de solution plus extraordinaire que celle que vous avez trouvée."+i$+i$
  a$=a$+"  La partie se termine au bout de 12 manches. Parviendrez-vous à tenir jusqu'au"+i$
  a$=a$+"bout et à battre votre propre record ?  Ca, c'est un défi auquel vous allez être"+i$
  a$=a$+"confronté et dont l'issue reste bien incertaine..."
  message a$
end_sub

sub ajout() : rem Ajout du résultat provisoire sur l`ardoise
  dim_local a$
  if caption$(number_click)<>""
      if count(120)>0
        a$=item_read$(120,count(120))
        item_delete 120,count(120)
      end_if
      item_add 120,a$+caption$(number_click)
      caption number_click,""
      set_focus 120
      caret_position 120,len(text$(120))-2
  end_if
  set_focus 120
end_sub

sub arret() : rem Arrêt du chrono
  timer_off 110
  beep
  hide 90
  show 130
  show 140
  show 150
end_sub

sub bof() : rem Le joueur n`a pas trouvé le compte exactement bon
  show 160
  show 170
  hide 130
  hide 140
  hide 150
  for ii%=370 to 480 step 10
      show ii%
  next ii%
  set_focus 170
end_sub

sub bon() : rem Le joueur a trouvé le compte bon
  color 120,255,255,255
  active 120
  set_focus 120
  hide 130
  hide 140
  hide 150
  show 180
  show 184
  caption 184,"But : "+caption$(65)+caption$(70)+caption$(75)
  montre()
end_sub

sub calcule() : rem Calcule le résultat de la ligne
  dim_local a$ , m$ , n$ , s$ , i% , j% , m% , n% , r%
  if count(120)>0
      a$=item_read$(120,count(120)) : rem Suppression du signe =
      if right$(a$,1)="="
        a$=left$(a$,len(a$)-1)
      end_if
      for i%=1 to len(a$) : rem Détermination de l`emplacement de l`opérateur
        if numeric(mid$(a$,i%,1))=0
            j%=i%
            exit_for
        end_if
      next i%
      s$=mid$(a$,j%,1) : rem Paramétrage de l`opérateur et des variables
      m$=left$(a$,j%-1)
      n$=right_pos$(a$,j%+1)
      if numeric(m$)=1
        m%=val(m$)
      end_if
      if numeric(n$)=1
        n%=val(n$)
      end_if : rem Calcul du résultat de l`opération
      if s$="+" or s$="-" or s$="x" or s$="/"
        if m%>0 and n%>0
            if s$="+"
              r%=m%+n%
            end_if
            if s$="-"
              r%=m%-n%
            end_if
            if s$="x"
              r%=m%*n%
            end_if
            if s$="/"
              r%=m%/n%
            end_if
        end_if
      end_if : rem Ajout du résultat
      if r%<>0
        item_delete 120,count(120)
        item_add 120,a$+"="+str$(r%)
        for i%=310 to 360 step 10
            if caption$(i%)=""
              caption i%,r%
              exit_for
            end_if
        next i%
      end_if
  end_if
  item_add 120,""
  set_focus 120
  caret_position 120,len(text$(120))-2
end_sub

sub choix(n%) : rem Choix des 3 chiffres du nombre à trouver
  dim_local i%
  for i%=0 to int(rnd(20))+10
      caption n%,mod(i%,10)
      pause 20
  next i%
  pause 100
end_sub

chrono: : rem Décrémentation du chrono
  ii%=val(caption$(80))
  ii%=ii%-1
  if ii%>-1
      caption 80,ii%
  else
      arret()
  end_if
return

clic: : rem Redirection des on-click
  select number_click
      case 10 : ecrit()
      case 20 : ecrit()
      case 30 : ecrit()
      case 40 : ecrit()
      case 50 : ecrit()
      case 60 : ecrit()
      case 90 : arret()
      case 100 : jouer()
      case 130 : bon()
      case 140 : bof()
      case 150 : nul()
      case 180 : fini()
      case 182 : quitter()
      case 183 : aide()
      case 250 : ecrit()
      case 260 : ecrit()
      case 270 : ecrit()
      case 280 : ecrit()
      case 290 : ecrit()
      case 300 : calcule()
      case 310 : ajout()
      case 320 : ajout()
      case 330 : ajout()
      case 340 : ajout()
      case 350 : ajout()
      case 360 : ajout()
      case 370 : text 170,text$(170)+"1"
      case 380 : text 170,text$(170)+"2"
      case 390 : text 170,text$(170)+"3"
      case 400 : text 170,text$(170)+"4"
      case 410 : text 170,text$(170)+"5"
      case 420 : text 170,text$(170)+"6"
      case 430 : text 170,text$(170)+"7"
      case 440 : text 170,text$(170)+"8"
      case 450 : text 170,text$(170)+"9"
      case 460 : text 170,text$(170)+"0"
      case 470 : del()
      case 480 : text 170,text$(170)+chr$(13)
  end_select
return

sub del() : rem Cas où on enlève un chiffre à partir des touches chiffrées
  if len(text$(170))>0
      text 170,left$(text$(170),len(text$(170))-1)
  end_if
end_sub

sub ecrit()
  dim_local a$
  if active(120)=1
      if count(120)>0
        a$=item_read$(120,count(120))
        item_delete 120,count(120)
      end_if
      item_add 120,a$+caption$(number_click)
      font_color number_click,160,160,160
      set_focus 120
      caret_position 120,len(text$(120))-2
  end_if
end_sub

err: : rem Redirection en cas d`erreur subsidiaire
  hide 180
  nt=nt-1
  caption 240,"Erreur, on recommence"
  for ii%=250 to 360 step 10
      hide ii%
  next ii%
  rejouer()
  end_sub
return

sub erreur(a%) : rem Affichage de la catégorie d`erreur
  select a%
      case 1 : caption 240,"Le signe d'égalité n'est pas conforme"
      case 2 : caption 240,"Le signe d'opération n'est pas conforme"
      case 3 : caption 240,"Les 3 nombres utilisés ont un défaut"
      case 4 : caption 240,"L'addition est fausse"
      case 5 : caption 240,"La soustraction est fausse"
      case 6 : caption 240,"La multiplication est fausse"
      case 7 : caption 240,"La division est fausse"
      case 8 : caption 240,"Le premier nombre ne correspond à rien"
      case 9 : caption 240,"Le deuxième nombre ne correspond à rien"
      case 10 : caption 240,"L'écriture de la ligne est inadéquate"
  end_select
  montre()
end_sub

sub fin() : rem Fin de partie
  dim_local a$ , i$ , s% , r%
  i$=chr$(13)
  s%=val(caption$(200))
  r%=val(caption$(220))
  a$="La partie est terminée"+i$
  a$=a$+"Bravo, vous avez obtenu "+str$(s%)+" points"+i$
  if s%>r%
      a$=a$+"Et vous avez même battu le record !"
      file_open_write 1,"Boncomptoramic-Record.txt"
        file_writeln 1,str$(s%)
      file_close 1
      r%=s%
  else
      a$=a$+"Ce qui n'est pas si mal que ça !"
  end_if
  beep
  application_title "Bilan final"
  message a$
  caption 200,""
  caption 220,s%
end_sub

sub fini() : rem Vérification des calculs du joueur
  dim_local i% , j% , k% , n% , y% , z% , v%(30) , b$ , p$ , q$
  dim_local m1$ , m2$ , m3$ , m4$ , m5$
  for i%=1 to 6 : rem Lecture des 6 plaques
      v%(i%)=caption$(i%*10)
  next i%
  for i%=7 to 30 : rem Définition des 30 variables de réserve
      v%(i%)=-1
  next i%
  caption 230,""
  for i%=250 to 360 step 10 : rem Masquage des boutons d`opérateurs
      hide i%
  next i%
  if count(120)>0 : rem Effacement des lignes vides du mémo
      for i%=1 to count(120)
        if item_read$(120,i%)=""
            item_delete 120,i%
        end_if
      next i%
  end_if
  if count(120)>0
      for i%=1 to count(120) : rem Lecture des lignes du mémo
        p$=item_read$(120,i%)
        q$=""
        for j%=1 to len(p$) : rem Suppression des espaces
            if mid$(p$,j%,1)<>" "
              q$=q$+mid$(p$,j%,1)
            end_if
        next j%
        k%=0
        for j%=1 to len(q$) : rem Recherche de l`emplacement de l`opérateur
            b$=mid$(q$,j%,1)
            k%=k%+1
            if numeric(b$)=0
              exit_for
            end_if
        next j%
        m2$=mid$(q$,k%,1) : rem Paramétrage de l`opérateur
        m1$=left$(q$,k%-1) : rem Paramétrage du premier nombre utilisé
        n%=len(q$)+1
        for j%=len(q$) to 1 step -1 : rem Recherche de l`emplacement du signe =
            b$=mid$(q$,j%,1)
            n%=n%-1
            if numeric(b$)=0
              exit_for
            end_if
        next j%
        m4$=mid$(q$,n%,1) : rem Paramétrage du signe =
        m5$=right$(q$,len(q$)-n%) : rem Paramétrage du résultat de l`opération
        if n%-k%-1>0 : rem Repérage d`une ligne aberrante
            m3$=mid$(q$,k%+1,n%-k%-1) : rem Paramétrage du deuxième nombre utilisé
        else
            y%=1
        end_if
        if m4$<>"=" : rem Repérage d`une erreur sur le signe =
            z%=1
        end_if : rem Repérage d`une erreur sur le signe d`opération
        if m2$<>"+" and m2$<>"-" and m2$<>"*" and m2$<>"/" and m2$<>"x" and m2$<>"X" and m2$<>"\" and m2$<>":"
            z%=2
        end_if : rem Repérage d`une erreur de numérisation des 3 nombres
        if numeric(m1$)=0 or numeric(m3$)=0 or numeric(m5$)=0
            z%=3
        end_if
        if numeric(m1$)=1 and numeric(m3$)=1 and numeric(m5$)=1
            if m2$="+" : rem Repérage d`une erreur dans l`addition
              if val(m1$)+val(m3$)<>val(m5$)
                  z%=4
              end_if
            end_if
            if m2$="-" : rem Repérage d`une erreur dans la sosutraction
              if val(m1$)-val(m3$)<>val(m5$)
                  z%=5
              end_if
            end_if : rem Repérage d`une erreur dans la multiplication
            if m2$="*" or m2$="x" or m2$="X"
              if val(m1$)*val(m3$)<>val(m5$)
                  z%=6
              end_if
            end_if : rem Repérage d`une erreur dans la division
            if m2$="/" or m2$="\"
              if val(m1$)/val(m3$)<>val(m5$)
                  z%=7
              end_if
            end_if
            k%=0 : rem Repérage d`une erreur sur l`origine du premier nombre
            for j%=1 to 30
              if val(m1$)=v%(j%)
                  k%=1
                  exit_for
              end_if
            next j%
            if k%=0
              z%=8
            end_if
            k%=0 : rem Repérage d`une erreur sur l`origine du deuxième nombre
            for j%=1 to 30
              if val(m3$)=v%(j%)
                  k%=1
                  exit_for
              end_if
            next j%
            if k%=0
              z%=9
            end_if
        end_if
        if y%=1 : rem Rappel pour la ligne aberrante repérée
            z%=10
        end_if
        if z%=0 : rem Modification des variables de réserve
            if numeric(m1$)=1 and numeric(m3$)=1 and numeric(m5$)=1
              for j%=1 to 30
                  if val(m1$)=v%(j%)
                    v%(j%)=-1
                    exit_for
                  end_if
              next j%
              for j%=1 to 30
                  if val(m3$)=v%(j%)
                    v%(j%)=-1
                    exit_for
                  end_if
              next j%
              for j%=1 to 30
                  if v%(j%)=-1
                    v%(j%)=val(m5$)
                    exit_for
                  end_if
              next j%
            end_if
        end_if
        if z%>0
            caption 230,"Erreur à la ligne "+str$(i%)
            erreur(z%)
            exit_sub
        end_if
      next i%
  end_if
  k%=0
  caption 240,""
  if numeric(m5$)=1
      if caption$(65)+caption$(70)+caption$(75)=right$(caption$(184),3)
        if val(m5$)=val(caption$(65))*100+val(caption$(70))*10+val(caption$(75))
            caption 230,"Le compte est bon = 6 points"
            caption 185,"6 Pts"
            n%=0
            if numeric(caption$(200))=1
              n%=val(caption$(200))
            end_if
            caption 200,n%+6
            k%=1
        end_if
      end_if
      if text$(170)<>""
        if numeric(text$(170))=1
            if val(m5$)=val(text$(170))
              caption 230,"Le calcul est valable = 3 points"
              caption 185,"3 Pts"
              n%=0
              if numeric(caption$(200))=1
                  n%=val(caption$(200))
              end_if
              caption 200,n%+3
              k%=1
            end_if
        end_if
      end_if
  end_if
  if k%=0
      caption 230,"Vous n'obtenez aucun point"
      caption 185,"0 Pts"
  end_if
  hide 180
  show 100
  if nt>11
      nt=0
      fin()
  end_if
end_sub

how: : rem Passage à l`ardoise si le nombre trouvé a plus de 2 chiffres
  if len(text$(170))>2
      color 120,255,255,255
      active 120
      set_focus 120
      hide 130
      hide 140
      hide 150
      hide 160
      hide 170
      for ii%=370 to 480 step 10
        hide ii%
      next ii%
      show 184
      caption 184,"But : "+text$(170)
      montre()
      show 180
  end_if
return

sub jouer() : rem Choix des 6 plaques et du nombre à trouver
  dim_local i%
  rejouer()
  nt=nt+1
  caption 0,"  "+tt$+" - par jjn4 - "+str$(nt)+"/12"
  caption 240,""
  hide 100
  melange()
  for i%=1 to 6
      caption i%*10,pn%(i%)
      font_color i%*10,0,0,0
  next i%
  for i%=1 to 6
      caption i%*10+300,""
  next i%
  repeat
      choix(65)
  until caption$(65)<>"0"
  choix(70)
  choix(75)
  show 90
  caption 80,"90"
  beep
  timer_on 110
end_sub

key: : rem Cas où on presse ENTER à la fin du nombre trouvé approximatif
  if key_down_code=13
      color 120,255,255,255
      active 120
      set_focus 120
      hide 130
      hide 140
      hide 150
      hide 160
      hide 170
      for ii%=370 to 480 step 10
        hide ii%
      next ii%
      show 184
      caption 184,"But : "+text$(170)
      montre()
      show 180
  end_if
return

sub melange() : rem Mélange des 24 plaques avant de jouer
  dim_local i% , a% , b% , c%
  for i%=1 to 200
      a%=int(rnd(24))+1
      b%=int(rnd(24))+1
      if a%<>b%
        c%=pn%(a%)
        pn%(a%)=pn%(b%)
        pn%(b%)=c%
      end_if
  next i%
end_sub

sub montre() : rem Montrer les touches des opérateurs
  dim_local i%
  for i%=250 to 360 step 10
      show i%
  next i%
end_sub

sub nul() : rem Cas où le joueur n`a rien trouvé
  hide 130
  hide 140
  hide 150
  caption 230,"Aïe, aïe, aïe, aïe... !"
  caption 185,"0 Pts"
  show 100
  if nt>11
      nt=0
      fin()
  end_if
end_sub

sub quitter() : rem Quitter définitivement le jeu
  dim_local a% , i$
  i$="Quoi ?  Vous voulez déjà quitter ce jeu passionnant !"
  i$=i$+chr$(13)+"Confirmez-vous votre demande ?"
  a%=message_confirmation_yes_no(i$)
  if a%=1
      terminate
  end_if
end_sub

sub rejouer() : rem Lorsque le jeu est relancé
  dim_local i%
  for i%=10 to 60 step 10
      caption i%,""
  next i%
  for i%=1 to 3
      caption 60+i%*5,""
  next i%
  caption 80,""
  inactive 120
  color 120,240,240,240
  clear 120
  show 100
  caption 185,""
  caption 230,""
  hide 160
  text 170,""
  hide 170
  caption 184,""
  hide 184
end_sub
Bonnes fêtes quand même...!
santa cherry jocolor alien geek Laughing Laughing Laughing Laughing Laughing Laughing Laughing
(dernière modification le 29/12/2016)


Dernière édition par jjn4 le Jeu 29 Déc 2016 - 15:10, édité 3 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Yannick

avatar

Nombre de messages : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 22 Déc 2016 - 15:50

erreur ligne 523 des que je clique sur un chiffre   Sad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 22 Déc 2016 - 15:51

En tout cas, bonnes fêtes à toi aussi...
santa rendeer santa rendeer santa rendeer
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jjn4

avatar

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

MessageSujet: +++   Jeu 22 Déc 2016 - 16:05

Exact, il restait bien un bug à cet endroit.
Merci de me l'avoir montré !
Ca y est, c'est corrigé.
flower alien santa
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Yannick

avatar

Nombre de messages : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 22 Déc 2016 - 16:24

Ouais mais les chiffres ne sont plus cliquables...
scratch  Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jjn4

avatar

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

MessageSujet: +++   Jeu 22 Déc 2016 - 16:36

Normal, pour jouer,
il faut commencer par appuyer
sur le bouton « Jouer »...
rabbit alien rendeer
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Yannick

avatar

Nombre de messages : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 22 Déc 2016 - 17:20

Je sais que je ne suis pas un génie mais jusque là, j' avais compris.
mais rien. tongue

la distribution est faite
le nombre est affiché
mais les chiffres ne sont pas cliquables.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jjn4

avatar

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

MessageSujet: +++   Jeu 22 Déc 2016 - 17:34

Il faut d'abord arrêter le chrono pour donner la réponse.
alors, marche-titi-marche-titi-pas ???
tongue alien geek
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Yannick

avatar

Nombre de messages : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 22 Déc 2016 - 18:03

Haaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....
c' est bien un jeu de martien.

lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 22 Déc 2016 - 18:06

cheers cheers cheers cheers
Le compte est bon !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 2963
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: Boncomptoramic (Le compte est bon)   Jeu 22 Déc 2016 - 18:56

Salut le martien ! cheers

Je te confirme que tout fonctionne parfaitement !
La logique martienne à certainement rebutée quelques un de nos amis terriens... Laughing

Bon, et bien pour mon premier test j'ai obtenu 39 ! Voici la preuve :



En tous cas BRAVO pour cette idée. Tu nous fait tourner les méninges à plein régime !!! scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
papydall

avatar

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

MessageSujet: Re: Boncomptoramic (Le compte est bon)   Jeu 22 Déc 2016 - 19:09

Bon, le compte est bon, même s'il n'est pas du bonbon ! sunny
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
jjn4

avatar

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

MessageSujet: +++   Jeu 22 Déc 2016 - 19:18

Ah, ton image est superbe, Minibug,
car elle me montre qu'il y a encore 2 erreurs !
Bon, je les corrigerai demain...
scratch alien Sleep
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Minibug

avatar

Nombre de messages : 2963
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: Boncomptoramic (Le compte est bon)   Jeu 22 Déc 2016 - 19:23

Ah bon où çà ??

pour moi, tout fonctionne parfaitement... Suspect
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
jjn4

avatar

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

MessageSujet: +++   Ven 23 Déc 2016 - 14:39

Ca y est, c'est corrigé.
Ce que c'était ?
Ah, ah, devinette...
Allez, je vous le dis :
- 1) Le titre du message était curieux
- 2) Minibug avait déclaré ne pas avoir trouvé à temps le compte bon
     et n'avoir trouvé que 228 à la place de 227.
     Et après, il trouve finalement 228 quand même
     et obtient 6 points, pas normal.
Ah, que c'est dur, les règles...
rendeer alien jocolor
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Minibug

avatar

Nombre de messages : 2963
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: Boncomptoramic (Le compte est bon)   Ven 23 Déc 2016 - 17:16

Bon, et bin j'ai bien fait de marquer des points avant alors !! drunken scratch geek
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Jicehel

avatar

Nombre de messages : 5923
Age : 45
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Boncomptoramic (Le compte est bon)   Sam 24 Déc 2016 - 10:48

Bravo Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc

avatar

Nombre de messages : 793
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: Re: Boncomptoramic (Le compte est bon)   Sam 24 Déc 2016 - 11:07

Bravo JJN4 !  cheers

Bien fait et convivial !

santa  Bon réveillon à tous !  santa
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: Boncomptoramic (Le compte est bon)   Lun 26 Déc 2016 - 22:30

Voilà qui me rappelle "les chiffres et les lettres" de la TV.

Bravo! JJN4

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur En ligne
papydall

avatar

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

MessageSujet: Re: Boncomptoramic (Le compte est bon)   Lun 26 Déc 2016 - 22:48

Un Martien alien a fait les chiffres.
Y a-t-il un Terrien farao pour les lettres Question
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 26 Déc 2016 - 23:57

Dans le jeu télé, il y a neuf lettres de tirées au sort.
Bonjour pour faire le moteur qui sera capable de sortir le mot le plus long possible.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jjn4

avatar

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

MessageSujet: +++   Mar 27 Déc 2016 - 13:43

Il y a 2 ans, j'avais commencé un Mot-le-plus-long avec dictionnaire et tout et tout,
mais il restait un problème de gestion du temps assez difficile à résoudre. Et je
l'avais laissé tomber puisque je partais en vacances, et après je n'ai guère eu le
temps, si bien que je l'ai laissé dans un coin sans jamais chercher à le terminer.
Peut-être je pourrais m'y remettre un de ces 4, maintenant que j'ai du temps...
Mais un peu plus tard. En ce moment, je suis en train de concocter un jeu plutôt écolo...
Enfin, si on veut...
La suite au prochain épisode...
geek santa alien scratch geek geek geek geek
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Minibug

avatar

Nombre de messages : 2963
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: Boncomptoramic (Le compte est bon)   Mar 27 Déc 2016 - 17:25

Il y a une fonction de recherche d'une chaine dans un fichier dans la DLL de Klaus.

Je vous invite à regarder les derniers messages de Klaus sur la DLL.
Voici la fonction en question :

res% = dll_call6("SearchStringInTextFile",adr(fic$),adr(crit$),LineNumbers%, AtStartOnly%, OutType%, handle(obj%))
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Yannick

avatar

Nombre de messages : 8077
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 28 Déc 2016 - 13:07

Le problème n' est pas de retrouver un mot dans une liste.
Il est de créer toutes les combinaisons possibles avec les 9 lettres
J' avais fait un truc pour tricher au Scrabble et je me suis arrêté à 7 ou 8 lettres il me semble
car cela devenait trop long.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 2963
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: Boncomptoramic (Le compte est bon)   Mer 28 Déc 2016 - 13:48

Cà c'est un travail pour Klaus !!
Au secours Klaus, reviens nous vite... Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Contenu sponsorisé




MessageSujet: Re: Boncomptoramic (Le compte est bon)   

Revenir en haut Aller en bas
 
Boncomptoramic (Le compte est bon)
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» [RESOLU] Une sorte de compte à rebours
» Afficher un décompte sous la forme M:S ??
» [Fermé] Suspicion de piratage, compte msn bloqué
» Problème d'accès au compte
» Le compte est bon

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: