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.
 
 
 
 
 

1.5 KiB

Obsazování území

API

Stav:

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

{
	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 }