begin process at 2012 05 27 20:21:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > SIMULATION DE PLUSIEURS TIRAGES DU JEU DE JOKER (LOTTO)

SIMULATION DE PLUSIEURS TIRAGES DU JEU DE JOKER (LOTTO)


 Information sur la source

Note :
Aucune note
Catégorie :Divers Classé sous :joker, simulation, timer, jeu, lotto Niveau :Débutant Date de création :06/01/2009 Date de mise à jour :06/01/2009 15:00:16 Vu / téléchargé :5 707 / 204

Auteur : bad_dark_spirit

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Voici donc un programme qui fait plusieurs tirage du jeu de joker et nous affiche les dépenses, les gains et les bénéfices. On doit simplement entrer ce qu'on veut jouer, puis on donne un intervalle entre deux tirages en ms, et le programme fait les tirages aléatoirement et nous affiche nos résultats.
On a donc deux champs à remplir, puis on clique sur "valider" pour lancer le programme, que l'on peut stopper à tout moment grâce au bouton "pause".


Ce qu'on retrouve dans cette source :
- Création de fonction
- Création de procédure
- Gestion d'un timer
- utilisation de la fonction random
- structure conditionnel
- utilisation de la fonction val


Cette source apporte donc les connaissances ci-dessus, et le programme en lui-même démontre qu'il est rare de gagner à un tel jeu.

