Reptes

Repte 8 — El vigilant ★★ Intermedi

En Karel és un vigilant que patrulla el perímetre d'una illa rectangular. Comença a la cantonada inferior esquerra, mirant cap a l'Est. Ha de donar una volta completa a l'illa i tornar al punt de partida, seguint la vora exterior.
Al llarg del perímetre, algunes caselles tenen una perla. En Karel les ha de recollir totes durant la seva ronda.

La teva tasca: escriu un programa que funcioni per a qualsevol mida d'illa rectangular. El teu codi no pot dependre del nombre de caselles.
💡 Pista — la regla del vigilant
Defineix una funció pas_vigilant() que faci exactament un pas de la ronda: primer, si hi ha perla, recull-la; després, si pots avançar, avança; si no pots avançar, vol dir que has arribat a una cantonada: llavors, gira a l'esquerra.
💡 Pista — detectar el punt de partida
Per fer tota la volta sencera, pots repetir 4 vegades el pas_vigilant(), i sempre funcionarà, perquè un rectangles té 4 costats.