Capítol 2

Recollir i deixar

En Karel pot recollir perles del fons marí. També pot deixar una perla en qualsevol casella. En aquest capítol aprendrem tres instruccions noves: grab(), drop() i pearl_here().

La motxilla d'en Karel

En Karel porta sempre una motxilla. Quan recull una perla, la desa a la motxilla. Quan vol deixar una perla, la treu de la motxilla i la col·loca a la casella on és en aquell moment.

Recollir una perla: grab()

grab() fa que en Karel reculli la perla de la casella. Fixa't bé: no és la casella del davant, sinó on Karel es troba en aquell moment.

Si en Karel fa grab() en una casella on no hi ha cap perla, el programa s'atura i genera un missatge d'error. El motiu és que no es pot recollir allò que no existeix.

En aquest exemple en Karel avança fins a la perla i, un cop hi ha arribat, la recull:

Observa com la perla desapareix de la casella: en Karel l'ha recollit correctament.

Deixar una perla: drop()

drop() fa que en Karel tregui una perla de la motxilla i la deixi a la casella on és. De forma similar a grab(), aquesta deixarà la perla sobre la casella on es troba, i no sobre la que té al davant.

Si en Karel fa drop() però la motxilla és buida, el programa s'atura amb un error. No es pot deixar el que no es té.

Observa com en Karel recull la perla, avança, i la deixa en una altra casella:

La perla ha viatjat tres caselles cap a la dreta. En Karel és el seu transportista.

Els errors en un codi: no són fracassos

Quan en Karel intenta fer una instrucció que no és lògica — grab() en una casella buida, per exemple —, el programa s'atura i mostra un missatge d'error en la finestra inferior, que s'anomena «log».

Això ocorre molt sovint quan es programa codi informàtic. L'error indica exactament què ha passat i en quina línia del codi ha ocorregut. Es llegeix l'error, es corregeix el codi i es torna a provar.

Prova-ho: en l'exemple següent el codi té un error deliberat. En Karel intenta fer grab() en una casella buida. Executa'l i observa com surt un missatge d'error:

Has de modificar aquest codi d'exemple, de manera que no aparegui l'error. Pots tornar a intentar-ho tantes vegades com vulguis.

Exercici

Hi ha dues perles al fons marí. En Karel ha de recollir-les totes dues i portar-les a l'extrem dret de la fila del mig. Quan acabis, la motxilla d'en Karel ha de tenir dues perles i ell ha d'estar a la casella de destí.

Pista: hauràs de fer grab() dues vegades, cada cop a la casella correcta.