Anonymní profil Darts – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Darts – Programujte.comAnonymní profil Darts – Programujte.com

 

Příspěvky odeslané z IP adresy 78.45.143.–

Darts
Python › Naháňačka robotov-pomoc
9. 12. 2016   #214004

#1 Darts
Poznámka: Stačí iba nejaký začiatok, kde sa implementuje class World plus nejaké nadviazanie na class Robots, ostatok by som mal už nejako dorobiť, len jednoduchio neviem rozmýšľať v súvislosti s objektmi, resp. v živote som sa ich neučil :)

Darts
Python › Naháňačka robotov-pomoc
9. 12. 2016   #214003

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ť? :)

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý