Strategická: Popis API
This commit is contained in:
		
							parent
							
								
									8fe759b9ad
								
							
						
					
					
						commit
						9578edb331
					
				
					 1 changed files with 93 additions and 0 deletions
				
			
		
							
								
								
									
										93
									
								
								obsazovani.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								obsazovani.md
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,93 @@ | |||
| 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 ]] | ||||
| } | ||||
		Loading…
	
		Reference in a new issue