Habe gerade ein echt seltsames Problem:
Habe ein Array mit 32 Zuständen gefüllt, möchte nun durch Zufall 16 Werte in ein zweites Array schreiben.
Dabei soll es keine doppelten Zustände geben. Habe das ganze so gelöst:
Spoiler anzeigen
Local $Cards[32]
$Cards[0] = "KaroAs"
$Cards[1] = "KaroKoenig"
$Cards[2] = "KaroDame"
$Cards[3] = "KaroBube"
$Cards[4] = "Karo7"
$Cards[5] = "Karo8"
$Cards[6] = "Karo9"
$Cards[7] = "Karo10"
$Cards[8] = "HertzAs"
$Cards[9] = "HertzKoenig"
$Cards[10] = "HertzDame"
$Cards[11] = "HertzBube"
$Cards[12] = "Hertz7"
$Cards[13] = "Hertz8"
$Cards[14] = "Hertz9"
$Cards[15] = "Hertz10"
$Cards[16] = "PiekAs"
$Cards[17] = "PiekKoenig"
$Cards[18] = "PiekDame"
$Cards[19] = "PiekBube"
$Cards[20] = "Piek7"
$Cards[21] = "Piek8"
$Cards[22] = "Piek9"
$Cards[23] = "Piek10"
$Cards[24] = "KreuzAs"
$Cards[25] = "KreuzKoenig"
$Cards[26] = "KreuzDame"
$Cards[27] = "KreuzBube"
$Cards[28] = "Kreuz7"
$Cards[29] = "Kreuz8"
$Cards[30] = "Kreuz9"
$Cards[31] = "Kreuz10"
;Player1 6 Karten zuweisen
[/autoit] [autoit][/autoit] [autoit]Local $Player1[18]
$Player1[0] = $Cards[Random(0,31)]
Do
$Player1[1] = $Cards[Random(0,31)]
Until Not $Player1[0] == $Player1[1]
Do
$Player1[2] = $Cards[Random(0,31)]
Until not $Player1[2] == $Player1[0] AND $Player1[1]
MsgBox(0,"Cards of Player 1!",$Player1[0] & @CRLF & $Player1[1] & @CRLF & $Player1[2])
[/autoit]Habe zunächst nur mal testeshalber 2 Do-Schleifen und 3 Werte ausgelesen, jedoch verlässt er keine der Do-Schleifen, auch wenn der Zustand nicht gleich dem vorherigen zugewiesenen Wert ist.