Přejít k hlavnímu obsahu

Minosův labyrint

Výzva: V řecké mytologii měl král Mínos propracovaný labyrint. V labyrintu sídlila nestvůra Minotaur. Hrdina Théseus se dobrovolně přihlásil, že do něj vstoupí, aby si promluvil s Minotaurem. Cestu klikatými chodbami bludiště si značkoval pomocí klubka provázku. Takže mohl snadno sledovat provázek zpět ke vchodu do labyrintu. V této aktivitě vytvoříte algoritmus pro přesun VR robota z počáteční pozice (zelený čtverec) do koncové pozice (červený čtverec) a pomocí VR pera vysledujete cestu k zaznamenání řešení mýtického labyrintu Minose na hřišti Wall Maze+.

  • Vyberte nástěnné bludiště + hřiště.
  • Stáhněte si soubor .vrmaze zsložky  nahrajte bludiště do hřiště.
  • Naprogramujte robota VR tak, se pohyboval z počáteční pozice (zelený čtvereček) do koncové pozice (červený čtvereček).
    • Použijte přední senzor vzdálenosti k navigaci VR robota pohybujícího se v bludišti, aniž by narazil do zdi.
    • Použijte pravý senzor vzdálenosti k určení směru výjezdu.
    • Pomocí senzoru oka dolů zkontrolujte červenou barvu, abyste zjistili, zda VR robot dorazil do koncové polohy.
    • Použijte blok [Navždy], aby se VR robot v bludišti neustále pohyboval, a nechte senzor směřující dolů neustále kontrolovat koncovou polohu, aby robota zastavil.
  • Pomocí VR pera obkreslete pohyblivou dráhu a zaznamenejte řešení labyrintu.
  • Přidejte do svého projektu poznámku, ve které vysvětlíte svou strategii prolomení Mínosova labyrintu.

Užitečné rady

  • Pro více informací o funkcích VR MazeBot ve VEXcode VR prosímna tento. 
  • Použijte blok Detekce oka dolů z kategorie Snímání k hlášení, zda senzor oka detekuje určitou barvu.

    Blok snímání barev VEXcode, který zobrazuje hodnotu 'DownEye detekuje červenou?'.

    • Odpovídající příkaz Pythonu:
    down_eye.detect(ČERVENÁ)

                 

  • Pomocí senzoru přední vzdálenosti určete, zda se VR robot blíží ke zdi.
  • Použijte porovnávací blok Less Than z kategorie Operátory k hlášení, zda je vzdálenost mezi VR robotem a nejbližším objektem menší než prahová hodnota, která určí, zda se VR robot blíží ke zdi.

    VEXcode Menší než blok obsahující Vzdálenost od bloku, která dohromady čte 'FrontDistance v mm < 200'.

    • Odpovídající příkaz Pythonu:
    front_distance.get_distance(MM) < 200
  • Použijte pravý senzor vzdálenosti k určení směru výjezdu.
  • Použijte porovnávací blok Greater Than z kategorie Operators k hlášení, zda je vzdálenost mezi VR robotem a nejbližším objektem větší než prahová hodnota pro určení směru odchodu.

    VEXcode Větší než blok obsahující blok Distance from, který dohromady přečte 'LeftDistance v mm > 300'.

    • Odpovídající příkaz Pythonu:
    left_distance.get_distance(MM) > 300
  • Použijte blok if then else z kategorie Control pro kontrolu, zda se VR robot blíží ke zdi, a spusťte kód pro provedení různých chování na základě booleovské podmínky.

    Prázdný VEXcode If then else blok, který čte 'if then, else'.

    • Odpovídající příkaz Pythonu:

      pokud podmínka:
      	splněno
      jinak:
      	splněno