Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
ksk_ef:web:apps:client [2024-08-11 07:50] – hof | ksk_ef:web:apps:client [2024-08-11 08:14] (aktuell) – hof | ||
---|---|---|---|
Zeile 5: | Zeile 5: | ||
{{: | {{: | ||
- | ### Auftrag Struktur & Formatierung | + | ### Auftrag |
Erstelle HTML & CSS, um ein TicTacToe-Spiel darzustellen: | Erstelle HTML & CSS, um ein TicTacToe-Spiel darzustellen: | ||
Zeile 22: | Zeile 22: | ||
* Mobile funktioniert gut ([[https:// | * Mobile funktioniert gut ([[https:// | ||
* Halt, nicht einfach im Internet abschreiben! | * Halt, nicht einfach im Internet abschreiben! | ||
+ | |||
+ | ### Auftrag B: Spiel-Logik | ||
+ | |||
+ | Das Ziel dieses Auftrags ist, dass zu zweit im Browser TicTacToe gespielt werden kann. Dazu nutzen wir [[..:js]]. | ||
+ | |||
+ | Jeder `button` benötigt einen Click-Handler, | ||
+ | |||
+ | Der Click-Handler: | ||
+ | * überprüft, | ||
+ | * setzt das Feld auf `X` oder `O` | ||
+ | * einerseits muss der Inhalt des Buttons gesetzt werden, damit der Wert im HTML angezeigt wird. | ||
+ | * andererseits setzen wir ein Attribut `data-state`, | ||
+ | * ... überprüft ob das Spiel zu Ende ist | ||
+ | * entweder, weil ein Spieler gewonnen hat, | ||
+ | * oder weil keine freien Felder übrig sind | ||
+ | * ... schaltet die Farbe des Spielers um. | ||
+ | |||
+ | Um die Darstellung des Spiels zu ändern, setzen wir den Text des Buttons. Um die Spiellogik zu betreiben, speichern wir den Zustand zudem in einem Attribut `data-state`: | ||
+ | <code javascript tictactoe.js> | ||
+ | let color = ' | ||
+ | button.innerText = color; | ||
+ | button.setAttribute(' | ||
+ | </ | ||
+ | |||
+ | In [[..: | ||
+ | |||
+ | <code css tictactoe.css> | ||
+ | button[data-state=" | ||
+ | background-color: | ||
+ | } | ||
+ | button[data-state=" | ||
+ | background-color: | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Für Benachrichtigungen (z.B. über das Ende des Spiels) kann man die Funktion `alert(message)` nützen, die ein Browser-Popup anzeigt. Schöner ist es, einen Bereich im HTML zu definieren, der Meldungen anzeigt. | ||
<nodisp 2> | <nodisp 2> | ||
++++Hinweise| | ++++Hinweise| | ||
- | * [[ef_informatik: | + | * [[ef_informatik: |
* [[https:// | * [[https:// | ||
++++ | ++++ | ||
</ | </ |