Search
Třída Map reprezentuje bludiště (no, jeho mapu). Mapa je povinným vstupním argumentem všech prostředí poskytovaných modulem kuimaze2 (SearchProblem, MDPProblem, RLProblem).
Map
kuimaze2
S výjimkou vytváření těchto prostředí byste nikdy neměli mít potřebu pracovat s instancí třídy Map přímo. Třída poskytuje jednotlivým prostřědím informace o rozměrech mapy, o významu jednotlivých políček na mapě (zda jsou to zdi nebo volná políčka, zda je to startovní stav nebo některý z cílových stavů, zda je možný přechod z jedné pozice na jinou, atd.).
Mapu lze reprezentovat/specifikovat více způsoby. V kuimaze2 se používají dva:
Význam znaků a barev je následující:
.
#
S
G
D
Mapu lze vytvořit z víceřádkového řetězce pomocí metody Map.from_string():
Map.from_string()
>>> from kuimaze2 import Map >>> MAP = """ S#.G .D.D .... """ >>> m = Map.from_string(MAP) >>> m.width 4 >>> m.height 3 >>> m.start State(r=0, c=0) >>> m.goals {State(r=0, c=3)} >>> m.dangers {State(r=1, c=1), State(r=1, c=3)}
Mapu lze vytvořit z obrázku pomocí funkce map_from_image:
map_from_image
from kuimaze2.map_image import map_from_image map = map_from_image("../maps/normal/normal2.png")