Forum Liberty Basic France

Général » Pile ou Face ? Les probabilités
Le 17/12/2015 à 15h51

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2471
Voici un programme qui permets de savoir combien de fois consécutives une pièce virtuelle peut tomber du même côté.
On peut aussi en observant les progressions, constater le caractère pseudo aléatoire du "RND" de JB
Le "Stop" / "Reprends" permets de modifier la tempo
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

   
Général » Pile ou Face ? Les probabilités  

 |  |

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