Created
August 8, 2012 12:29
-
-
Save joseanpg/3294776 to your computer and use it in GitHub Desktop.
RoboMind :: Leccion 2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
################################################################################## | |
# | |
# Comandos utilizados | |
# | |
# Ha resultado muy util clasificar los comandos basicos que entiende | |
# el robot en cuatro categorias | |
# | |
# - Comandos basicos mediante los cuales el robot realizara acciones muy sencillas | |
# | |
# avanza izquierda derecha | |
# pinta no_pintes | |
# | |
# - Comandos basicos mediante los cuales el robot nos informará sobre lo que | |
# observa justamente en frente | |
# | |
# despejado obstaculo baliza | |
# blanco | |
# | |
# - Comandos basicos para repetir las acciones de la categoría anterior | |
# | |
# repite repite_mientras | |
# | |
# - Comando basico mediante el cual enseñamos al robot a realizar nuevas | |
# acciones | |
# | |
# aprende_procedimiento | |
# | |
# Respecto a los operadores logicos no se ha explicado nada, simplemente | |
# se han ido introduciendo de forma "natural" cuando ha sido necesario. | |
# En este momento no considero que sea un objetivo fundamental su comprensión | |
# plena | |
# | |
# Se han obtenido resultados muy satisfactorios como el de este ejemplo | |
# | |
################################################################################## | |
# | |
# Underline vs. CamelCase | |
# | |
# Aunque tengan que pulsar un poco mas, tras varias experiencias | |
# ha funcionado mejor repetir_mientras, no_pintes, ... | |
# | |
################################################################################## | |
[Las tildes han sido omitidas deliberadamente] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# En la sesion anterior el siguiente procedimiento fue inicialmente llamado | |
# | |
# avanza_lo_que_puedas | |
# | |
# Posteriormente fue abreviado utilizando las iniciales | |
# | |
# alqp | |
# | |
# En esta sesión hemos decidido llamarle simplemente av | |
# | |
aprende_procedimiento av(){ | |
repite_mientras(despejado y no blanco){ | |
avanza(1) | |
} | |
} | |
# [Animamos a poner en marcha al robot pero ...] | |
# ¿Por que no hace nada ? | |
# Porque solamente estamos enseñando algo nuevo al robot, | |
# no le estamos pidiendo que haga nada más que aprender |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
aprende_procedimiento av(){ | |
repite_mientras(despejado y no blanco){ | |
avanza(1) | |
} | |
} | |
# Digamosle que vaya al rincon inferior izquierdo | |
izquierda | |
av() | |
izquierda | |
av() | |
izquierda |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
aprende_procedimiento av(){ | |
repite_mientras(despejado y no blanco){ | |
avanza(1) | |
} | |
} | |
izquierda | |
av() | |
izquierda | |
av() | |
izquierda | |
# Ahora comencemos a dibujar nuestra espiral | |
pinta | |
av() | |
izquierda | |
av() | |
izquierda | |
av | |
izquierda | |
av | |
# [Cada vez que ha añadido un izquierda ha ido ejecutando el programa. | |
# Interrumpo precisamente cuando llevamos cuatro segmentos] | |
# Observa que ha pintado un rectangulo. ¿Que te parece si le enseñamos este | |
# procedimiento que vamos a realizar frecuentemente? |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
aprende_procedimiento av(){ | |
repite_mientras(despejado y no blanco){ | |
avanza(1) | |
} | |
} | |
aprende_procedimiento rec(){ | |
pinta | |
repite(4){ | |
av() | |
izquierda | |
} | |
} | |
izquierda | |
av() | |
izquierda | |
av() | |
izquierda | |
# Adelante con el rectangulo! | |
rec() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
aprende_procedimiento av(){ | |
repite_mientras(despejado y no blanco){ | |
avanza(1) | |
} | |
} | |
aprende_procedimiento rec(){ | |
pinta | |
repite(4){ | |
av() | |
izquierda | |
} | |
} | |
izquierda | |
av() | |
izquierda | |
av() | |
izquierda | |
# En realidad van a ser varios rectangulos | |
rec() | |
rec() | |
rec() | |
rec() | |
rec() | |
# Estamos repitiendo nosotros. ¿Se te ocurre alguna alternativa? |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
aprende_procedimiento av(){ | |
repite_mientras(despejado y no blanco){ | |
avanza(1) | |
} | |
} | |
aprende_procedimiento rec(){ | |
pinta | |
repite(4){ | |
av() | |
izquierda | |
} | |
} | |
izquierda | |
av() | |
izquierda | |
av() | |
izquierda | |
repite(7){ | |
rec() | |
} | |
# Como ves tenemos dos procedimientos separados: ir al rincón y pintar la espiral. | |
# Vamos a enseñarselos al robot |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ENSEÑANDO AL ROBOT | |
aprende_procedimiento av(){ | |
repite_mientras(despejado y no blanco){ | |
avanza(1) | |
} | |
} | |
aprende_procedimiento rec(){ | |
pinta | |
repite(4){ | |
av() | |
izquierda | |
} | |
} | |
aprende_procedimiento ve_al_rincon(){ | |
izquierda | |
av() | |
izquierda | |
av() | |
izquierda | |
} | |
aprende_procedimiento espiral(){ | |
repite(7){ | |
rec() | |
} | |
} | |
# AUTOBOTS, ROLL OUT! | |
ve_al_rincon() | |
espiral() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Map file for RoboMind | |
# (Lines that start with '#' are comments) | |
# | |
# The tiles are: | |
# A..Z Tiles A through Z | |
# * Start | |
# | |
# Paint strokes kan be added in the according list | |
# by adding tuples of the form: ([color],[type],[x],[y]) | |
# | |
# [color] : w = white | |
# b = black | |
# [type] : . = single dot | |
# - = horizontal stroke to the right | |
# | = vertical stroke down | |
# [x] : integer horizontal position | |
# [y] : integer vertical position | |
paint: | |
{} | |
map: | |
CHHHHHHHHHHHHHHHHHHHHHD | |
GMFFFFFFFFFFFFFFFFFFFJI | |
GI GI | |
GI GI | |
GI GI | |
GI GI | |
GI GI | |
GI GI | |
GI @ GI | |
GI GI | |
GI GI | |
GI GI | |
GI GI | |
GI GI | |
GI GI | |
GLHHHHHHHHHHHHHHHHHHHKI | |
BFFFFFFFFFFFFFFFFFFFFFE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
### Control structures ### | |
If=si | |
Else=en_caso_contrario | |
Procedure=aprende_procedimiento | |
Repeat=repite | |
RepeatWhile=repite_mientras | |
Return=regresar | |
Break=truncar | |
End=fin | |
### Logical operators ### | |
And=& | |
Or=| | |
Not=~ | |
VarAnd=y | |
VarOr=o | |
VarNot=no | |
True=verdadero | |
False=falso | |
### Random ### | |
RandomBool=moneda | |
### Moving/rotating ### | |
MoveForward=avanza | |
MoveBackward=atras | |
RotateRight=derecha | |
RotateLeft=izquierda | |
MoveNorth=norte | |
MoveSouth=sur | |
MoveEast=este | |
MoveWest=oeste | |
## Seeing ### | |
LeftIsObstacle=izquierdaEsObstaculo | |
FrontIsObstacle=obstaculo | |
RightIsObstacle=derechaEsObstaculo | |
LeftIsClear=izquierdaEsClaro | |
FrontIsClear=despejado | |
RightIsClear=derechaEsClaro | |
LeftIsBlack=izquierdaEsNegro | |
FrontIsBlack=negro | |
RightIsBlack=derechaEsNegro | |
LeftIsWhite=izquierdaEsBlanco | |
FrontIsWhite=blanco | |
RightIsWhite=derechaEsBlanco | |
LeftIsBeacon=izquierdaEsBaliza | |
FrontIsBeacon=baliza | |
RightIsBeacon=derechaEsBaliza | |
### Painting ### | |
PaintWhite=pinta | |
PaintBlack=pintaNegro | |
StopPainting=no_pintes | |
### Grabbing ## | |
GripperGet=toma | |
GripperPut=suelta |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment