3.lo hacemos funcionar?
Vamos a ver algunas instrucciones que obviamente estan en ingles pero es muy facil.. por ejemplo:
paintWhite()
forward(2)
left()
forward(2)
left()
stopPainting()
forward(2)
left()
forward(2)
left()
a simple vista tenemos entendido que paintWhite()seria “pinte blanco” y los paréntesis() simplemente me hacen entender que le voy a decir cuanto y donde. Si pone forward(2) significaría “avance” cuanto? 2! Las instrucciones left y right son que realice un giro de 90° a izquierda o derecha SIN dar pasos. Solo giro, es decir no avanza o retrocede, te diste cuenta que por eso no llevan cantidad en el paréntesis?
Tarea:
a) Investigar el significado de los siguientes comandos: backward( n ), paintBlack(), right()
b) que es stopPainting()? En cada instruccion pasa algo con las mayusculas ?
Las expresiones booleanas
que son?
Son aquellas instrucciones que le permite al robot “decidir” si encuentra mas de una opción a realizar.
Las que nos facilita Robomind son:
frontIsObstacle(): verdadero si hay un obstáculo adelante.
frontIsClear(): verdadero si no hay obstáculo adelante.
frontIsBeacon(): verdadero si hay una baliza adelante.
frontIsWhite(): verdadero si hay pintura blanca adelante.
frontIsBlack(): verdadero si hay pintura negra adelante.
Lo mismo para left y right, reemplazando front por alguna de estas dos palabras.
¿que es una baliza? es e BEACON en ingles y es el dibujo que tenes en esta pagina y el robot la puede levantar! :)
Levantando balizas
nuestros sensores pueden detectar balizas en el camino. Si queremos levantarlas, una vez que estamos junto a ella utilizamos la instrucción pickUp(). Para soltarla en cambio, utilizaremos putDown().
right()
forward(2)
pickUp()
backward(4)
left()
putDown()
piensen..que hace el robot?
Estructuras
En ciertos momentos se hace necesario poder repetir un conjunto de instrucciones una determinada cantidad de veces, o ante alguna condición. Para ello, contamos con las siguientes estructuras de repetición:
repeat ( n )
{
instrucciones
}
Esta estructura repite n veces las instrucciones que se encuentran dentro de las llaves. Por ejemplo,
repeat (4)
{
forward(2)
left()
}
Realiza un cuadrado de borde 2 (sin pintar, desde ya).
Si en vez de un número n de veces, no indico nada entre los paréntesis del repeat, quedará haciendo el ciclo infinitamente, hasta que lo detenga. Además, podemos poner una estructura de repetición dentro de otra, realizando la repetición interna tanto veces como indique la externa. Por ejemplo:
paintWhite()
repeat()
{
repeat(4)
{
forward(1)
left()
}
left()
}
¿Qué hace este código?
Por otra parte, contamos con sensores que nos permiten detectar paredes, balizas, y pintura negra y blanca. Esto está representado en nuestro robot mediante expresiones booleanas, que no son más que funciones que nos devuelven verdadero o falso según se cumpla o no lo que preguntamos. Por ejemplo, frontIsObstacle() nos devuelve verdadero si adelante del robot hay un obstáculo, o falso en caso contrario. Estas expresiones booleanas podemos utilizarlas en la estructura repeatWhile de la siguiente manera:
repeatWhile (expresión booleana)
{
instrucciones
}
En este caso, las instrucciones se repetirán MIENTRAS la condición se cumpla. Veamos un ejemplo:
repeatWhile(frontIsClear())
{
forward(1)
}
left()
repeatWhile(frontIsClear())
{
forward(1)
}
Podemos ver que el robot avanza de a uno hasta que encuentra una pared, luego dobla hacia la izquierda y vuelve a avanzar de a uno hasta que se encuentra nuevamente con una pared. Habiendo sumado esta capacidad al robot, ya podemos resolver las actividades el miercoles en el cole! Felicitaciones! Ya estas programando!!
0 comentarios