Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Lotto programm (https://www.delphipraxis.net/105237-lotto-programm.html)

ScrollbarKopf 18. Dez 2007 14:41


Lotto programm
 
Hallo Leute habe jetzt ein Programm das mir aus 45 zahlen 6 zufällige nimmt.
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c,d,e,f :integer;
begin
randomize;
repeat
  a:= random (46);
  b:= random (46);
  c:= random (46);
  d:= random (46);
  e:= random (46);
  f:= random (46);

until (a<>b) and (a<>c) and (a<>d) and (a<>e) and (a<>f)
and  (b<>a) and (b<>c) and (b<>d) and (b<>e) and (b<>f)
and  (c<>a) and (c<>b) and (c<>d) and (c<>d) and (c<>f)
and  (d<>a) and (d<>b) and (d<>c) and (d<>e) and (d<>f)
and  (e<>a) and (e<>b) and (e<>c) and (e<>d) and (e<>f)
and  (f<>a) and (f<>b) and (f<>c) and (f<>d) and (f<>e);

edit1.Text := inttostr (a+1);
edit2.Text := inttostr (b+1);
edit3.Text := inttostr (c+1);
edit4.Text := inttostr (d+1);
edit5.Text := inttostr (e+1);
edit6.Text := inttostr (f+1);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
edit1.clear;
edit2.clear;
edit3.clear;
edit4.clear;
edit5.clear;
edit6.clear;
end;

end.
Und ich habe folgendes Proplem. Habe jetzt 6 weitere Edits gemacht und möchte das wenn man unten zahlen rein schreibt das delphi die geschriebenen zahlen mit den zufalls zahlen in den anderen edits vergleicht und wenn alle übereinstimmen soll er mitels showmessage sagen das man gewonnen hat und wenn nicht das man verloren hat. :dp:
Das Haupt proplem ist ich weiß nciht wie ich es schreiben soll das er die zahlen überprüft also vergleicht.

inherited 18. Dez 2007 14:47

Re: Lotto programm
 
Die EIngegebenen Werte in Integer umwandeln kannst du mit MyInt:=StrToInt(String);
Vegleichen solltest du können. Aber du wirst diese Meldung praktisch niemals zu gesicht bekommen, weil die Wahrscheinlichkeit dass du die richtigen Zahlen bekommst verschwinded gering ist ;)
btw: müssten es nicht 6 aus 49 sein?

ScrollbarKopf 18. Dez 2007 15:03

Re: Lotto programm
 
die wahrscheinlichkeit ist zwar gering aber es ist eben lotto nein es sollen 45 zahlen sein und auserdem kann ich das vergleichen net :?:

mkinzler 18. Dez 2007 15:06

Re: Lotto programm
 
Was kannst du nicht vergleichen?

ScrollbarKopf 18. Dez 2007 15:08

Re: Lotto programm
 
die zahlen der Computer soll die geschriebennen zahlen mit den zufalls zahlen vergleichen udn dasnn sagen wenn alle übereinstimmen SIe haben gewoonen ansonsten sie haben verloren

Jelly 18. Dez 2007 15:09

Re: Lotto programm
 
Warum scheiterst du am Vergleichen. Wo liegt das konkrete Problem? Was hast du bisher.

Noch 2 Tipps am Rande:
  • Randomize braucht nur einmal aufgerufen werden, und nicht bei jedem Button1-Klick
  • Wenn a<>b ist, dann brauchst du nicht nochmal prüfen ob b<>a ist. Für andere Prüfungen in deiner Routine gilt Entsprechendes
  • Nenn deine Kinder mit dem Namen. Oder weisst Du noch was Button1, Button2 und Button3 ist in 4 Wochen.

Um zu prüfen, wieviele Richtige du hast würde ich mal versuchen mit
Delphi-Quellcode:
set of integer ;
zu arbeiten, damit sollte eine Prüfung relativ leicht werden, wieviele Richtige du hast.

ScrollbarKopf 18. Dez 2007 15:09

Re: Lotto programm
 
Zitat:

Zitat von mkinzler
Was kannst du nicht vergleichen?

Und ich habe folgendes Proplem. Habe jetzt 6 weitere Edits gemacht und möchte das wenn man unten zahlen rein schreibt das delphi die geschriebenen zahlen mit den zufalls zahlen in den anderen edits vergleicht und wenn alle übereinstimmen soll er mitels showmessage sagen das man gewonnen hat und wenn nicht das man verloren hat.
Das Haupt proplem ist ich weiß nciht wie ich es schreiben soll das er die zahlen überprüft also vergleicht

mkinzler 18. Dez 2007 15:11

Re: Lotto programm
 
Delphi-Quellcode:
if StrToInt( Edit1.text) = StrToInt( Edit2.text) then ...
besser aber TryStrToInt oder Val verwenden.

Klaus01 18. Dez 2007 15:18

Re: Lotto programm
 
Hallo,

mach Dir doch drei Arrays

Delphi-Quellcode:
gezogeneZahlen : Array[1..6] of Byte;
gewaehlteZahlen: Array[1..6] of Byte;
ZahlenRichtig : Array[1..6] of Byte;

Delphi-Quellcode:
k:=0;
for i:=1 to 6 do
  for j:=1 to 6 do
    if gewaehlteZahlen[i] = gezogeneZahlen[j] then
      begin
        inc(k);
        ZahlenRichtig[k]:=gewaehlteZahlen[j];
      end;
Wenn dann am Ende k = 6 ist, dann stimmen 6 Zahlen überein.
Wenn es weniger sind entspricht k der Anzahl der richtigen Zahlen.
Die richtigen Zahlen stehen dann im Array ZahlenRichtig.

Grüße
Klaus

ScrollbarKopf 18. Dez 2007 15:30

Re: Lotto programm
 
Klaus01 habe schon eine variante

Aber ähm wie schreibe ich wenn edit1.text nicht gleich edit2.text ist dann false

Denke mir if Stroint (edit1.text) (was gibt man als unglecih ein) stroint (edit2.text) than ....
Das Proplem ist ich weiß nicht wie amn ungleich schreibt in dwelphi.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz