Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
talit:web:webapps:client [2025-02-05 06:36] – hof | talit:web:webapps:client [2025-04-13 10:47] (aktuell) – [Client-Side Vier Gewinnt] hof | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
## Client-Side Vier Gewinnt | ## Client-Side Vier Gewinnt | ||
- | [[wpde> | + | [[wpde> |
{{: | {{: | ||
Zeile 78: | Zeile 78: | ||
* oder weil keine freien Felder übrig sind | * oder weil keine freien Felder übrig sind | ||
* ... schaltet die Farbe des Spielers um. | * ... schaltet die Farbe des Spielers um. | ||
+ | |||
+ | Um den Code etwas zu strukturieren, | ||
+ | |||
+ | <code javascript> | ||
+ | /** Drops a piece in the given column and updates the game state accordingly. */ | ||
+ | function dropPiece(grid, | ||
+ | // Check if move is valid. | ||
+ | if (game.state != " | ||
+ | return; | ||
+ | } | ||
+ | // Compute the lowest empty row in the selected column. | ||
+ | let row = computeEmptyRow(game, | ||
+ | let cell = row * 7 + column; | ||
+ | // Update game state. | ||
+ | game.board[cell] = game.next; | ||
+ | // Check for winner / tie, will set game.state if game ended. | ||
+ | checkWinner(game, | ||
+ | // Swap active player | ||
+ | if (game.state == " | ||
+ | togglePlayer(game); | ||
+ | } | ||
+ | // Update the HTML view. | ||
+ | updateHtml(grid, | ||
+ | // Update game status area to reflect active player / winner / tie | ||
+ | updateStatus(status, | ||
+ | } | ||
+ | </ | ||