Combinant condicions
Aprèn a fer que en Karel prengui decisions més intel·ligents comprovant diverses coses al mateix temps gràcies als operadors lògics.
Més d'una condició alhora
Fins ara hem vist com fer que en Karel actuï segons una única condició. Però de vegades necessitem que en Karel comprovi dues o més coses alhora abans de moure's o actuar per no cometre un error mortal.
Per fer-ho, podem combinar condicions utilitzant els operadors: and (i), or (o), i not (no).
and: Es compleix només si totes dues condicions són certes alhora.or: Es compleix si almenys una de les condicions és certa.not: Serveix per comprovar el contrari (per exemple,not front_is_clear()vol dir que tens un obstacle al davant).
Exemple 1: L'operador "and" (Aturar-se a temps)
Imagina que volem que en Karel avanci només mentre camini sobre una estora de perles. S'ha d'aturar en sec quan les perles s'acabin. Si fem servir while pearl_here(): move(), en Karel avançarà molt bé, però... i si la catifa arriba fins a la paret? En Karel agafarà embranzida i xocarà!
Per evitar-ho, li hem d'exigir dues coses alhora: "Mentre tinguis una perla sota teu I el teu davant estigui lliure, avança". Així no xocarà mai.
Exemple 2: L'operador "or" (Doble detecció)
L'operador or (o) ens serveix per reaccionar quan passa una cosa o en passa una altra. En aquest exemple, en Karel està patrullant el passadís. Li direm: "En cas que trepitgis una perla o bé si tens davant un obstacle, has d'enviar una senyal d'alerta, que serà girar sobre tu mateix."
Exercici: El Cercador Intel·ligent
Un cop el bucle s'aturi (ja sigui perquè ha trobat la perla o perquè ha topat amb la roca), fes servir un
if per agafar la perla (només si n'hi ha una, és clar!).
Pista: Al bucle while hauràs de combinar not pearl_here() amb and front_is_clear().