Code : Tout sélectionner
; Resultat = InitSound()
; Resultat = LoadSound(1, "boup.wav")
;
; on test le tirage ci dessous
; pour savoir combien de joueur gagne
; avec une selection de chifre et d'etoile donnée !
; position de "nous"<-variable , represente notre position dans le total des joueurs
; actuellement la position de "nous" est choisi de façon aleatoire !
; on peut la modifier en forcant cette position a 10 (nous=10)
; ce qui veut dire que nous serions le 10 em joueurs a miser a la française des jeux !
;
; au rang 1 (le jack pot) , peut difficilement etre évalué ici car on regarde sur un nombre de joueur
; trop restreint !! , il est pas possible en mode 0 avec le Purebasic (ou la RAM ?? ) de faire des tableaux trop grands !!
; sinon plantage du programme !
; ******************************************************************************************************************************************
; ******************************************************************************************************************************************
; ******************************************************************************************************************************************
;*********************************************************************************
; CARACTERISTIQUE A MODIFIER
;*********************************************************************************
#nombredejoueurs=50000 ; ici le nombre de joueur virtuel total (attention la rapidité des test dépend du nombre de joueurs)!!
#mode=2
; si #mode= 0 les numeros des joueur ainsi que leur position dans le jeu est au hazard
; le raport donne juste le nombre de gagnants pour un type de jeux precis !
; cela peut donner une idée du faible nombre de gagnant par rapport au nombre de joueur
; et plus l'on demande a observer un rang faible plus le nombre de gagnants diminue !!
; si #mode=1 les numeros du joueurs "nous" sont imposés (voir un peut plus bas)
; si #mode= 2 les numeros du joueurs "nous" est choisie comme system Flash (tiré aleatoirement)
; le mode 2 est comme le mode 0 mais "nous" represente un des joueurs virtuel (que l'on choisi)
; pour nous representer grace a la variable "nous" .
; le raport indique le type de jeux que l'on observe les somme depensés, le temps qu'il a fallu attendre pour
; gagner , et lorsqu'on gagne les numeros gagnants, ainsi que la sommes de depense atteinte pour gagné
; cette somme est remise a zero a chaque gain !
#nombredetirage=80000 ; ceci determine le nombre de tirages pour la simulation 1 tirage par semaine
#numero=2 ; ici on met le nombre de numero qu'un joueurs doit trouver pour etre considéré comme gagnant (1 a 5)
#etoile=1 ; pareil pour les etoiles ! (0 a 2)
; par exemple ici on joue pour gagner le rang 12 ( 2 numero et 1 etoile) ; le plus petit gain (voir le tableau dessous)
; ******** pour info a l'euro million s pour gagner il faut *********************
; le gain au rang 12 il faut 2 numeros et 1 etoile ; le plus petit gain
; le gain au rang 11 il faut 1 numeros et 2 etoile
; le gain au rang 10 il faut 3 numeros et 0 etoile
; le gain au rang 9 il faut 2 numeros et 2 etoile
; le gain au rang 8 il faut 3 numeros et 1 etoile
; le gain au rang 7 il faut 3 numeros et 2 etoile
; le gain au rang 6 il faut 4 numeros et 0 etoile
; le gain au rang 5 il faut 4 numeros et 1 etoile
; le gain au rang 4 il faut 4 numeros et 2 etoile
; le gain au rang 3 il faut 5 numeros et 0 etoile
; le gain au rang 2 il faut 5 numeros et 1 etoile
; le gain au rang 1 il faut 5 numeros et 2 etoile ; le jack pot !!
;*********************************************************************************
ggrille=5 ; 2 euros par grilles
prixticket=2*Ggrille ; prix du ticket en euros
; si vous changez ça , faut changer le calcul du billet !
; ******************************************************************************************************************************************
; ******************************************************************************************************************************************
; ******************************************************************************************************************************************
OpenConsole() ; c'est parti
ConsoleTitle("simulation de tirage euro-million par Dobro")
Print( "Je simule !! pour un jeu ")
ConsoleColor(10, 0)
Print(Str( #numero)+" numeros et "+Str( #etoile ) +" etoiles")
ConsoleColor(7, 0)
Print(" mode ")
ConsoleColor(10, 0)
Print(Str(#mode))
ConsoleColor(15, 0)
If #mode=0 : PrintN(" obervation des jeux "): EndIf
If #mode=1 : PrintN(" nos chiffres impose "):Ggrille=10: EndIf
If #mode=2 : PrintN(" jeux en loto-Flash "): EndIf
ConsoleColor(7, 0)
For tirage=1 To #nombredetirage ; la simulation a lieu sur "#nombredetirage" tirages
If #mode=0
ConsoleLocate(0, 4)
PrintN ( "tirage :"+Str(tir)+" on observe les tirages depuis "+Str(tir)+" semaines soit "+Str(tir/52)+" ans ")
EndIf
If #mode<>0
nous=Random(#nombredejoueurs)+1 ; ICI LA POSITION DU JOUEUR "NOUS" !!!
ConsoleLocate(0, 4)
PrintN ( "tirage :"+Str(tir)+" on joue en position "+Str(nous)+ " depuis "+Str(tir/52)+" ans ")
PrintN ( " qui represente une somme depense de : "+Str(prixticket*6.55957*tir)+ " Francs soit "+Str(prixticket*tir) + " Euros ")
EndIf
tir=tir+1
; ************** le tirage a lieu a la francaise des jeux ********************************
tc1:
n1=Random(49)+1
tc2:
n2=Random(49)+1 : If n2=n1 : Goto tc2: EndIf
tc3:
n3=Random(49)+1 : If n3=n2 Or n3=n1:Goto tc3:EndIf
tc4:
n4=Random(49)+1 : If n4=n3 Or n4=n2 Or n4=n1:Goto tc4:EndIf
tc5:
n5=Random(49)+1 : If n5=n4 Or n5=n3 Or n5=n2 Or n5=n1:Goto tc5:EndIf
tc6:
n6=Random(8)+1 : If n6=n5 Or n6=n4 Or n6=n3 Or n6=n2 Or n6=n1:Goto tc6:EndIf
tc7:
n7=Random(8)+1 : If n7=n6 Or n7=n5 Or n7=n4 Or n7=n3 Or n7=n2 Or n7=n1 :Goto tc7:EndIf
; ********************************************************************************************
Dim joueur ( #nombredejoueurs,Ggrille,50)
Dim numero(Ggrille)
Dim etoile(Ggrille)
; met en tableau le tirage virtuel des joueur virtuel aussi :-)
If mode=0
For j=1 To #nombredejoueurs
For grille=1 To Ggrille
For num=1 To 5 ; les 5 numeros que le flash nous attribut
rec0:
joueur (j,grille,num)=Random(49)+1
If num>1
For t=1 To num
If joueur (j,grille,num)=joueur(j,grille,t-1) ; si deja sorti
Goto rec0
EndIf
Next t
EndIf
Next num
joueur (j,grille,6)=Random(8)+1 ; la premiere etoile que le flash nous attribut
rec4:
joueur (j,grille,7)=Random(8)+1 ; la deuxieme etoile que le flash nous attribut
If joueur (j,grille,7)=joueur(j,grille,6) ; si deja sorti
Goto rec4
EndIf
Next grille
Next j
EndIf
CallDebugger
; ************** MODE IMPOSé on force la joueur "nous" a jouer des numeros precis ! ***********************
If #mode=1 ; les numeros ci-dessous seront considérés joués par le joueur (nous ) !
; grille numero 1
joueur (nous,1,1)=13 ;
joueur (nous,1,2)=17 ; mettez ici vos numero fetiche et vous saurez au bout de combien de tirage
joueur (nous,1,3)=38 ; ils sortiront !!! :-( (ça peut etre long !! ) on pourrai d'ailleurs ajouter la somme dépensé
joueur (nous,1,4)=41 ; a raison de 10 € le tiquet on peut avoir une idée de l'investissement avant de gagner le gros lot !!!!
joueur(nous,1,5)=32
joueur (nous,1,6)=2 ; les numeros vont de1 a 50
joueur (nous,1,7)=7 ; les etoiles(n6et n7) de 1 a 9
; grille numero 2
joueur (nous,2,1)=40 ;
joueur (nous,2,2)=10 ; mettez ici vos numero fetiche et vous saurez au bout de combien de tirage
joueur (nous,2,3)=20 ; ils sortiront !!! :-( (ça peut etre long !! ) on pourrai d'ailleurs ajouter la somme dépensé
joueur (nous,2,4)=45 ; a raison de 10 € le tiquet on peut avoir une idée de l'investissement avant de gagner le gros lot !!!!
joueur(nous,2,5)=12
joueur (nous,2,6)=3 ; les numeros vont de1 a 50
joueur (nous,2,7)=7 ; les etoiles(n6et n7) de 1 a 9
; grille numero 3
joueur (nous,3,1)=08 ;
joueur (nous,3,2)=10 ; mettez ici vos numero fetiche et vous saurez au bout de combien de tirage
joueur (nous,3,3)=32 ; ils sortiront !!! :-( (ça peut etre long !! ) on pourrai d'ailleurs ajouter la somme dépensé
joueur (nous,3,4)=46 ; a raison de 10 € le tiquet on peut avoir une idée de l'investissement avant de gagner le gros lot !!!!
joueur(nous,3,5)=35
joueur (nous,3,6)=1 ; les numeros vont de1 a 50
joueur (nous,3,7)=6 ; les etoiles(n6et n7) de 1 a 9
; grille numero 4
joueur (nous,4,1)=13 ;
joueur (nous,4,2)=17 ; mettez ici vos numero fetiche et vous saurez au bout de combien de tirage
joueur (nous,4,3)=38 ; ils sortiront !!! :-( (ça peut etre long !! ) on pourrai d'ailleurs ajouter la somme dépensé
joueur (nous,4,4)=41 ; a raison de 10 € le tiquet on peut avoir une idée de l'investissement avant de gagner le gros lot !!!!
joueur(nous,4,5)=32
joueur (nous,4,6)=2 ; les numeros vont de1 a 50
joueur (nous,4,7)=7 ; les etoiles(n6et n7) de 1 a 9
; grille numero 5
joueur (nous,5,1)=5 ;
joueur (nous,5,2)=6 ; mettez ici vos numero fetiche et vous saurez au bout de combien de tirage
joueur (nous,5,3)=10 ; ils sortiront !!! :-( (ça peut etre long !! ) on pourrai d'ailleurs ajouter la somme dépensé
joueur (nous,5,4)=11 ; a raison de 10 € le tiquet on peut avoir une idée de l'investissement avant de gagner le gros lot !!!!
joueur(nous,5,5)=23
joueur (nous,5,6)=6 ; les numeros vont de1 a 50
joueur (nous,5,7)=9 ; les etoiles(n6et n7) de 1 a 9
; grille numero 6
joueur (nous,6,1)=5 ;
joueur (nous,6,2)=20 ; mettez ici vos numero fetiche et vous saurez au bout de combien de tirage
joueur (nous,6,3)=33 ; ils sortiront !!! :-( (ça peut etre long !! ) on pourrai d'ailleurs ajouter la somme dépensé
joueur (nous,6,4)=40 ; a raison de 10 € le tiquet on peut avoir une idée de l'investissement avant de gagner le gros lot !!!!
joueur(nous,6,5)=44
joueur (nous,6,6)=1 ; les numeros vont de1 a 50
joueur (nous,6,7)=8 ; les etoiles(n6et n7) de 1 a 9
; grille numero 7
joueur (nous,7,1)=4 ;
joueur (nous,7,2)=1 ; mettez ici vos numero fetiche et vous saurez au bout de combien de tirage
joueur (nous,7,3)=29 ; ils sortiront !!! :-( (ça peut etre long !! ) on pourrai d'ailleurs ajouter la somme dépensé
joueur (nous,7,4)=34 ; a raison de 10 € le tiquet on peut avoir une idée de l'investissement avant de gagner le gros lot !!!!
joueur(nous,7,5)=50
joueur (nous,7,6)=4 ; les numeros vont de1 a 50
joueur (nous,7,7)=2 ; les etoiles(n6et n7) de 1 a 9
; grille numero 8
joueur (nous,8,1)=08 ;
joueur (nous,8,2)=10 ; mettez ici vos numero fetiche et vous saurez au bout de combien de tirage
joueur (nous,8,3)=32 ; ils sortiront !!! :-( (ça peut etre long !! ) on pourrai d'ailleurs ajouter la somme dépensé
joueur (nous,8,4)=46 ; a raison de 10 € le tiquet on peut avoir une idée de l'investissement avant de gagner le gros lot !!!!
joueur(nous,8,5)=20
joueur (nous,8,6)=1 ; les numeros vont de1 a 50
joueur (nous,8,7)=6 ; les etoiles(n6et n7) de 1 a 9
; grille numero 9
joueur (nous,9,1)=16 ;
joueur (nous,9,2)=45 ; mettez ici vos numero fetiche et vous saurez au bout de combien de tirage
joueur (nous,9,3)=20 ; ils sortiront !!! :-( (ça peut etre long !! ) on pourrai d'ailleurs ajouter la somme dépensé
joueur (nous,9,4)=30 ; a raison de 10 € le tiquet on peut avoir une idée de l'investissement avant de gagner le gros lot !!!!
joueur(nous,9,5)=10
joueur (nous,9,6)=1 ; les numeros vont de1 a 50
joueur (nous,9,7)=5 ; les etoiles(n6et n7) de 1 a 9
; grille numero 10
joueur (nous,10,1)=13 ;
joueur (nous,10,2)=08 ; mettez ici vos numero fetiche et vous saurez au bout de combien de tirage
joueur (nous,10,3)=19 ; ils sortiront !!! :-( (ça peut etre long !! ) on pourrai d'ailleurs ajouter la somme dépensé
joueur (nous,10,4)=6 ; a raison de 10 € le tiquet on peut avoir une idée de l'investissement avant de gagner le gros lot !!!!
joueur(nous,10,5)=4
joueur (nous,10,6)=2 ; les numeros vont de1 a 50
joueur (nous,10,7)=8 ; les etoiles(n6et n7) de 1 a 9
Ggrille=10
prixticket=20 ; prix du ticket en euros pour 10 grille
ConsoleLocate(0, 5)
ConsoleColor(14, 0)
; PrintN("Au tirage numero:"+Str(tirage)+" grille-N="+Str(grille)+" vos numeros sont sortis ! ") ; on affiche
PrintN("")
ConsoleColor(7, 0)
Print (" les numeros de la française ")
ConsoleColor(10, 0)
Print ( Str(n1)+"-")
Print ( Str(n2)+"-")
Print ( Str(n3)+"-")
Print ( Str(n4)+"-")
Print ( Str(n5)+"-")
Print ("(")
Print ( Str(n6)+"-")
Print ( Str(n7))
Print(") ")
PrintN("")
ConsoleColor(7, 0)
PrintN("vos numeros Imposes !")
ConsoleColor(15, 0)
For grille=1 To Ggrille
Print(Str(grille)+"-----> ")
For num=1 To 5
Print ( Str(joueur(nous,grille,num))+"-")
Next num
Print ("(")
Print (Str(joueur(nous,grille,6))+"-")
Print (Str(joueur(nous,grille,7)))
Print(") ")
PrintN("")
Next grille
ConsoleColor(7, 0)
EndIf
CallDebugger
; ************************************************************************************************************************
; ************ MODE FLASH on fait tirer par la francaise des jeux des numero pour le joueur "Nous" *******
If #mode=2 ; notre tirage Flash
For grille=1 To Ggrille
For num=1 To 5 ; les 5 numeros que le flash nous attribut
rec1:
joueur (nous,grille,num)=Random(49)+1
If num>1
For t=1 To num
If joueur (nous,grille,num)=joueur(nous,grille,t-1) ; si deja sorti
joueur (nous,grille,num)=Random(49)+1 ; on retire
Goto rec1
EndIf
Next t
EndIf
Next num
joueur (nous,grille,6)=Random(8)+1 ; la premiere etoile que le flash nous attribut
rec2:
joueur (nous,grille,7)=Random(8)+1 ; la deuxieme etoile que le flash nous attribut
If joueur (nous,grille,7)=joueur(nous,grille,6) ; si deja sorti
Goto rec2
EndIf
ConsoleLocate(0, 6)
Print (" les numeros de la française ")
ConsoleColor(10, 0)
Print ( Str(n1)+"-")
Print ( Str(n2)+"-")
Print ( Str(n3)+"-")
Print ( Str(n4)+"-")
Print ( Str(n5)+"-")
Print ("(")
Print ( Str(n6)+"-")
Print ( Str(n7))
Print(") ")
PrintN("")
ConsoleColor(7, 0)
PrintN("vos numeros atribue par le Flash ")
PrintN("")
For grille2=1 To Ggrille
Print(Str(grille2)+"----->")
For num=1 To 5
Print ( Str(joueur(nous,grille2,num))+"-")
Next num
Print ("(")
Print (Str(joueur(nous,grille2,6))+"-")
Print (Str(joueur(nous,grille2,7)))
Print(") ")
PrintN("")
ConsoleColor(7, 0)
Next grille2
Next grille
EndIf
; *******************************************************************************************************
CallDebugger
;on verifie et compare les jeux des joueurs virtuels
; **************** MODE 0 on fait tirer des numeros au hasard , a tout les joueurs virtuel ***************************
If #mode=0
For j=1 To #nombredejoueurs
For grille=1 To Ggrille
For num=1 To 5
; les numero du tirage de la francaise des jeux sont comparés aux jeux virtuel des joueurs
If joueur(j,grille,num)=n1 Or joueur(j,grille,num)=n2 Or joueur(j,grille,num)=n3 Or joueur(j,grille,num)=n4 Or joueur(j,grille,num)=n5
numero(grille)=numero(grille)+1
EndIf
Next num
; les etoiles sont comparés aussi
If joueur(j,grille,6)=n6 Or joueur(j,grille,6)=n7
etoile(grille)=etoile(grille)+1
EndIf
If joueur(j,grille,7)=n6 Or joueur(j,grille,7)=n7
etoile(grille)=etoile(grille)+1
EndIf
If numero(grille)=#numero And etoile(grille) =#etoile ; ici on met le type du jeux que l'on observe (nombre de numero et d'etoiles)
gain=gain+1 ; compte le nombre grilles gagnantes
; ;activer ci-dessous pour voir l'identité des gagnants
; PrintN("")
ConsoleLocate(0,5)
ConsoleColor(7, 0)
Resultat = Print("tirage numero :"+Str(tirage)+" le joueur :")
ConsoleColor(14, 0)
Print(Str(j))
ConsoleColor(7, 0)
PrintN(" a gagne ")
PrintN("")
; PrintN(" grille n:"+Str(grille)+"-> "+Str(numero(grille))+" numero gagnant et "+Str(etoile(grille))+" etoiles =>"+Str(pourcentage.f)+" %")
;
EndIf
; calcul du pourcentage suivant la formule
;pourcentage =(nombre de gagnant/nombretotal de joueur)*100
;PlaySound(1)
numero(grille)=0 ; remise a zero des variable pour prochain tirage
etoile(grille)=0
Next grille
Next j
If gain>0
pourcentage.f=(gain/ #nombredejoueurs)*100
ConsoleColor(7, 0)
Resultat = Print("tirage numero :"+Str(tirage)+" il y a eu ")
ConsoleColor(14, 0)
Print(Str(gain)+" grilles gagnantes ")
ConsoleColor(7, 0)
PrintN("sur : "+Str(#nombredejoueurs)+" joueurs soit "+ Str( pourcentage.f)+" %")
EndIf
gain=0
EndIf
CallDebugger
; *************** VERIFICATION DES TIRAGES pour le MODE Imposé et le MODE FLASH ********************
If #mode=1 Or #mode=2
For grille=1 To Ggrille
For num=1 To 5
; les numero du tirage de la francaise des jeux sont comparés aux jeux du joueur numero 1 (nous)
If joueur(nous,grille,num)=n1 Or joueur(nous,grille,num)=n2 Or joueur(nous,grille,num)=n3 Or joueur(nous,grille,num)=n4 Or joueur(nous,grille,num)=n5
numero(grille)=numero(grille)+1
EndIf
Next num
; les etoiles sont comparés aussi
If joueur(nous,grille,6)=n6 Or joueur(nous,grille,6)=n7
etoile(grille)=etoile(grille)+1
EndIf
If joueur(nous,grille,7)=n6 Or joueur(nous,grille,7)=n7
etoile(grille)=etoile(grille)+1
EndIf
If numero(grille)=#numero And etoile(grille) =#etoile ; ici on met le type du jeux que l'on observe (nombre de numero et d'etoiles)
gain=gain+1
ConsoleLocate(0, 4)
ConsoleColor(7, 0)
Print("Au tirage numero:"+Str(tirage))
ConsoleColor(14, 0)
Print(" grille-n="+Str(grille)) : grillgagn=grille ; va nous aider a trouver la ligne gagnante !
ConsoleColor(7, 0)
PrintN(" vos numeros sont sortis ! ") ; on affiche
PrintN("")
Print (" les numeros de la française ")
ConsoleColor(10, 0)
Print ( Str(n1)+"-")
Print ( Str(n2)+"-")
Print ( Str(n3)+"-")
Print ( Str(n4)+"-")
Print ( Str(n5)+"-")
Print ("(")
Print ( Str(n6)+"-")
Print ( Str(n7))
Print(") ")
PrintN("")
ConsoleColor(7, 0)
PrintN("vos numeros !")
PrintN("")
ConsoleColor(15, 0)
For grille2=1 To Ggrille
Print(Str(grille2)+"----->")
If grille2=grillgagn
ConsoleColor(10, 0) ; passe la ligne gagnante en vert
EndIf
For num=1 To 5
Print ( Str(joueur(nous,grille2,num))+"-")
Next num
Print ("(")
Print (Str(joueur(nous,grille2,6))+"-")
Print (Str(joueur(nous,grille2,7)))
Print(") ")
PrintN("")
ConsoleColor(15, 0) ; repasse en blanc
Next grille2
PrintN("")
ConsoleColor(7, 0)
If gain>0
sommes=(tir*prixticket)*6.55957
ConsoleColor(14, 0)
PrintN("il a fallu depense :"+Str( sommes)+" francs ("+Str(sommes/6.55957)+" euros) ")
PrintN("pour gagner avec " +Str(numero(grille))+" numeros et "+Str(etoile(grille))+" etoiles on joue depuis "+Str(tir)+" Semaines soit :"+Str(tir/52)+" ans ")
PrintN("")
ConsoleColor(7, 0)
sommes=0
tir=0
EndIf
; PlaySound(1)
; Delay(10000); attend 10 secondes
Print ( "appuis sur entree (return)")
p$=Input()
EndIf
numero(grille)=0 ; remise a zero des variable pour prochain tirage
etoile(grille)=0
Next grille
EndIf
; *****************************************************************************
; Delay(2000) ; petite pause pour avoir le temps de lire !!
gain=0
etoile=0
numero=0
Next tirage