ZAP - Cvičenie č. 4 | Lab 4 (2021/2022)
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Cvičenie sa venuje poslednej úlohe s robotom Karlom, kde je cieľom postupne prejsť celým svetom (mapa Kolektor) a pozbierať všetky značky. Vysvetľuje sa rozdelenie problému na dve časti – zbieranie značiek na aktuálnej pozícii pomocou cyklu while so senzorom beepersPresent a systematický prechod svetom po riadkoch pomocou pomocnej funkcie runMile. Postupne sa odhaľuje neefektívnosť jednoduchého riešenia s opakovaním kódu a podmienkami if pre zastavenie pri stene, preto sa navrhuje vytvorenie samostatnej funkcie up(), ktorá rieši presun o riadok vyššie vrátane korektného ukončenia programu cez return pri narazení na stenu. Súčasťou riešenia je aj pomocná funkcia turnToNorth, ktorá zabezpečí jednotnú orientáciu robota bez ohľadu na jeho pôvodné natočenie. Dôraz sa kladie na prehľadnosť, znovupoužiteľnosť kódu a používanie makier pre nastavenie rýchlosti robota.
- - Setup cvičenia: kopírovanie Makefile a stiahnutie máp Kolektor, Kolektor2 a Multiplier
- - Definícia pomocných funkcií turnRight a turnAround pomocou opakovaného volania turnLeft
- - Použitie makra SPEED a funkcie setStepDelay na vizuálne rozlíšenie otočení a pohybu
- - Funkcia pickAll zbiera všetky značky na pozícii pomocou cyklu while s beepersPresent
- - Funkcia runMile zabezpečuje beh po riadku až po stenu pomocou frontIsClear
- - Problém s duplicitným kódom a podmienkami if rieši nová funkcia up(), ktorá zabezpečí prechod o riadok vyššie a ukončenie programu cez return pri stene
- - Funkcia turnToNorth zjednocuje orientáciu robota pred prechodom do ďalšieho riadku
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky