Reptes

Repte 10 — El detector ★★★ Avançat

En Karel avança per un passadís horitzontal, al llarg del qual hi ha petits forats, que són obertures d'una sola casella cap al Nord o cap al Sud. En alguns forats hi ha una perla, en d'altres no..

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
Escriu un programa que funcioni per a qualsevol longitud de corredor i qualsevol distribució de forats i de perles.
💡 Pista — com detectar una alcova?
Com que un forat és una obertura lateral, pots fer servir les instruccions: left_is_clear() o right_is_clear().
Quan detectis un forat, entra-hi, comprova si hi ha perla (en aquest cas, l'agafes), i torna al corredor.
💡 Pista — explora_nord() i explora_sud()
Defineix dues funcions que entrin al forat, recullin la perla si n'hi ha, i retornin en Karel al corredor mirant Est.
💡 Pista — if separats, no elif
A cada casella, en Karel ha de comprovar si hi ha forat al nord i també si hi ha forat al sud. Les dues comprovacions són independents: una casella podria tenir obertura als dos costats. Per tant, necessites dos if separats, i no seria bona idea fer servir un elif, en aquest cas.