Source

  • {=======================================================================
  • Fichier : unit1.pas
  • Auteur : Stéphane Haimet
  • Crée le 05/01/2009
  • Modifié le 05/01/2009
  • Description : Simulateur de gain au jeu du joker, Simplement pour
  • la demonstration du fait qu'on n'est rarement gagnant.
  • =======================================================================}
  • unit Unit1;
  • interface
  • uses
  • Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  • Dialogs, StdCtrls, Buttons, ExtCtrls;
  • type
  • TfJoker = class(TForm)
  • GroupBox1: TGroupBox;
  • eJeu1: TEdit;
  • eJeu2: TEdit;
  • eJeu3: TEdit;
  • eJeu4: TEdit;
  • eJeu5: TEdit;
  • eJeu6: TEdit;
  • eJeu7: TEdit;
  • GroupBox2: TGroupBox;
  • eTirage1: TEdit;
  • eTirage2: TEdit;
  • eTirage3: TEdit;
  • eTirage4: TEdit;
  • eTirage5: TEdit;
  • eTirage6: TEdit;
  • eTirage7: TEdit;
  • GroupBox3: TGroupBox;
  • Label2: TLabel;
  • eCorrect: TEdit;
  • Label3: TLabel;
  • eGains: TEdit;
  • GroupBox4: TGroupBox;
  • Label6: TLabel;
  • eDepenses: TEdit;
  • Label7: TLabel;
  • eGainTot: TEdit;
  • GroupBox5: TGroupBox;
  • lBenefice: TLabel;
  • GroupBox6: TGroupBox;
  • bValider: TBitBtn;
  • bPause: TBitBtn;
  • bFerer: TBitBtn;
  • Label4: TLabel;
  • Label5: TLabel;
  • Edit2: TEdit;
  • eNombre: TEdit;
  • eInterval: TEdit;
  • Timer1: TTimer;
  • procedure tirer();
  • function verifierEntrees():boolean;
  • procedure FormCreate(Sender: TObject);
  • procedure bValiderClick(Sender: TObject);
  • procedure bPauseClick(Sender: TObject);
  • private
  • { Déclarations privées }
  • public
  • { Déclarations publiques }
  • end;
  • var
  • fJoker: TfJoker;
  • var depense: integer;
  • var gainTot,benefice: real;
  • implementation
  • {$R *.dfm}
  • //Procédure "tirer()" qui va faire le plus gros du boulot
  • procedure TfJoker.tirer();
  • var i: integer;
  • begin
  • depense := depense+1;
  • i := 0;
  • //TRANSFERT DES NBRES JOUE DANS LES EDITS
  • eJeu1.Text := eNombre.Text[1];
  • eJeu2.Text := eNombre.Text[2];
  • eJeu3.Text := eNombre.Text[3];
  • eJeu4.Text := eNombre.Text[4];
  • eJeu5.Text := eNombre.Text[5];
  • eJeu6.Text := eNombre.Text[6];
  • eJeu7.Text := eNombre.Text[7];
  • //TIRAGE ALEATOIRE, on tire nos 7 numéros et on les affiche
  • randomize;
  • eTirage1.text := inttostr(random(9)+1);
  • eTirage2.text := inttostr(random(9)+1);
  • eTirage3.text := inttostr(random(9)+1);
  • eTirage4.text := inttostr(random(9)+1);
  • eTirage5.text := inttostr(random(9)+1);
  • eTirage6.text := inttostr(random(9)+1);
  • eTirage7.text := inttostr(random(9)+1);
  • //COMPARAISON : si le premier chiffre est bon, on passe au suivant, ...
  • if (eJeu7.Text = eTirage7.Text) then
  • begin
  • i := i+1;
  • if (eJeu6.Text = eTirage6.Text) then
  • begin
  • i := i+1;
  • if (eJeu5.Text = eTirage5.Text) then
  • begin
  • i := i+1;
  • if (eJeu4.Text = eTirage4.Text) then
  • begin
  • i := i+1;
  • if (eJeu3.Text = eTirage3.Text) then
  • begin
  • i := i+1;
  • if (eJeu2.Text = eTirage2.Text) then
  • begin
  • i := i+1;
  • if (eJeu1.Text = eTirage1.Text) then
  • begin
  • i := i+1;
  • end;
  • end;
  • end;
  • end;
  • end;
  • end;
  • end;
  • //On note le nombre de chiffre correct
  • eCorrect.text := floattostr(i);
  • //On regarde le total des gains pour ce tirage :
  • case i of
  • 0 : eGains.Text := '0';
  • 1 : eGains.Text := '2,50';
  • 2 : eGains.Text := '10';
  • 3 : eGains.Text := '50';
  • 4 : eGains.Text := '500';
  • 5 : eGains.Text := '5000';
  • 6 : eGains.Text := '50000';
  • 7 : eGains.Text := '1000000';
  • end;
  • //On calcul le total des gains
  • gainTot := gainTot+strtofloat(eGains.Text);
  • //On affiche les dépenses, et le gain total, on calcul le bénéfice
  • eDepenses.text := inttostr(depense);
  • eGainTot.text := floattostr(gainTot);
  • benefice := gainTot-depense;
  • //On affiche le bénéfice en vert si c'est positif, en rouge sinon
  • if(benefice >= 0) then
  • lBenefice.Font.Color := clGreen
  • else
  • lBenefice.Font.Color := clRed;
  • lBenefice.Caption := '¤ ' + floattostr(benefice);
  • end;
  • //Fonction qui vérifie nos deux édits au moment où on clique sur "valider"
  • function TfJoker.verifierEntrees(): boolean;
  • var x, err, x2, err2 : integer;
  • begin
  • val(eNombre.text,x,err);
  • val(eInterval.text,x2,err2);
  • //Vérification de la longueur de la chaine entrée pour le jeu
  • if(length(eNombre.Text) < 7) then
  • result := true
  • //On regarde si on n'a pas de champs vides
  • else if ((eNombre.text = '') OR (eInterval.text = '')) then
  • result := true
  • //On regarde si eNombre est un entier
  • else if (err <> 0) then
  • result := true
  • //On regarde si eInterval est un entier
  • else if (err2 <> 0) then
  • result := true
  • else
  • result := false; //pas d'erreur ici
  • end;
  • //Quand on clique sur le bouton "pause" on désactive le timer
  • procedure TfJoker.bPauseClick(Sender: TObject);
  • begin
  • Timer1.Enabled := false;
  • bValider.Enabled := true;
  • end;
  • //Quand on clique sur le bouton valider
  • procedure TfJoker.bValiderClick(Sender: TObject);
  • var erreur : boolean;
  • begin
  • //On regarde si on n'a pas d'erreur grâce à notre fonction
  • erreur := verifierEntrees();
  • //Si on n'a aucune erreur :
  • if(not erreur) then
  • begin
  • //on desactive le bouton valider, on active le timer, et on défini l'interval
  • bValider.Enabled := false;
  • Timer1.Enabled := true;
  • Timer1.Interval := strtoint(eInterval.Text);
  • tirer();
  • end
  • //Sinon on affiche un message d'erreur
  • else
  • messagedlg('Erreur dans les champs à remplir', mtWarning, [mbOK], 0);
  • end;
  • //A la création de l'application, toutes les variables globales à 0
  • procedure TfJoker.FormCreate(Sender: TObject);
  • begin
  • depense := 0;
  • gainTot := 0;
  • benefice := 0;
  • Timer1.Enabled := false;
  • bValider.Enabled := true;
  • end;
  • end.
{=======================================================================
    Fichier : unit1.pas
    Auteur : Stéphane Haimet
    Crée le 05/01/2009
    Modifié le 05/01/2009

    Description : Simulateur de gain au jeu du joker, Simplement pour
    la demonstration du fait qu'on n'est rarement gagnant.
=======================================================================}

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls;

