Dass jedes Zeichen bzw. jede Zahl nur einmal im Endergebnis vorkommt, könnte man durch ein Array erreichen, das sozusagen den Zeichenvorrat darstellt (s. 19. Post).
Random-Buchstaben generieren
-
- [ gelöst ]
-
Rey96 -
6. September 2011 um 19:16 -
Geschlossen -
Erledigt
-
-
Hey, es ist nicht sonderlich schön gemacht und kann theoretisch eine Dauerschleife verursachen, funktioniert aber einwandtfrei und ist einfach. Jedes Zeichen kommt nur einmal vor:
Spoiler anzeigen
[autoit]#include <Array.au3>
[/autoit]
Dim $array[8][2]
For $i = 0 To 7
$array[$i][0] = Random(0, 1)
While 1 ; While-Schleife
$vorhanden = 0 ; Prüf-Variable wird initialisiert
If $i <= 1 Then $array[$i][1] = Chr(Random(65, 90, 1))
If $i >= 2 Then $array[$i][1] = Random(0, 9, 1)
For $j = 0 To $i - 1 ; Schleife überprüft bisher generierte Zeichen
If $array[$i][1] = $array[$j][1] Then ; sollte generiertes Zeichen vorhanden sein, wird anschließend neu generiert
$vorhanden = 1
ExitLoop
EndIf
Next
If $vorhanden = 0 Then ExitLoop ; wenn generiertes Zeichen bisher nicht vorhanden, wird While-Schleife beendet
WEnd
Next
_ArraySort($array)
$string = ""
For $i = 0 To 7
$string &= $array[$i][1]
Next
MsgBox(0, "Generierter String", $string)
Andy -
Hey danke Andy es funktioniert genau so wie ich es wollte C:
-