Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
krouzek:uloha:sachy1 [2023/10/17 20:33] – admin | krouzek:uloha:sachy1 [2023/11/15 20:54] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
---|---|---|---|
Řádek 14: | Řádek 14: | ||
* Můžete svůj program dělat v klasické stránce - výstup můžete rovnou " | * Můžete svůj program dělat v klasické stránce - výstup můžete rovnou " | ||
- | Můžeme program napsat v NodeJS a potom jeho výstup poslat do klienta (jako JSON). Klient potom výstup zobrazí. | + | **Nejrobustnější**: |
Tímto komplikovanějším řešením umožníme budoucí síťovou hru více hráčů proti sobě. Také nás to donutí striktně oddělit logiku (v nodejs projektu) od zobrazení a UI (ve stránce) | Tímto komplikovanějším řešením umožníme budoucí síťovou hru více hráčů proti sobě. Také nás to donutí striktně oddělit logiku (v nodejs projektu) od zobrazení a UI (ve stránce) | ||
- | Nejzajímavější možností pak je možnost rozdělit práci bez problémů na dva programátory = jeden dělá zobrazovadlo a klikadlo, druhý implementuje pravidla šachů - a shodnete se na nějakém rozhraní. | ||
- | ==== Client/ | + | Zajímavou možností pak je rozdělit práci bez problémů |
- | > Create an interface for a multiplayer chess game between the client (visualizing the game, allowing the players to select next move) and the server (implementing the chess game logic). RESTApi | + | |
- | + | ||
- | Poznámky: | + | |
- | * Všimněte si, že návrh vlastně neřeší že hrajeme šachy, ale věnuje se spíš správě herních sessions | + | |
- | * Pravděpodobně by podobná šablona šla použít | + | |
- | * Není řešena autentizace uživatelů, | + | |
- | * Problém který není řešen: endpoint //GET / | + | |
- | + | ||
- | ==== Endpoints ==== | + | |
- | + | ||
- | 1. **Create a New Game** | + | |
- | - Endpoint: `POST / | + | |
- | - Description: | + | |
- | - Request: None | + | |
- | - Response: `{" | + | |
- | + | ||
- | 2. **Get Game State** | + | |
- | - Endpoint: `GET / | + | |
- | - Description: | + | |
- | - Request: None | + | |
- | - Response: Detailed game state JSON | + | |
- | + | ||
- | 3. **Make | + | |
- | - Endpoint: `POST / | + | |
- | - Description: | + | |
- | - Request: `{ " | + | |
- | - Response: `{" | + | |
- | + | ||
- | 4. **List Active Games** | + | |
- | - Endpoint: `GET / | + | |
- | - Description: | + | |
- | - Request: None | + | |
- | - Response: List of active game objects | + | |
- | + | ||
- | 5. **Join a Game** | + | |
- | - Endpoint: `POST / | + | |
- | - Description: | + | |
- | - Request: `{ " | + | |
- | - Response: `{" | + | |
- | + | ||
- | 6. **Resign from the Game** | + | |
- | - Endpoint: `POST / | + | |
- | - Description: | + | |
- | - Request: None | + | |
- | - Response: `{" | + | |
+ | Vygenerovaný příklad takového klient-server rozhraní najdete na konci stránky. | ||
==== Data Structures ==== | ==== Data Structures ==== | ||
Řádek 246: | Řádek 201: | ||
</ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== Client/ | ||
+ | > Create an interface for a multiplayer chess game between the client (visualizing the game, allowing the players to select next move) and the server (implementing the chess game logic). RESTApi | ||
+ | |||
+ | Poznámky: | ||
+ | * Všimněte si, že návrh vlastně neřeší že hrajeme šachy, ale věnuje se spíš správě herních sessions | ||
+ | * Pravděpodobně by podobná šablona šla použít na libovolnou tahovou hru | ||
+ | * Není řešena autentizace uživatelů, | ||
+ | * Problém který není řešen: endpoint //GET / | ||
+ | |||
+ | ==== Endpoints ==== | ||
+ | |||
+ | 1. **Create a New Game** | ||
+ | - Endpoint: `POST /api/games` | ||
+ | - Description: | ||
+ | - Request: None | ||
+ | - Response: `{" | ||
+ | |||
+ | 2. **Get Game State** | ||
+ | - Endpoint: `GET / | ||
+ | - Description: | ||
+ | - Request: None | ||
+ | - Response: Detailed game state JSON | ||
+ | |||
+ | 3. **Make a Move** | ||
+ | - Endpoint: `POST / | ||
+ | - Description: | ||
+ | - Request: `{ " | ||
+ | - Response: `{" | ||
+ | |||
+ | 4. **List Active Games** | ||
+ | - Endpoint: `GET /api/games` | ||
+ | - Description: | ||
+ | - Request: None | ||
+ | - Response: List of active game objects | ||
+ | |||
+ | 5. **Join a Game** | ||
+ | - Endpoint: `POST / | ||
+ | - Description: | ||
+ | - Request: `{ " | ||
+ | - Response: `{" | ||
+ | |||
+ | 6. **Resign from the Game** | ||
+ | - Endpoint: `POST / | ||
+ | - Description: | ||
+ | - Request: None | ||
+ | - Response: `{" | ||