Forum Liberty Basic France

Le 23/11/2015 à 22h45

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Reprise du message précédent

RND (0-500) est plus rnd que RND (0-10)
J'ai fait un truc pour voir quel était le nombre maximum de sorties identiques consécutives au tirage à pile ou face
Mais je me suis emmélés les pinceaux pour le cumul. Et les pinceaux sont toujours emmélés
Je le mets là:
Code VB :
 
 
     NOMAINWIN
    WindowWidth = 280
    WindowHeight = 460
    UpperLeftX = (DisplayWidth-WindowWidth)-200
    UpperLeftY = 20 ' (DisplayHeight-WindowHeight)
    BUTTON #w.go, "Go !", [go], UL, 10, 10, 40, 20
    BUTTON #w.sto, "Stop !", [stop], UL, 60, 10, 40, 20
    TEXTBOX #w.temp, 10 , 55, 40, 25
    TEXTBOX #w.tir, 80 , 55, 40, 25
    TEXTBOX #w.conta, 10 , 110, 40, 25
    TEXTBOX #w.contb, 80 , 110, 40, 25
    TEXTBOX #w.tota, 10 , 160, 40, 25
    TEXTBOX #w.totb, 80 , 160, 40, 25
    TEXTBOX #w.maxa, 10 , 210, 40, 25
    TEXTBOX #w.maxb, 80 , 210, 40, 25
    GRAPHICBOX #w.m 0, 0, 280, 460
    OPEN "Proba" FOR window_nf AS #w
    #w, "TRAPCLOSE [closeHelp]"
    #w.m , "down": #w.m , "fill blue"
    temp=500
    print text("yellow","blue",10,50,"Tempo  Tirage")
    print text("yellow","blue",10,105,"Pile  Face")
    print text("yellow","blue",10,155,"Tot P  Tot F")
    print text("yellow","blue",10,155,"Max P  Max F")
    #w.temp, str$(temp)
  wait
  [go]
    sto=0
    #w.temp, "!contents? var$" : temp=val(var$)
    while sto=0
       tir=int(rnd(1)*100) + 1
       #w.tir, str$(tir)
       if tir < 51 then '-----sortie Pile
         conta=conta + 1
 
         if conta > oldconta then
            tota=tota+1
            #w.tota, str$(tota)
            oldconta=conta
         end if
         if tota > oldtota then
            maxa=maxa+1
            oldtota=tota
            maxa=tota
         end if
            if maxa > oldmaxa then
               #w.maxa, str$(maxa)
               oldmaxa=maxa
 
         contb=0 ' : totb=0' : tota=0
         #w.conta, str$(conta)
         #w.contb, str$(contb)
         oldtota=conta
         #w.tota, str$(conta)
 
         '--------------
       else '------------sortie  Face
         contb=contb + 1
         if contb > oldcontb then
            totb=totb+1
         end if
            #w.totb, str$(totb)
            oldcontb=contb
         end if
         if totb > oldtotb then
            maxb=maxb+1
            oldtotb=totb
            if maxb > oldmaxb then
               #w.maxb, str$(maxb)
               oldmaxb=maxb
            end if
         end if
         conta=0  ' : tota=0' : totb=0
         #w.conta, str$(conta)
         #w.contb, str$(contb)
         #w.totb, str$(contb)
       end if
       gosub [pause]
    wend
  wait
  [stop]
    sto=1
  wait
     '-------------
Function text(col$,bak$,x,y,msg$) '------fonction d'affichage de textes
    #w.m, "font courier_new 12 bold"
    #w.m, "color ";col$;" ; backcolor ";bak$ 
    #w.m, "Place ";x;" ";y;";|";msg$
End Function
  [pause]  'pause en millisecondes
        timer temp, [temps]
        wait
        [temps]
        timer 0
  return
  wait
  [closeHelp]
    CLOSE  #w
    END
 


