Hi Leute!!
Erstmal zur Erklärung, ich soll 6 aus 49 programmieren, mache das in 3 memos, im 1ten werden die zahlen eingegeben,
im 2ten lottozahlen erzeugt und im 3ten die übereinstimmungen angezeigt.
Funktionier soweit. Jetzt habe ich aber das Problem, dass ich beim Eingeben der Zahlen auch doppelte
Zahlen, wie 2,2,2 eingeben kann, keine Ahnung wie ich das Beheben soll
Manchmal gibt der mir dann bei den Übereinstimmungen auch doppelte Zahlen an, ich bin ziemlich verzweifelt,
habe das ganze Wochenende schon dran gebastelt und sehe nun gar nicht mehr durch.
Guckt bitte mal meinen Quelltxt durch, ob ihr den / die Fehler seht
Vielen Dank, LG Susi
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i,z,x,y,anz,o: integer;
{startet Zufallszahlen für Memo2}
begin
randomize;
For i:=1
TO 6
DO
begin
z:=random(49)+1;
memo2.lines.add(IntToStr(z));
end;
{zieht zufällige Superzahl}
begin
randomize;
Superzahl:=random(10)+1;
edit2.Text:=(IntToStr(Superzahl));
end;
{Vergleich der eingegebenen mit den gezogenen Zahlen}
anz:=0;
For x:=0
To memo1.Lines.Count-1
Do
For y:=0
To memo2.Lines.Count-1
Do
IF memo1.Lines[x]=memo2.Lines[y]
then
begin
memo3.Lines.add(memo1.lines[x]);
anz:=anz+1;
label5.caption:=IntToStr(anz);
end;
{Vergleich der Superzahlen}
If edit1.Text=edit2.Text
then
begin
edit3.Text:=edit1.Text;
label8.Caption:='
Superzahl stimmt überein!!'
end
else
label8.caption:='
leider nicht..';
{Elememinierung doppelter Zahlen}
for i:=0
To memo2.Lines.count-1
DO
begin
o:=i+1;
while o<memo2.lines.count
do
begin
IF memo2.lines[i]=memo2.Lines[o]
then
begin
memo2.lines.Delete(i);
dec(o);
end;
inc(o);
end;
end;
{Fehlerabfederung}
anz:=0;
if memo1.Lines.Count<>6
then
begin
ShowMessage('
Bitte geben Sie genau 6 Zahlen als Tipp ein!');
exit;
end;
try
For x:=0
TO memo1.lines.count-1
DO begin
if not ((strToInt(memo1.Lines[x])<50)
and (strToInt(memo1.Lines[x])>0))
then begin
Showmessage('
Bitte geben Sie nur Zahlen zwischen 1 und 49 ein!');
exit;
end;
end;
except
Showmessage('
Fehler! Bitte geben Sie Zahlen ein!');
end;
try
if not ((strToInt(edit1.Text)<10))
then
begin
showmessage('
Bitte geben Sie nur Zahlen zwischen 0 und 9 ein!');
exit;
end;
except
Showmessage('
Fehler! Bitte geben Sie Zahlen ein!');
end;
end;
end.
[edit=Matze][delphi]-Tag geschlossen. MfG, Matze[/edit]