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ó recorre_costat() que faci avançar en Karel fins a la cantonada següent: mentre pugui avançar, si hi ha perla la recull i després avança. Quan ja no pot avançar, vol dir que ha arribat a una cantonada.
💡 Pista — quantes vegades?
Un rectangle té 4 costats. Si repeteixes 4 vegades recorre_costat() seguit d'un turn_left(), en Karel dona la volta completa i torna al punt de partida. No et preocupis per les perles de les cantonades: cada cantonada és també la primera casella del costat següent.