Edit: Ayééé, ça a l'air de marcher
Code VB :
 
 
        NOMAINWIN
    WindowWidth = 280: UpperLeftX = 450
    WindowHeight = 250: UpperLeftY = 20
    BUTTON #w.go, "Go !", [go], UL, 10, 10, 40, 20
    BUTTON #w.sto, "Stop !", [stop], UL, 60, 10, 40, 20
    BUTTON #w.rep, "Reprends", [ret], UL, 120, 10, 60, 20
    TEXTBOX #w.temp, 10 , 60, 40, 25
    TEXTBOX #w.tir, 80 , 60, 40, 25
    TEXTBOX #w.ntir, 150 , 60, 40, 25
    TEXTBOX #w.cumpile, 10 , 115, 40, 25
    TEXTBOX #w.cumface, 80 , 115, 40, 25
    TEXTBOX #w.totpile, 10 , 165, 40, 25
    TEXTBOX #w.totface, 80 , 165, 40, 25
    GRAPHICBOX #w.m 5, 5, 265, 210
    OPEN "Proba" FOR window_nf AS #w
    #w, "TRAPCLOSE [closeProba]"
    #w.m , "down": #w.m , "fill blue"
    temp=100: #w.temp, str$(temp)
    #w.m,  "color yellow;backcolor blue"
    #w.m,  "Place 5 45": #w.m, "\Tempo      Tirage      N Tirages"
    #w.m,  "Place 10 105": #w.m, "\Pile          Face    consécutifs"
    #w.m,  "Place 10 155": #w.m, "\Tot P  Tot F"
    #w.m,  "Place 5 155": #w.m, "\Max P       Max F"
    #w.m,  "flush"
    gosub [opr]
  wait
  [go]
    sto=0: ntir=0
    #w.temp, "!contents? var$" : temp=val(var$)
    [ret]
       if sto=1 then sto=0: wait
       tir=int(rnd(1)*100) + 1
       #w.tir, str$(tir)
       if tir < 51 then
         pile=1: tirpile=tir: gosub [pile]
       end if
       if tir > 50 then
          face=1: tirface=tir: gosub [face]
       end if
       gosub [pause]
       goto [ret]
  wait
  [pile]
    face=0: cumface=0: ntir=ntir+1: x=5: #w.ntir, str$(ntir)
    if pile=oldpile then
       cumpile=cumpile+1: #w.cumpile, str$(cumpile)
    end if
    oldpile=pile
    if cumpile > oldcumpile then
       totpile=cumpile: oldcumpile=totpile
       #w.totpile, str$(totpile)
       if y > 460 then x=190  ' 480
       #r.r,  "Place ";x;" ";y: #r.r, "\P: ";str$(totpile);"...";str$(ntir)
       y=y+20
    end if
    #r.r, "flush"
  return
  wait
  [face]
    pile=0: cumpile=0: ntir=ntir+1: x=60: #w.ntir, str$(ntir)
    if face=oldface then
       cumface= cumface+1: #w.cumface, str$(cumface)
    end if
    oldface=face
    if cumface > oldcumface then
       totface=cumface: oldcumface=totface
       #w.totface, str$(totface)
       if y > 460 then x=250
       #r.r,  "Place ";x;" ";y: #r.r, "\F: ";str$(totface);"...";str$(ntir)
       y=y+20
    end if
    #r.r, "flush"
  return
  wait
  [stop]
    sto=1
  wait
  [pause]
        timer temp, [temps]
        wait
        [temps]
        timer 0
  return
  wait '**************************************
  [opr]
    WindowWidth = 380: UpperLeftX = 30
    WindowHeight = 550: UpperLeftY = 20
    GRAPHICBOX #r.r 5, 5, 365, 510
    OPEN "Résultats" FOR window_nf AS #r
    res=1
    #r, "TRAPCLOSE [closeResult]"
    #r.r , "down": #r.r , "fill darkblue"
    #r.r , "color yellow;backcolor darkblue"
    for yy=10 to 510 step 20
       #r.r, "place ";"180";" ";yy: #r.r, "\|"
    next yy
    #r.r, "flush"
    return
  wait
  [closeResult]
  sto=1
    CLOSE  #r: res=0
    CLOSE  #w
  wait
  [closeProba]
   if res=1 then close #r
    CLOSE  #w
    END
 
 
 
 
____________________
Roro

   
Le 24/11/2015 à 16h11

Libertynaute Débutant

Groupe: Membre

Inscrit le: 11/11/2015
Messages: 6
bonsoir
j"ai refais un essai effectivement j'ai mangé un morceau de code ça fonctionne .
Par contre chapeau a tous les deux le basic n'a plus de secret pour vous .
Je vais chercher d'autres solutions pour mon problème de goto
merci encore pour votre aide

   
Le 25/11/2015 à 01h18

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 516
Si si encore beaucoup de secrets à découvrir. La seule chose qui me chagrine un peu, c'est le temps qu'on peut passer là-dessus pour aboutir à un petit truc qui clignote à l'écran :hum

Mais, bon, si le cœur t'en dit, hein, bienvenue chez les fous :lol

(Attention Roland : je vais poser une question de débutant)
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia6 + Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   

 |  |

1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie