Eurom v1.0.0

Description

Un générateur de nombres aléatoires pour l'euro-millions.
J'avais encore envie de jouer avec les nombres aléatoires suite au pipotron et en même temps de découvrir les fonctions "repeat" et "until" parfaites pour ce programme.

Source / Exemple :


{===============================================================================
Code source : BEAUMONT Christophe
Version     : 1.0.0
Date        : 21 Mars 2010

Micro-projet 06 : C'est le micro-projet 05 "Pipotron 1.2.1" qui m'a donné envie
de continuer à travailler avec les nombres aléatoires. Voici donc un générateur
de nombres pour l'euro-millions. Volontairement fait pour un seul tirage, à vous
de l'améliorer si vous voulez une version pour une grille complète.
Retrouvez ce source sur mon site "www.delphinautes.fr"
===============================================================================}
unit f_main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, pngimage, ExtCtrls, StdCtrls, ShellAPI, Math;

type
  TMain = class(TForm)
    Cadre: TBevel;
    BouleN1: TImage;
    BouleN2: TImage;
    BouleN3: TImage;
    BouleN4: TImage;
    BouleN5: TImage;
    BouleC1: TImage;
    BouleC2: TImage;
    BtnTirage: TButton;
    Url: TLabel;
    Numero1: TLabel;
    Numero2: TLabel;
    Numero3: TLabel;
    Numero4: TLabel;
    Numero5: TLabel;
    Numero6: TLabel;
    Numero7: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure UrlMouseEnter(Sender: TObject);
    procedure UrlMouseLeave(Sender: TObject);
    procedure UrlClick(Sender: TObject);
    procedure BtnTirageClick(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Main: TMain;

implementation

{$R *.dfm}

procedure TMain.BtnTirageClick(Sender: TObject);
// On travaille sur des valeurs inférieures à 255 donc "byte" suffit.
var Num : array[1..7] of byte;
    Temp : byte;
    I : Integer;
begin
// On va traiter les 5 numéros normaux ( 1 à 5 )
 for I := 1 to 5 do
  begin
// Pour permettre au numéro du tirage précédent de ressortir à la même place
    num[i] := 0;
// On tire un numéro compris entre 1 et 50
    repeat Temp := RandomRange(1,50);
// On vérifie si le numéro n'a pas déjà été tiré sinon on refait un tirage
    until ((Temp<>Num[1]) and (Temp<>Num[2]) and (Temp<>Num[3]) and (Temp<>Num[4]) and (Temp<>Num[5]));
// On sauvegarde la valeur tirée
    Num[i] := Temp;
  end;
// On va traiter les 2 numéros complémentaires ( 6 et 7 )
 for I := 6 to 7 do
  begin
// Pour permettre au numéro du tirage précédent de ressortir à la même place
    num[i] := 0;
// On tire un numéro compris entre 1 et 9
    repeat Temp := RandomRange(1,9);
// On vérifie qu'il n'a pas déjà été tiré
    until ((Temp<>Num[6]) and (Temp<>Num[7]));
// On sauvegarde la valeur tirée
    Num[i] := Temp;
  end;
// On affiche le numéro 1
 Numero1.Caption := IntToStr(Num[1]);
// On affiche le numéro 2
 Numero2.Caption := IntToStr(Num[2]);
// On affiche le numéro 3
 Numero3.Caption := IntToStr(Num[3]);
// On affiche le numéro 4
 Numero4.Caption := IntToStr(Num[4]);
// On affiche le numéro 5
 Numero5.Caption := IntToStr(Num[5]);
// On affiche le numéro complémentaire 1
 Numero6.Caption := IntToStr(Num[6]);
// On affiche le numéro complémentaire 2
 Numero7.Caption := IntToStr(Num[7]);
end;

procedure TMain.FormCreate(Sender: TObject);
begin
// Initialise le générateur de nombre aléatoire, à faire avant d'utiliser RandomRange
 Randomize;
end;

procedure TMain.UrlMouseEnter(Sender: TObject);
begin
// Souligne l'adresse lorsque le pointeur de souris passe dessus
 Url.Font.Style := [fsUnderline];
// Et change le pointeur de souris
 Cursor := crHandPoint;
end;

procedure TMain.UrlMouseLeave(Sender: TObject);
begin
// Retire le soulignement lorsque le pointeur n'est plus dessus
 Url.Font.Style := [];
// Et remet le curseur par défaut
 Cursor := crDefault;
end;

procedure TMain.UrlClick(Sender: TObject);
begin
// Lance le navigateur par défaut sur mon site
 ShellExecute(Handle,'Open','http://www.delphinautes.fr',nil,nil,SW_SHOWDEFAULT)
end;

end.

Conclusion :


Je m'amuse de plus en plus sur delphi, à m'en faire oublier la programmation sur Amiga ;)

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.