You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
1.5 KiB

Obsazování území
================
API
---
Stav:
```json
{
round: <int> # Kolikáté je aktuální kolo (na počátku 0)
map: [[{
home_for_team: <Optional[int]>
occupied_by_team: <Optional[int]>
hill: <bool>
members: [{
type: "soldier" # Pro budoucí rozšiřování
team: <int>
id: <int> # Unikátní číslo v rámci týmu
reaming_rounds: <int> # vždy > 0
}]
}]]
```
Je zaručeno, že domeček mají uprostred mapy
Na zvážení: Chceme říct, že aktuální tým == 0 (a přečíslovávat) nebo jim někde posílat číslo týmu
Tah:
```json
{
members: [
id: <int>
action: <Optional[str]>
# None -> čekej
# "left", "right", "up", "down"
]
}
```
Odpověď na tah:
```
{
status: "ok"
} # Vše v pořádku
nebo
{
status: "warning"
members: [ # seznam osob s chybou/varováním
id: <int>
description: <str>
]
} # Tah jako celek se provede, chyba jen u některých osob
nebo
{
status: "error"
description: <str>
} # Chyba celého tahu (např. nevalidní json, obsahuje povinné hodnoty ...)
nebo
{
status: "too-late"
}
```
Interní reprezentace
====================
Metadata
```
{
# statické pro celou hru
teams_height: <int> # Počet týmů v mřížce
teams_width: <int>
height_per_team: <int> # vzdálenosti startovních ploch
width_per_team: <int>
# S možnou změnou
initial_reaming_rounds: <int>
born_per_round: <List[int]> # pro každý tah počet, pokud je kratší, uvažujeme cyklicky
}
```
Stav:
{
map: [[ jako v API ]]
}