49 lines
1.1 KiB
Markdown
49 lines
1.1 KiB
Markdown
|
||
## Ovládanie
|
||
|
||
- Pohyb: `W`, `A`, `S`, `D`
|
||
- Potvrdenie ťahu: medzerník
|
||
|
||
## Ukončenie hry
|
||
|
||
Hra končí, keď:
|
||
- jeden hráč získa 3 znaky v rade (vodorovne, zvisle alebo diagonálne),
|
||
- všetky polia sú zaplnené (remíza).
|
||
|
||
## Štruktúra a funkcie
|
||
|
||
### `GameState` – štruktúra hry:
|
||
- `board`: 2D pole pre hernú plochu
|
||
- `board_size`: veľkosť (2,3,4)
|
||
- `num_players`: počet hráčov (1,2,3)
|
||
- `symbols`: pole znakov hráčov (napr. 'X', 'O', 'a')
|
||
- `mode`: herný režim
|
||
- `current_player`: index aktuálneho hráča
|
||
- `moves_made`: počet ťahov
|
||
|
||
### Kľúčové funkcie:
|
||
- `init_game()`: Inicializácia hracieho stavu
|
||
- `draw_game()`: Vykreslenie stavu cez `world*`
|
||
- `handle_input()`: Interakcia s hráčom (ovládanie)
|
||
- `computer_move()`: Jednoduchá AI
|
||
- `check_winner()`: Detekcia výhry
|
||
|
||
## Použitie knižnice `world`
|
||
|
||
Použili sme nasledujúce funkcie z `world.h`:
|
||
- `world_init()` *
|
||
- `world_clear()` *
|
||
- `world_print()` *
|
||
- `world_read_key()` *
|
||
- `world_set_cursor()` *
|
||
- `world_end()` *
|
||
|
||
Všetky volania NCURSES boli spravené výhradne cez knižnicu `world`.
|
||
|
||
## Zdroje
|
||
- [Knižnica world](https://github.com/hladek/world)
|
||
- Vlastné znalosti
|
||
|
||
|
||
|