type
  TfJoker = class(TForm)
    GroupBox1: TGroupBox;
    eJeu1: TEdit;
    eJeu2: TEdit;
    eJeu3: TEdit;
    eJeu4: TEdit;
    eJeu5: TEdit;
    eJeu6: TEdit;
    eJeu7: TEdit;
    GroupBox2: TGroupBox;
    eTirage1: TEdit;
    eTirage2: TEdit;
    eTirage3: TEdit;
    eTirage4: TEdit;
    eTirage5: TEdit;
    eTirage6: TEdit;
    eTirage7: TEdit;
    GroupBox3: TGroupBox;
    Label2: TLabel;
    eCorrect: TEdit;
    Label3: TLabel;
    eGains: TEdit;
    GroupBox4: TGroupBox;
    Label6: TLabel;
    eDepenses: TEdit;
    Label7: TLabel;
    eGainTot: TEdit;
    GroupBox5: TGroupBox;
    lBenefice: TLabel;
    GroupBox6: TGroupBox;
    bValider: TBitBtn;
    bPause: TBitBtn;
    bFerer: TBitBtn;
    Label4: TLabel;
    Label5: TLabel;
    Edit2: TEdit;
    eNombre: TEdit;
    eInterval: TEdit;
    Timer1: TTimer;
    procedure tirer();  
    function verifierEntrees():boolean;
    procedure FormCreate(Sender: TObject);
    procedure bValiderClick(Sender: TObject);
    procedure bPauseClick(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var  
  fJoker: TfJoker;
  var depense: integer;
  var gainTot,benefice: real;


implementation
{$R *.dfm}


//Procédure "tirer()" qui va faire le plus gros du boulot
procedure TfJoker.tirer();
var i: integer;
begin
  depense := depense+1;
  i := 0;

  //TRANSFERT DES NBRES JOUE DANS LES EDITS
  eJeu1.Text := eNombre.Text[1];
  eJeu2.Text := eNombre.Text[2];
  eJeu3.Text := eNombre.Text[3];
  eJeu4.Text := eNombre.Text[4];
  eJeu5.Text := eNombre.Text[5];
  eJeu6.Text := eNombre.Text[6];
  eJeu7.Text := eNombre.Text[7];

  //TIRAGE ALEATOIRE, on tire nos 7 numéros et on les affiche
  randomize;
  eTirage1.text := inttostr(random(9)+1);
  eTirage2.text := inttostr(random(9)+1);
  eTirage3.text := inttostr(random(9)+1);
  eTirage4.text := inttostr(random(9)+1);
  eTirage5.text := inttostr(random(9)+1);
  eTirage6.text := inttostr(random(9)+1);
  eTirage7.text := inttostr(random(9)+1);

  //COMPARAISON : si le premier chiffre est bon, on passe au suivant, ...
  if (eJeu7.Text = eTirage7.Text) then
  begin
   i := i+1;
   if (eJeu6.Text = eTirage6.Text) then
   begin
     i := i+1;
     if (eJeu5.Text = eTirage5.Text) then
     begin
       i := i+1;
       if (eJeu4.Text = eTirage4.Text) then
       begin
         i := i+1;
         if (eJeu3.Text = eTirage3.Text) then
         begin
           i := i+1;
           if (eJeu2.Text = eTirage2.Text) then
           begin
             i := i+1;
             if (eJeu1.Text = eTirage1.Text) then
             begin
               i := i+1;
             end;
           end;
         end;
       end;
     end;
   end;
  end;

  //On note le nombre de chiffre correct
  eCorrect.text := floattostr(i);

  //On regarde le total des gains pour ce tirage :
  case i of
    0 : eGains.Text := '0';
    1 : eGains.Text := '2,50';
    2 : eGains.Text := '10';
    3 : eGains.Text := '50';
    4 : eGains.Text := '500';
    5 : eGains.Text := '5000';
    6 : eGains.Text := '50000';
    7 : eGains.Text := '1000000';
  end;
  //On calcul le total des gains
  gainTot := gainTot+strtofloat(eGains.Text);

  //On affiche les dépenses, et le gain total, on calcul le bénéfice
  eDepenses.text := inttostr(depense);
  eGainTot.text := floattostr(gainTot);
  benefice := gainTot-depense;

  //On affiche le bénéfice en vert si c'est positif, en rouge sinon
  if(benefice >= 0) then
    lBenefice.Font.Color := clGreen
  else
    lBenefice.Font.Color := clRed;

  lBenefice.Caption := '¤ ' + floattostr(benefice);

end;


//Fonction qui vérifie nos deux édits au moment où on clique sur "valider"
function TfJoker.verifierEntrees(): boolean;
var x, err, x2, err2 : integer;
begin
  val(eNombre.text,x,err);
  val(eInterval.text,x2,err2);
    
  //Vérification de la longueur de la chaine entrée pour le jeu
  if(length(eNombre.Text) < 7) then
    result := true
  //On regarde si on n'a pas de champs vides
  else if ((eNombre.text = '') OR (eInterval.text = '')) then
    result := true
  //On regarde si eNombre est un entier
  else if (err <> 0) then
    result := true
  //On regarde si eInterval est un entier
  else if (err2 <> 0) then
    result := true       
  else
    result := false;  //pas d'erreur ici
end;


//Quand on clique sur le bouton "pause" on désactive le timer
procedure TfJoker.bPauseClick(Sender: TObject);
begin
  Timer1.Enabled := false;
  bValider.Enabled := true;
end;


//Quand on clique sur le bouton valider
procedure TfJoker.bValiderClick(Sender: TObject);
var erreur : boolean;
begin
  //On regarde si on n'a pas d'erreur grâce à notre fonction
  erreur := verifierEntrees();

  //Si on n'a aucune erreur :
  if(not erreur) then
  begin
  //on desactive le bouton valider, on active le timer, et on défini l'interval
    bValider.Enabled := false;
    Timer1.Enabled := true;
    Timer1.Interval := strtoint(eInterval.Text);
    tirer();
  end
  //Sinon on affiche un message d'erreur
  else
    messagedlg('Erreur dans les champs à remplir', mtWarning, [mbOK], 0);
end;


//A la création de l'application, toutes les variables globales à 0
procedure TfJoker.FormCreate(Sender: TObject);
begin
  depense := 0;
  gainTot := 0;
  benefice := 0;
  Timer1.Enabled := false;
  bValider.Enabled := true;
end;

end.

 Conclusion

Enjoy

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   simulationjoker

Télécharger le zip


 Historique

06 janvier 2009 15:00:17 :
Suppression d'éléments inutiles dans le zip

 Sources du même auteur

Source avec Zip Source avec une capture CRYPTAGE : MÉTHODE DE TRANSPOSITION
Source avec Zip Source avec une capture CRYPTAGE : MÉTHODE DE SUBSTITUTION
Source avec Zip Source avec une capture MÉTHODE DE GAUSS ET DE CRAMER : RÉSOLUTION DE 10 ÉQUATIONS À...
Source avec Zip Source avec une capture MÉTHODE DICHOTOMIQUE : CALCUL DE RACINE CUBIQUE
Source avec Zip Source avec une capture MÉTHODE DE NEWTON : CALCUL D'UNE RACINE CARRÉE

 Sources de la même categorie

Source avec Zip DISTANCE ENTRE DEUX POINTS GEOGRAPHIQUES par jponselle
Source avec Zip LECTURE DE FICHIER .EML par piette
Source avec Zip TRI DBRID CROISSANT ET DECROISSANT par walidlam
Source avec Zip PETITE APPLICATION DE RETENUE par walidlam
Source avec Zip APPLICATION ALIAS+EXCEL par walidlam

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture QCM DE CULTURE GÉNÉRALE par hoby500
Source avec Zip Source avec une capture [LAZARUS] JEUX/LABYRINTHE : GENERATION ET RÉSOLUTION par timmalos
Source avec Zip Source avec une capture PFFF : SIMULATEUR PNEUMATIQUE par ADMR
Source avec Zip Source avec une capture JEU D'ÉCHEC MAZETTE par ADMR
Source avec Zip LES POINTEURS : LE PETIT JEU DU SERPENT... par PyRuSs

Commentaires et avis

Commentaire de Caribensila le 06/01/2009 14:22:12

Moi, j'en connais une qui gagne à tous les coups!
Elle s'appelle Françoise Desjeux, je crois...    ;)

Commentaire de bad_dark_spirit le 06/01/2009 15:02:46

Eh bien si elle gagne à tous les coups je peux créer un simulateur rien que pour elle, et du coup il va être plus simple à programmer ;-)

