jQuery von Kopf bis Fuß (German Edition)
und ihm die nötigen Parameter für den Namen der Karte (Zwei, Drei usw. bis zum Ass), die Farbe (Kreuz, Herz, Pik und Karo) und den passenden Wert übergeben. Asse haben den Wert “11”, “Zweien” den Wert “2” und so weiter. Bube, Dame und König haben jeweils den Wert “10”.
Lösung zur Übung
Ihre Datei meine_skripts.js sollte jetzt ein Array mit dem Namen
kartenspiel
enthalten, in der jede der 52 Karten definiert wird. Verwenden Sie dafür das bereits definierte
karte
-Objekt. Rufen Sie den Konstruktor für jede zu erzeugende Karte einmal auf.
Nicht unbedingt.
Wir müssen zwar auf die einzelnen Karten über ihren Index zugreifen, aber wir können etwas benutzen, das so ähnlich funktioniert wie die
each
-Methode aus Kapitel 3 . Damit können wir nacheinander auf jede Karte zugreifen, ohne dafür einen Berg Code schreiben zu müssen.
Es ist Zeit für einen Ausflug nach Schleifenhausen ...
Eine Aktion nochmal durchführen (und nochmal, und nochmal ...)
Für dieses Black-Jack-Spiel werden Sie immer wieder Karten aus Arrays holen und wieder in sie einfügen müssen. Glücklicherweise hält JavaScript mit seinen Schleifen genau das richtige Werkzeug für diese Situation bereit. Die noch bessere Nachricht ist, dass Sie dieses Verfahren in Kapitel 3 bereits angewandt haben. Dort haben Sie die jQuery-Methode
each
benutzt, um eine Schleife über mehrere ausgewählte HTML-Elemente auszuführen. In diesem Fall haben wir jedoch mehr Optionen, da JavaScript verschiedene Arten von Schleifen kennt. Jeder Typ hat eine etwas andere Syntax und ist für einen bestimmten Zweck am besten geeignet.
Die
for
-Schleife eignet sich gut, um Codeabschnitte mit einer bestimmten Anzahl von Wiederholungen auszuführen. Sie sollten diese Zahl kennen, bevor Sie die Schleife starten, ansonsten könnte sie ewig weiterlaufen. Sie kann abhängig von den Werten ihrer Variablen null oder mehrere Male ausgeführt werden.
Die
do...while
-Schleife führt Ihren Code einmal aus und läuft dann weiter, bis eine bestimmte Bedingung erfüllt ist. Das kann zum Beispiel der Fall sein, wenn ein Wert von wahr nach falsch wechselt (oder umgekehrt) oder ein Zähler im Code eine bestimmte Zahl erreicht hat. Eine
do...while-
Schleife kann ein oder mehrere Male ausgeführt werden.
Die Wiederholungsschritte einer
for
-Schleife:
Die Wiederholungsschritte einer
do...while
-Schleife:
for-Schleifen haben eine bestimmte Anzahl von Wiederholungen für den Code.
do...while-Schleifen führen Ihren Code einmal aus und wiederholen ihn dann so lange, bis eine bestimmte Bedingung erfüllt ist.
Jede Schleife besteht unabhängig von ihrem Typ aus vier eigenständigen Teilen:
Initialisierung
Sie passiert einmal beim Starten der Schleife.
Prüfbedingung
Damit wird überprüft, ob die Schleife anhalten oder den Code noch einmal ausführen soll. Das geschieht normalerweise, indem der Wert einer Variablen überprüft wird.
Aktion
Das ist der Code, der bei jedem Schleifendurchlauf wiederholt wird.
Aktualisierung
Dieser Code aktualisiert die von der Prüfbedingung verwendeten Variablen, um herauszufinden, ob der Code wiederholt werden soll.
Schleifen unter der Lupe
Die Anatomie einer Schleife
Wenn wir uns die verschiedenen Schleifentypen genauer ansehen, stellen wir fest, dass alle die vier Hauptelemente enthalten, allerdings in leicht unterschiedlicher Reihenfolge. Diese Reihenfolge spiegelt die wesentlichen Unterschiede zwischen Schleifentypen wider.
Frank: Im Moment befinden sich die Karten in einem Array. Aber wir müssen in der Lage sein, eine zufällige Karten zu ziehen, richtig?
Joe: Ja. Und zum Glück haben wir in Kapitel 3 bereits eine
zufallszahl_erzeugen
-Funktion geschrieben. Die gibt uns jedesmal, wenn wir eine Karte aus dem Array ziehen, eine zufällige Zahl.
Jim: Und was machen wir dann damit?
Frank: Wir müssen sie uns merken. Wir müssen die Werte der gezogenen Karten irgendwie zusammenzählen, um herauszufinden, ob die Spieler schon über 21 Punkte haben oder nicht.
Joe: Und noch aus einem anderen Grund. Wir können den Spielern dieselbe Karte ja nicht zweimal geben. Wir müssen also außerdem dafür sorgen, dass die gezogene Karte nicht schon einmal da war.
Jim: Können wir eine Variable benutzen, um uns die Karten zu merken?
Frank: Das klingt nach einem Job für eine Array-Variable ...
Joe: Gute Idee! Wir müssen nicht einmal die Karten selbst speichern, sondern nur ihre Indexwerte. Auf diese Weise können wir
Weitere Kostenlose Bücher