lunes, 17 de enero de 2011

Condicionales en el mundo de Karel

Karel es un robot, para que éste pueda moverse por su mundo es importante que primero le demos una serie de instrucciones y qu con base a esta él pueda avanzar sin tener necesidad de decirle que delnte hay una pared o que a lado hay un zumbador. Para esto se utilizan unos condicionales: "if, if else,while".
 
 if
La condicional puede ser verdadera o falsa, si la condicional es verdadera se ejecuta la intrucción.
 
if (condicional) . {bloque condicional}
instrucción {bloque de instrucciones}

if (frontIsClear || nextToABeeper)
{more();
turn left();}

if else
Si la condicional es verdadera se ejecuta la instrucción 1. Si la condicional es falsa se ejecuta la instrucción 2.

if (condicional) {bloque condicional}
instrucción1 {bloque de instrucciones1}
else instrucción 2 {bloque de instrucciones2}

if (frontIsClear)
move();
else turnleft();

while
Esta estructura de repetición le permite al programador especificar las veces que se repita una acción mientras una condición se mantenga verdadera.

while (condicional) {bloque condicional}
intrucción {bloque de instrucciones}

while (frontIsClear)
move();

Otras instrucciones:
frontIsClear: Es posible si no se encuentra ninguna pared enfrente.
frontIsBlocked: Si existe una pared enfrente.
leftIsClear: Si en el lado izquierdo no se encuentra pared alguna.
leftIsBlocked: Si en el lado izquierdo existe pared.
rightIsClear: Si en el lado derecho se encuentra pared alguna.
rightIsBlocked: Si en el lado derecho existe pared.
nextToABeeper: Si existe algún beeper en donde karel esta parado.
NotnextToABeeper: Si no existe beeper donde karel esta parado.
facingNorth: Si karel voltea hacia el norte
NotfacingNorth: Si karel no voltea hacia el norte.
facingSouth: Si karel voltea hacia el sur.
NotfacingSouth: Si karel no voltea hacia el sur.
facingEast: Si karel voltea hacia el este.
NotfacingEast: Si karel no voltea hacia el este.
facingWest: Si karel voltea hacia el oeste.
NotfacingWest: Si karel no voltea hacia el oeste.
anyBeepersInBeeperBag: Si existe algún beeper en beeper bag.
noBeepersInBeeperBag: Si no existe ningún beeper en beeper bag.