Commentaire de cantador le 06/01/2009 23:05:29 administrateur CS

il s'agit du lotto belge bien sûr..

Commentaire de Caribensila le 07/01/2009 00:43:48

En Belgique, c'est Nat. Loterij qui gagne à tous les coups (une cousine du nord)...

Commentaire de offlake le 07/01/2009 07:42:17

la Loterie Belge C'est Connue par Sa Chance de gagner a tous les Coups
Donc je vais Changer de Loterie avec la Loterie Belge
BY OFFLAKE

Commentaire de bad_dark_spirit le 07/01/2009 08:05:43

Il y a bien un joker au lotto français non ? Ça n'est pas le même système.
Enfin soit, le programme démontre juste le fait qu'il est rare de gagner des cents et des milles, et la source apporte l'utilisation d'un timer entre autres.

Et je ne connaissais pas ces gens qui gagnent à tous les coups... Ils font comment ? Ils appellent des divinités locales ? Ils sont autorisés à jouer ? :o)

Commentaire de cantador le 07/01/2009 09:16:25 administrateur CS

@bad_dark_spirit:
oui, il y a aussi un joker en France, mais il est totalement aléatoire..

Commentaire de bad_dark_spirit le 07/01/2009 09:42:18

Ah oui juste, ça n'est pas toi qui joue, c'est l'ordinateur qui prend un nombre aléatoire pour toi. Merci de la précision :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

