Gewusst wie: vergleichen von Elementen in einem array (javascript)
Entschuldigt, wenn dies klingt sehr einfach, aber ich bin ein total Neuling, wenn es um Programmierung geht (ich versuche mein bestes um besser zu werden, obwohl!)
Ich mache einen einfachen höheren oder niedrigeren Kartenspiel, mit javascript in die der Benutzer erraten, ob die nächste Karte höher oder niedriger als die aktuelle Karte angezeigt.
Ich derzeit haben eine Reihe von 52 Karten & ich bin mit Mathe.random nach dem Zufallsprinzip generieren eine Karte aus dem array.
Was ich will, ist zum Vergleich der Wert von zwei Karten, aber ich bin mir nicht sicher wie Sie gehen über es. Ich habe das Gefühl, es könnte bedeuten, IndexOf, aber ich bin mir nicht sicher.
Danke ein million & tut mir Leid, wenn das ist off topic, oder ein Duplikat!
Hier ist mein array, wenn es hilft.
function randomCard()
{
var cardArray = ["Club0.jpg","Club1.jpg","Club3.jpg","Club3.jpg","Club4.jpg","Club5.jpg","Club6.jpg","Club7.jpg","Club8.jpg","Club9.jpg","Club10.jpg","Club11.jpg","Club12.jpg","Diamond0.jpg","Diamond1.jpg","Diamond2.jpg","Diamond3.jpg","Diamond4.jpg","Diamond5.jpg","Diamond6.jpg","Diamond7.jpg","Diamond8.jpg","Diamond9.jpg","Diamond10.jpg","Diamond11.jpg","Diamond12.jpg","Heart0.jpg","Heart1.jpg","Heart2.jpg","Heart3.jpg","Heart4.jpg","Heart5.jpg","Heart6.jpg","Heart7.jpg","Heart8.jpg","Heart9.jpg","Heart10.jpg","Heart11.jpg","Heart12.jpg","Spade0.jpg","Spade1.jpg","Spade2.jpg","Spade3.jpg","Spade4.jpg","Spade5.jpg","Spade6.jpg","Spade7.jpg","Spade8.jpg","Spade9.jpg","Spade10.jpg","Spade11.jpg","Spade12.jpg"];
var pickCard = cardArray[Math.floor(Math.random() * cardArray.length)];
document.getElementById("card").src = pickCard;
}
- Haben Sie etwas versuchen ?
- Kann man den code hast du bisher?
- Ich bin einfach komplett stecken & habe keine Ahnung, wie gehen über it. Tut mir Leid, ich versuche normalerweise, und versuchen, Dinge, die mich die erste, aber ich bin sehr verwirrt. Sorry!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, das problem hier ist nicht, dass Sie nicht haben, ein Verständnis von arrays und Schleifen, aber wie der Rahmen für Ihre Frage richtig, bevor Sie beginnen. Derzeit haben Sie die folgenden:
Und es Sie machen Ihr Leben viel schwieriger, für sich selbst, weil die Durchführung einer numerischen Vergleich auf diese array-Elemente - zwar nicht unmöglich - wäre mit regex test, dass Sie wahrscheinlich nicht ganz bereit für noch.
Wenn Sie statt dessen sagte: "ich habe die 4 Farben der Karten, und die Karten haben einen Wert von 1 - 13 (11 a Buchse bis zu 13 König, Asse niedrig), dann können Sie beginnen zu verstehen, die problem-Bereich besser.
Lassen Sie uns beginnen Sie, indem Sie das deck in vier Farben, mit 14 Karten.
Wir brauchen, um die Namen der Farben in einem separaten array, so können wir auf das Objekt zugreifen.
Weiter
memo
ist wichtig. Da wir nicht wollen, um eine identische Karte auf den einzelnen ziehen, die wir brauchen, um zu notieren, welche Karten sind bereits ergriffen worden;memo
ist ein speichern der gewählten Karten, die wir Referenz.Nun für die Funktion
drawRandomCard
. Es dauert eine zufällige Farbe aus unserer Farbe-array und eine Zahl aus dem array der ausgewählten Farbe. Wenn die Karte inmemo
wir einmal ziehen, sonst werden wir es hinzufügen, ummemo
und wieder die Karte. Da wir jedoch noch ausgeführt werden soll-Vergleich auf die Werte, die wir gehen, um ein array zurückgeben, das erste element ist der Anzug, das zweite den Wert.Beispiel:
Testen der Werte, vergleichen der zweiten Werte der array-gegeneinander:
Dann, wenn Sie unbedingt wollen, können Sie den Wert dieser Variablen, um was auch immer Bilder, die Sie brauchen, um zu laden mit
join
Zusammenführen der Karte von array-Elementen zusammen.Oder:
Fiddle
Ich würde so etwas wie:
Wenn Sie wollen, dass einmal eine Karte gezogen wurde, kann nicht erneut ausgewählt werden (wie @MackieeE sagte), ersetzen
mit
um zu entfernen abgeholt Karte von
cardArray
.Dieser wird der Wert aus der Karte die image-Zeichenfolge, wenn
card="Club10.jpg"
:Zurück:
Beispiel:
card.match(/\d/g)
würde nicht funktionieren.card.match(/\d+/g)
die funktioniert.