jueves, 15 de noviembre de 2007

Programa Karel Baches

Este problema de Karel es similar a una carrera de obstáculos, se necesita que karel pase por una zona donde hay baches, es decir huecos, Karel debe completar su recorrido cuando lleque al zumbador. Tambièn debe ir dejando zumbadores a cada paso.




class program {

void derecha(){
iterate (3){
turnleft();
}
}

void bache(){
while(frontIsClear){
putbeeper();
move();
}
turnleft();
while(frontIsClear){
putbeeper();
move();
}
turnleft();
while(rightIsBlocked){
putbeeper();
move();
}
derecha();
if(notNextToABeeper)
putbeeper();
move();

}

program() {
while(notNextToABeeper){
while (rightIsBlocked){
if (nextToABeeper){
turnoff();
}
putbeeper();
move();
}
derecha();
bache();
}
turnoff();
}

}

En este problema usamos dos subrutinas una para que Karel pueda girar a la derecha, y la otra para que pase por el bache. Hay varios ciclos repetitivos usando While lo que permite que Karel se adapte al mundo que le pongamos, es decir que podemos cambiar el tamaño de los baches y sus distancias y el mismo programa sin cambios pasara hasta llegar al zumbador de la meta.