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: `{" | ||