Es el código donde irán las instrucciones que seguirá Karel, en este caso, explicaré las instrucciones utilizando la sintaxis java.
Las instrucciones se escribe dentro de "program" y generalmente siguen el siguiente patrón: Instrucción();
class program { program () { move(); turnoff(); } }
Karel se moverá una vez por cada move.
class program { program () { putbeeper(); turnoff(); } }
Karel, si tiene beepers en su mochila, pondrá un beeper en la casilla donde está parado.
Karel, si está sobre un beeper, lo va a agarrar y lo va a guarder en su mochila.
class program { program () { pickbeeper(); turnoff(); } }
Karel girará a la izquierda una vez, y lastimosamente, no existe un turnright, por lo cual, se tendría que girar 3 veces a la izquierda.
class program { program () { turnleft(); turnoff(); } }
Será la última instrucción que seguirá Karel, donde se apagará y no podrá hacer otra instrucción luego de apagarse.
Sirve para repetir más de una vez una opción.
Por ejemplo, en vez de tener que escribir tres veces turnleft, para que Karel gire a la derecha, se puede poner de la siguiente forma para que repita la instrucción de girar a la izquierda tres veces seguidas:
class program { program () { iterate(3) turnleft(); turnoff(); } }
También puede usarse para que se repita un bloque de instrucciones, utilizando {}, poniendo dentro el bloque de instrucciones que se desea que se repita:
class program { program () { iterate(5) { pickbeeper(); move(); } turnoff(); } }
Así, Karel tomará un beeper del mundo y se moverá una casilla 5 veces.
En general, son funciones que sirven para hacer más complejo el código de Karel, ya que con estas se pueden hacer infinidad de cosas, ya que permitirán que el código no tenga que modificarse siempre cuando la posición y orientación inicial de Karel se modifique.
Es decir, que utilizando estas funciones, un mismo código servirá para que Karel cumpla un mismo propósito sin importar donde inicie, estas funciones son:
Significa que, si el frente de Karel está libre, realizará siempre o dejará de hacer alguna expresión o instrucción.
Significa que, si el frente de Karel está bloqueado, es decir, hay algún muro en frente de él, realizará siempre o dejará de hacer alguna expresión o instrucción.
Significa que, si la izquierda de Karel está libre, realizará siempre o dejará de hacer alguna expresión o instrucción.
Significa que, si la izquierda de Karel está bloqueada, es decir, hay algún muro a la izquierda de él, realizará siempre o dejará de hacer alguna expresión o instrucción.
Significa que, si la derecha de Karel está libre, realizará siempre o dejará de hacer alguna expresión o instrucción.
Significa que, si la derecha de Karel está bloqueada, es decir, hay algún muro a la derecha de él, realizará siempre o dejará de hacer alguna expresión o instrucción.
Significa que, si Karel está cerca (parado) de un conjunto de beepers, incluso que sea solamente uno, realizará o dejará de hacer una instrucción.
Significa que, si Karel no está cerca (parado) de un conjunto de beepers, realizará o dejará de hacer una instrucción.
Significa que, si Karel tiene uno o más beepers en su mochila, realizará o dejará de hacer una instrucción.
Significa que, si Karel no tiene ningún beeper en su mochila, realizará o dejará de hacer una instrucción.
Significa que, si Karel está mirando hacia el norte del mundo, realizará o dejará de hacer alguna instrucción.
Significa que, si Karel está mirando hacia el sur del mundo, realizará o dejará de hacer alguna instrucción.
Significa que, si Karel está mirando hacia el este del mundo, realizará o dejará de hacer alguna instrucción.
Significa que, si Karel está mirando hacia el oeste del mundo, realizará o dejará de hacer alguna instrucción.
Significa que, si Karel no está mirando hacia el norte del mundo, realizará o dejará de hacer alguna instrucción.
Significa que, si Karel no está mirando hacia el sur del mundo, realizará o dejará de hacer alguna instrucción.
Significa que, si Karel no está mirando hacia el este del mundo, realizará o dejará de hacer alguna instrucción.
Significa que, si Karel no está mirando hacia el oeste del mundo, realizará o dejará de hacer alguna instrucción.
El If indica que, si la función boleana resulta ser verdadera dentro de las condiciones de Karel dentro del mundo, realizará una instrucción o varias instrucciones una vez. En caso de ser falsa, no se realizarán las instrucciones, pero si se agrega Else, realizará otra serie de instrucciones en caso de ser falsa la función boleana
class program { program () { if(frontIsClear) { move(); turnleft(); } else { turnleft(); move(); } turnoff(); } }
Por ejemplo, si en el frente de Karel no hay ningún muro, se moverá y girará a la izquierda, pero si en el frente de Karel hay un muro, girará a la izquierda y se moverá.
El While, hace lo mismo que el if, pero mientras la función boleana sea verdadera, la serie de instrucciones se realizará infinitamente.
class program { program () { while(frontIsClear) { move(); turnleft(); } turnoff(); } }
Por ejemplo, en este caso, Karel se moverá y girará a la izquierda infinitamente hasta que la función boleana sea falsa, es decir, hasta que su frente esté bloqueada por un muro.
Hay que tener cuidado con el While, ya que en algunas ocasiones, puede que Karel termine en un ciclo infinito.
El &&, sirve para juntar varias funciones boleanas, y, en caso de utilizar un if o un while, todas las funciones boleanas tienen que ser verdaderas, porque en caso de que una sea falsa, todas serán falsas.
El ||, sirve para indicar un “o”, es decir, con que una función boleana sea verdadera, todas las funciones serán verdaderas, incluso, si una es verdadera y todas las demás son falsas, se harán las instrucciones.
El define se escribe siempre antes del program y después del class program, y sirve para crear nuevas instrucciones, por ejemplo, el turnright no existente.
class program { define turnright() { iterate(3) turnleft(); } program () { turnright(); turnoff(); } }
Gracias a esto, se pueden crear nuevas instrucciones no existentes dentro del programa de Karel, que podrán ser de gran ayuda