help!!!!!svp les best en delphi :) [ par eedy31 ] j'ai un gro pblém : je debute en delphi et il me fo du temps pour apprendre!!!ET le pblém c'est que mon père monopolise le PC avec son jeu(atlantis3.. Jeu avec le source [ par Synthox ] Si ca vous dis de faire un jeu de carte, je vous met mes sources en telechargement sur mon site, il contiens aussi un fichier RES avec les cartes de t Un TIMER plus précis... [ par DAR ] Je cherche un timer beaucoup plus précis que celui livré avec Delphi.Il me faut une précision de l'ordre de la micro seconde.Merci à ceux qui pourront Comment faire les menus d'un jeu en Delphi ?! Vite ça presse ! [ par Gropoli ] Je suis entrain de faire un jeu de type wargame en delphi et je me demande comment je dois faire les menus du jeu : menu principal (nouveau jeu, optio Comment faire les menus d'un jeu en Delphi ?! Vite ça presse ! [ par Gropoli ] Je suis entrain de faire un jeu de type wargame en delphi et je me demande comment je dois faire les menus du jeu : menu principal (nouveau jeu, optio Simulation de touche [ par Amadeus ] Comment faire pour simuler l'appuie sur une touche, par exemple faire croire au prog que la touche Echap a été enfoncé.merci d'avance mowack v1.0 : simulation de vie de créatures aquatiques [ par sebrs1 ] salut à tous,voici ma nouvelle crétion, mowack, des créatures aquatiques qui doivent se reproduire, manger, se battre entre especes (bon sa c'est pas Recherche de code pour jeu d'enregistrement [ par clemot ] Salut je recherche un exemple ou des exemples de code pourun jeu d'enregistrement à partir de TDBCtrlGrid et de stringgrid pouyr enregistrer des donn Jeu de strategie avec directdraw [ par sebrs1 ] Tout d'abord, je vais vous expliquer ce que je veux fairec'est tout simple (enfin, simple a comprendre mais pas a faire)je voudrais faire un truc genr simulation et files d'attentes [ par ryadus ] je voudrai des informrations concernant les files d'attente et la simulation: exemple: etude de temps d'arret dans un carrefourmerci


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales