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.
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:
Quan detectis un forat, entra-hi, comprova si hi ha perla (en aquest cas, l'agafes), i torna al corredor.
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.