Hallo Hikarihoshi,
Mein prob. ist das ich das deck mit hilfe eines Arrays und der kartenID machen wollte, also ein Array das mit 20 kartenIDs gefüllt wird. Keine Karte ist der wert 0 und die Karten haben einen wert von 1 - 100.
Meine frage ist wie kann ich es machen das ich die stückzahl der gleichen kartenID mit ausnahme der 0 auf 3x begrenzt ist, also jede karte max. 3x im Deck sein darf?
Und wenn es ok ist hätte ich dann noch etwas (meiner meinung nach) kniffligeres. Die Karten mit der kartenID 1-5 sind im Spiel besonders selten und nur je ein mal zu finden, aber der Spieler sollte auch nur 1 dieser 5 Karten in das Deck tun können. Die Karten 99 und 100 sind Spezielle karten die nicht in das deck dürfen.
würde mich sehr freuen wenn ihr mir helfen könntet, oder mir einen Link schicken könntet wo ich mich in die Thematik einlesen/schauen könnte.
Ich würde nicht ein Array mit 20 Karten verwenden, sondern jedem Spieler ein Array mit 99 Karten zuordnen.
var player0 = new Array();
player0[0] = [20,0]; // Spieler0[ID der Karte] = erlaubte Anzahl, vorhandene Anzahl
player0[1] = [1,0];
// ...
player0[6] = [3,0];
// ...
player0[98] = [3,0];
Nach jeder Veränderung änderst du den Wert vorhandene Anzahl.
Damit du nicht jedesmal über das ganze Array iterieren musst, kannst du die entsprechenden Anzahlen auch in eigenen Variablen speichern:
var player0-number-cards = 0,
player0-number-rare-cards = 0;
Bei jeder Veränderung des Decks prüfst du
// k sei gezogene Karte
if ( player0-number-cards > 20 ) // ungültiger Spielzug
if ( player0-number-rare-cards > 1 ) // ungültiger Spielzug
if ( player0[k][1] > player0[k][0] ) // ungültiger Spielzug
Bis demnächst
Matthias