ZAP - Cvičenie č. 10 | Lab 10 (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 nadväzuje na predchádzajúcu hodinu a rozvíja program na riešenie bludiska (súbor ikvmarathon.cx) pre virtuálnu kravu pohybujúcu sa vo svete definovanom v Maze 1. Postupne sa dopĺňa funkcia SolveMaze, ktorá pomocou pomocných funkcií FindCow, FindFinish a ChangeDirection zisťuje pozíciu a smer kravy, nájde cieľ a v hlavnom cykle simuluje pohyb rovno až po nárazu na stenu, kedy sa zmení smer a do sveta sa vloží zodpovedajúca šípka. Rieši sa výpočet nasledujúcich súradníc podľa aktuálneho smeru a rozlišujú sa horizontálne a vertikálne zmeny smeru. Na záver sa rieši problém nekonečného cyklu v prípade neriešiteľného bludiska pomocou porovnania aktuálnej a predchádzajúcej prekážky, čo pri opakovanom náraze na stenu ukončí cyklus s indikáciou neúspechu (hodnota -1).
- - Nadväzuje sa na súbory ikvmarathon.cx a Maze 1 z predchádzajúceho cvičenia.
- - Implementuje sa funkcia SolveMaze, ktorá vracia počet zmien smeru.
- - Používajú sa pomocné funkcie FindCow a FindFinish na zistenie pozície kravy, jej smeru a cieľa.
- - V hlavnom cykle while sa počíta nasledujúca pozícia (nextX, nextY) podľa aktuálneho smeru.
- - Pri náraze na stenu sa volá ChangeDirection a do sveta sa vloží príslušná šípka (<, >, ^, v).
- - Ak je nasledujúca pozícia voľná, súradnice kravy sa aktualizujú na next pozíciu.
- - Porovnaním s predchádzajúcou prekážkou sa detekuje neriešiteľné bludisko a cyklus sa ukončí s hodnotou -1.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky