Hallo Leute!
Ich habe ein Programm, in dem man in ein Editfeld ein Wort eingeben kann. Es soll zufällig wiederzusammengesetzt werden. Ich hab das ganze so gemacht:
Delphi-Quellcode:
for I := 1 to length(Eingabe) do begin
AusgabeDurcheinanderArray[I] := copy(Eingabe,I,I);
end;
for I := 1 to length(Eingabe) do begin
Zufall := trunc(random(length(Eingabe)))+1;
if AusgabeDurcheinanderArray[Zufall] = '' then begin
Zufall := trunc(random(length(Eingabe)))+1;
AusgabeDurcheinanderBuchstabe := AusgabeDurcheinanderArray[Zufall];
AusgabeDurcheinanderFertig := AusgabeDurcheinanderFertig+AusgabeDurcheinanderBuchstabe;
AusgabeDurcheinanderArray[Zufall] := '';
end else begin
AusgabeDurcheinanderBuchstabe := AusgabeDurcheinanderArray[Zufall];
AusgabeDurcheinanderFertig := AusgabeDurcheinanderFertig+AusgabeDurcheinanderBuchstabe;
AusgabeDurcheinanderArray[Zufall] := '';
end;
end;
Zuerst lege ich jeden Buchstaben in ein Array. Dann bilde ich eine Zufallszahl, schau ob das Array leer ist (das Array des Buchstaben, denn ich bereits entnommen habe wird geleert) wenn es leer ist soll eine neue Zufallszahl gebildet werden und sonst soll einfach der Buchstabe des Arrays zu den anderen die bereits entnommen worden sind hinzufügen.
Mein Problem: es werden manche buchstaben doppelt und manche gar nicht herausgenommen, dann wird aus einem wort wie hallo gleich mal llloh
Was mach ich falsch?
Mit freundlichen Grüßen
ProgrammiererMike