Repte 10 — El detector

Reptes

Repte 10 — El detector ★★★ Avançat

En Karel patrulla un corredor horitzontal. Al llarg del corredor hi ha alcoves (obertures d'una sola casella cap al Nord o cap al Sud). Algunes alcoves contenen una perla; d'altres estan buides.

La missió d'en Karel: recórrer el corredor d'un extrem a l'altre i recollir les perles de dins de totes les alcoves, independentment de si l'alcova s'obre cap al Nord o cap al Sud.

La teva feina: escriu un programa que funcioni per a qualsevol longitud de corredor i qualsevol distribució d'alcoves.
💡 Pista — com detectar una alcova? Una alcova és una obertura lateral: left_is_clear() (nord) o right_is_clear() (sud) a la casella actual. Quan en detectes una, entra-hi (gira + avança), comprova si hi ha perla, i torna al corredor.
💡 Pista — explora_nord() i explora_sud() Defineix dues funcions que entrin a l'alcova, recullin la perla si n'hi ha, i retornin en Karel al corredor mirant Est. La postcondició ha de ser exactament la mateixa que la precondició: Karel al corredor, mirant Est, a punt per continuar.
💡 Pista — if separats, no elif A cada casella, en Karel ha de comprovar si hi ha alcova al nord i també si hi ha alcova al sud. Les dues comprovacions són independents: una casella podria tenir obertura als dos costats. Per tant, necessites dos if separats, no un elif.