Virgobot

Demon Trail
Esto es lo que Virgo va a ejecutar

      
normal

💎 0 🔑 0 👣 0

¡Misión cumplida!

★★★

Comandos de Virgo

Órdenes — Virgo hace algo

ComandoQué hace
avanzar()Da un paso hacia donde está mirando. 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 donde está parado.
soltar()Deja una gema de la mochila en la casilla actual.
abrir_puerta()Abre la puerta que tiene enfrente. Necesita una llave.
pintar()Marca la casilla actual. Sirve para no perderse.
decir(texto)Virgo dice algo en un globo.

Preguntas — Virgo contesta sí o no

ComandoQué contesta
hay_pared()¿Hay una pared justo enfrente?
hay_pared_derecha()¿Hay pared del lado derecho?
hay_pared_izquierda()¿Hay pared del lado izquierdo?
hay_gema()¿Hay una gema en esta casilla?
hay_llave()¿Hay una llave en esta casilla?
hay_puerta()¿Hay una puerta enfrente?
hay_meta()¿Ya estoy parado en el portal?
esta_pintado()¿Ya pinté esta casilla antes?
gemas()Cuántas gemas trae en la mochila (un número).
llaves()Cuántas llaves trae en la mochila (un número).
mirando_norte()También sur, este y oeste. ¿Hacia dónde ve?

Python que Virgobot entiende

Variables y cuentas, listas, if / elif / else, while, for … in range(…), def con return (incluida la recursión), break y continue, y las funciones print, len, range, str, int, abs, min, max, sum.

# repetir un número conocido de veces
for i in range(4):
    avanzar()

# repetir hasta que pase algo
while not hay_pared():
    avanzar()

# decidir
if hay_gema():
    recoger()
else:
    avanzar()

# ponerle nombre a un pedazo de programa
def cuadrado():
    for lado in range(4):
        avanzar()
        girar_derecha()

cuadrado()

Atajos

Ctrl+Enter ejecuta · Esc detiene · Tab mete sangría (y Shift+Tab la quita) · Ctrl+Shift+P activa el modo profesor, que muestra el botón de solución.

Todo corre dentro de este navegador: no se sube nada a ningún servidor y funciona sin internet. El avance de cada quien se guarda solo, en su propia computadora.