Zdravím. Chcel by som sa spýtať, či by st
Vytvořte jednoduchou simulaci světa, ve kterém se pohybují roboti:
svět má podobu mřížky M x N
na některých políčkách je neprůchodná překážka (poloha překážek je generována náhodně)
robot zabírá jedno políčko
robot umí následující základní akce: pohyb směrem dopředu, otočení doleva, otočení doprava
robot nemůže vstoupit na pole s překážkou nebo jiným robotem
Naučte roboty pohybovat se a) náhodně, b) směrem k cílovému poli (stačí "naivní" implementace - robot se snaží jít "přímo", pokud narazí na překážku, tak se zasekne).
S využitím těchto funkcí implementujte "honičku" - jeden robot se pohybuje náhodně, ostatní jej pronásledují (pokud je dost robotů a dost dlouhá simulace, měli by jej "obklíčit" a znemožnit mu pohyb).
Umožněte vykreslení "trajektorie" robota (přes která pole se pohyboval).
Bonus: Udělejte "inteligentní" navigaci robota směrem k cílovému poli.
Pokyny a rady
Využijte objekty, nepoužívejte globální proměnné.
Je doporučeno definovat dvě třídy:
World - reprezentuje mřížku (rozměry, zdi), udržuje informaci o robotech, má metodu pro výpis, ...
Robot - reprezentuje robota, udržuje informaci o světě, ve kterém robot žije (World), poloze, směru, má metody především pro pohyb
Bude se vám hodit "seznam robotů".
Funkce pro odehrání hry bude obsahovat parametr, který obmedzí počet kol hry -> pokud by "honička" měla trvat príliš dlouho (málo robotů nebo prekážek)
Pokuste se minimalizovat "copy and paste kód".
Úlohu dobře rozložte na dílčí problémy. Při dobré dekompozici mají jednotlivé metody/funkce jen pár řádků kódu.
Pokud byste si s úlohou nevěděli rady, zkuste si ji pro začátek zjednodušit, např. ignorovat překážky, uvažovat pouze 1 robota, uvažovat pouze pohyb rovně, ...
Výstup by mal byť
^ . . . . . . # . #
. . # . # # . # . .
. . . . . . < < . .
. . . v . . . # v .
. . ^ . # . < < . #
A mal by pokračovať ďalej..nechce sa mi to tu rozpisovať, to je len pre predstavu. Môžete mi nejako pomôcť? :)