Escolar Documentos
Profissional Documentos
Cultura Documentos
directamente.
Descripcin de las estructuras del lenguaje de
programacin ofrece para definir el orden de
Estructuras de
programacin
Ver cmo algunos de los problemas pueden ser
abordados por writing scripts.
Programas de ejemplo
Learn how to create your own maps
Instrucciones bsicas
En cada dominio hay un nmero fijo de instrucciones bsicas que usted
puede utilizar para escribir un programa. Estas instrucciones solo pueden
usarse al escribir directamente el script. Para nuestro robot existen las
siguientes instrucciones bsicas:
Movimiento
adelante(n)
atrs(n)
izquierda()
derecha()
norte(n)
sur(n)
este(n)
oeste(n)
Pintar
pintarBlanco()
pintarNegro()
detenerPintar()
Tomar
tomar()
poner()
Come ()
Lanzar moneda
lanzarMoneda()
Ve
Izquierda
Delante
izquierdaEsObstacu
lo()
izquierdaEsClaro()
izquierdaEsBaliza(
)
Derecha
derechaEsObstacu
frenteEsObstacul lo()
o()
frenteEsClaro()
derechaEsClaro()
derechaEsBaliza(
frenteEsBaliza() )
frenteEsNegro()
izquierdaEsNegro()
)
derechaEsNegro()
Estructuras de programacin
Aqu encontrars las estructuras gramaticales que permiten definir el
comportamiento del robot:
Comentario
Bucles
Estructuras condicionales
Expresiones lgicas
Procedimiento
Final
Comentari
o
Bucles
repetir(n){...instrucciones...}
repite las instrucciones entre las {llaves} exactamente n
veces.
Ejemplo:
# un cuadrado de 2x2
repetir(4)
{
adelante(2)
derecha()
}
repetir(){...instrucciones...}
repite las instrucciones entre las {llaves} indefinidamente.
Ejemplo:
# avanza hacia adelante indefinidamente
# (aunque al final se quedar golpeando la pared)
repetir()
{
adelante()
repetirmientras(condicin){...instrucciones.
..}
repite las instrucciones entre las {llaves} siempre y cuando
la condicin se cumpla. La condicin debe ser siempre una
instruccin bsica de percepcin (consulta la seccin sobre
instrucciones bsicas) (por ejemplo frenteEsClaro())
Ejemplo:
# contina hacia adelante
# pero se para cuando no puede continuar
repetirMientras(frenteEsClaro)
{
adelante(1)
Interrupcin
Te permite interrumpir un bucle (por ejemplo:
repetir()seccin) y asi dejar de realizar las instrucciones
entre las llaves. El robot reanudar la realizacin de las
instrucciones que queden despus del la llave de cierre del
bucle.
Ejemplo:
# sigue hacia adelante, hasta que no pueda avanzar
ms
repetir()
{
si(frenteEsObstculo())
interrumpir
}
sino
{
adelante(1)
}
}
Ifstructures
si(condicin){...instrucciones...}
El robot realizar las instrucciones entre {llaves} si la
condicin se da. Si la condicin no se da, el robot seguir
realizando las instrucciones que se encuentren
inmediatamente despus de la llave de cierre del bucle. La
condicin debe ser una instruccin de percepcin (consulta
la seccin sobre instrucciones bsicas). (por
ejemplofrenteEsClaro())
Ejemplo:
# si ves pintura blanca a tu izquierda, pintar de
negro
si(izquierdaEsBlanco())
{
izquierda()
adelante(1)
pintarNegro()
detenerPintar()
hacia atras(1)
derecha()
}
si(condicin){...instrucciones...}sino{...in
strucciones...}
El robot realizar las instrucciones entre el primer par de
{llaves} si la condicin existe. Las instrucciones entre las
segundas {llaves} o bloque sino (segunda instruccin) no se
realizarn. Cuando la condicin no existe, el robot realizar
entonces las instrucciones del bloque sino (segunda
instruccin). Una vez que haya realizado una de las dos
instrucciones, continuar realizando las instrucciones que
se encuentren despus de la ltima llave. La condicin
debe ser una de las instrucciones bsicas
de percepcin(consulta la seccin de instrucciones bsicas)
(por ejemplofrenteEsClaro())
Ejemplo:
# si ves pintura blanca a la izquierda, pintar de
negro
# sino avanza unos pasos hacia adelante
si(izquierdaEsBlanco())
{
izquierda()
adelante(1)
pintarNegro()
detenerPintar()
hacia atras(1)
derecha()
}
sino
{
adelante(3)
}
Expresion
es
lgicas
Descripcin
&
repetirmientras(no frenteEsClaro() y
(izquierdaEsBlanco() o derechaEsBlanco())){
adelante(1)
}
si(lanzarMoneda() y no derechaEsBlanco())
{
derecha()
atras(1)
}
si(verdadero y falso){
# esta instruccion no se ejecuta nunca
adelante(1)
}
Procedimi
ento
Final
Final
Esta instruccin har que todo el programa se detenga
cuando este comando se lleve a cabo.
Ejemplo:
# parar despus de 5 pasos, o antes si encuentra una
baliza a la derecha
repetir(5)
{
adelante(1)
si(derechaEsBaliza())
{
final # detiene la ejecucin del
programa
}
}
# normal fin del programa
adelante(2)
derecha()
adelante(1)
derecha()
adelante(2)
atras(1)
derecha()
adelante(1)
detenerPintar()
Otro enfoque que muestra los mismos resultados es el siguiente script. Aqu se
repite el robot en movimiento hacia adelante hasta que no se ve la pared ms (lo
que debe ser la esquina que est buscando). A continuacin, el robot gira y se
mueve hacia adelante a la tierra en el lugar.
repetirMientras(izquierdaEsObstaculo()){
adelante(1)
}
izquierda()
adelante(1)
otro si(frenteEsObstaculo()){
fin
}
}
# Ir al inicio de la lnea
derecha()
adelante(8)
# iniciar el seguimiento
seguir()
otro si(derechaEsBlanco()){
derecha()
follow()
}
otro si(izquierdaEsBlanco()){
izquierda()
follow()
}
otro si(frenteEsObstaculo()){
#
#
#
#
regresar
}
}
si(frenteEsBaliza()){
tomar()
fin
}
}