Reptes
Repte 13 — El punt mig ★★★ Avançat
El món és un passadís buit de longitud desconeguda (sempre ≥ 1).
En Karel porta 2 perles a la motxilla i ha de deixar
exactament una perla al punt mig del passadís.
Si la longitud és imparella, la perla ha de quedar al centre exacte. Si és parella, s'accepta qualsevol de les dues caselles centrals.
La restricció clau: el teu codi no pot saber d'entrada quantes caselles té el passadís. Ha de funcionar per a qualsevol longitud.
Si la longitud és imparella, la perla ha de quedar al centre exacte. Si és parella, s'accepta qualsevol de les dues caselles centrals.
La restricció clau: el teu codi no pot saber d'entrada quantes caselles té el passadís. Ha de funcionar per a qualsevol longitud.
💡 Pista — dos punters que s'aproximen
Imagina que tens un marcador a cada extrem del passadís.
Si fas avançar el marcador dret un pas cap al centre, i el marcador
esquerre un pas cap al centre, i repeteixes fins que es troben…
a quina casella coincidiran?
En Karel pot usar
En Karel pot usar
drop() per deixar una perla com a
marcador i grab() per recollir-la i traslladar-la.
Les perles de la motxilla fan d'«eines de mesura», no de decoració.
💡 Pista — la funció auxiliar
Et donem una funció que pot ser molt útil per moure't fins a un
marcador:
camina_fins_perla() avança pas a pas fins que
en Karel sigui damunt d'una perla. Pensa com pots usar-la per tornar
al marcador esquerre o al marcador dret en cada iteració.