Órdenes
| Comando | Qué hace |
| avanzar() | Da un paso hacia donde mira. Truena si hay pared. |
| girar_izquierda() | Gira 90° a la izquierda sin moverse de casilla. |
| girar_derecha() | Gira 90° a la derecha sin moverse de casilla. |
| recoger() | Levanta la gema o la llave de la casilla actual. |
| soltar() | Deja una gema de la mochila donde está parado. |
| abrir_puerta() | Abre la puerta de enfrente. Necesita una llave. |
| pintar() | Marca la casilla actual. |
| decir(algo) | Virgo lo dice en un globo. Sirve para reportar resultados. |
Preguntas
| Comando | Qué contesta |
| hay_pared() | ¿Hay pared justo enfrente? |
| hay_pared_derecha() | También hay_pared_izquierda() y hay_pared_atras(). |
| hay_gema() | ¿Hay una gema en esta casilla? |
| color_gema() | El color de la gema de aquí: "roja", "azul", "amarilla" o "blanca". |
| hay_llave() | ¿Hay una llave aquí? |
| hay_puerta() | ¿Hay una puerta enfrente? |
| hay_meta() | ¿Ya estoy en el portal? |
| hay_senal() | ¿Hay una señal en esta casilla? |
| leer_senal() | Lo que dice la señal. Suele ser un número. |
| esta_pintado() | ¿Ya pinté esta casilla? |
| gemas() | Cuántas gemas trae (un número). |
| mochila() | La lista de colores que trae, en orden. |
| llaves() | Cuántas llaves trae. |
| mirando_norte() | También sur, este y oeste. |
Python que Virgobot entiende
Se comporta como Python de verdad: 4 / 2 vale 2.0, las funciones tienen su
propio alcance, y las listas se pasan por referencia. Hay 32 fragmentos de prueba que corren aquí
y en el Python del sistema y tienen que dar exactamente lo mismo.
Datos: enteros, decimales, textos, booleanos, None, listas, tuplas y diccionarios.
Rebanadas a[1:5:2], f-strings, desempaquetado a, b = b, a.
Control: if/elif/else, while,
for … in, break, continue, comparaciones encadenadas
0 < x < 10, in, not in, is.
Funciones: def con parámetros, valores por defecto, return de varios
valores, recursión y global.
Integradas: print, range, len, str, int, float, bool, list, tuple, dict, abs, round, min, max,
sum, enumerate, zip, sorted, reversed, type.
def doble(n):
return n * 2
ruta = [3, 2, 2]
for tramo in ruta:
for i in range(doble(tramo) // 2):
avanzar()
girar_derecha()
Atajos
Ctrl+Enter ejecuta · Esc detiene · Tab sangra
(Shift+Tab quita) · Ctrl+Shift+P activa el modo profesor.
Todo corre dentro de este navegador. No se sube nada a ningún servidor y funciona sin internet;
tu avance se guarda en tu propia computadora.