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
Pista: hauràs de fer grab() dues vegades, cada cop a la casella correcta.