Lennart: doppelte Zufallszahl

Guten Abend,
ich arbeite gerade an einem kleinen Pokersimulator für die Schule. Mein Problem ist das ziehen von Karten die ja eigentlich schon gezogen wurden. Bei den jeweiligem Spielern treten dabei keine doppelten Karten auf aber vergleicht man die Karten die jeder auf der Hand hat miteinander, kommt es nicht selten vor das doppelte auftreten. Leider weiß ich nicht wo in meinem Code der Fehler steckt.

  
array1 = new Array();  
var Spieler = document.a.Spieler.value;  
var zufall;  
var durchgange = document.b.durchgange.value;  
for(var z = 1; z <= Spieler; z++)  
{  
for(var i = 0; i < durchgange; i++)  
{  
if(array1.length == 0)  
{  
if(document.box.cbox.checked == true)  
{  
array1[0] = box.karte1.value;  
array1[1] = box.karte2.value;  
}  
a = 1.5+12*(Math.random());  
a = Math.floor(a);  
  
b = 1.5 + 3*(Math.random());  
b = Math.floor(b);  
zufall = a+"."+b;  
array1.push(zufall);  
a = 1.5+12*(Math.random());  
a = Math.floor(a);  
  
b = 1.5 + 3*(Math.random());  
b = Math.floor(b);  
zufall = a+"."+b;  
}  
else  
{  
for (u = 0; u <= array1.length; u++)  
{  
if(array1[u] == zufall)  
{  
a = 1.5 + 12*(Math.random());  
a = Math.floor(a);  
  
b = 1.5 + 3*(Math.random());  
b = Math.floor(b);  
zufall = a+"."+b;  
u = 0;  
}  
}  
array1.push(zufall);  
}  
}  

Ich denke das in diesem Code-abschnitt der Fehler stecken müsste ich kanns mir nicht anders denken falls ich auch noch den Rest posten soll Bescheid sagen. Ich bedanke mich schon mal im vorraus
Grüße - Lennart

  1. Moin.

    Du solltest dir angewöhnen, Skriptblöcke vernünftig einzurücken - was du hier gepostet hast, ist nicht wirklich lesbar.

    Ansonsten ist mir nach kurzen Überfliegen des Codes auch nicht klar, wie genau du die Karten verteilst.

    Ich würde vorschlagen, du gehst wie beim echten Kartengeben vor: Du speicherst alle Karten in einem Array (dem Stapel), den du dann mischst (z.B. mit dieser shuffle-Funktion). Danach ziehst du die nacheinander Karten (z.B. mit pop()) und verteilst sie auf die Spieler. Da die Karten beim Verteilen vom Stapel genommen werden, ist eine doppelte Vergabe unmöglich.

    Christoph

    1. Ergänzend dazu, Lennart hat vielleicht auch nur ein Verständnisproblem. Die Frage liest sich für mich so als würde er lauter verschiedene Zahlen erwarten. Dem ist aber nicht so.
      Da bleibt dann wirklich nur vorheriges Mischen aller (!) Karten und dann der Reihe nach vom Stapel wegnehmen.