Guía de programación de Guido van Robot

Las cinco instrucciones primitivas de Guido van Robot

   mover
   girarizquierda
   tomarzumbador
   ponerzumbador
   apagar

Estructura de bloques

Cada instrucción de Guido van Robot debe ir en una línea separada. Una secuencia de intrucciones de Guido van Robot puede ser tratada como una sola instrucción (un bloque de código) indentándolas el mismo número de espacios. <instruccion> se refiere a cualquiera de las cinco primitivas mencionadas, a las instrucciones de ramificación condicional y de iteración, o a intrucciones definidas por el usuario.

    <instruccion>
    <instruccion>
      ...
    <instruccion>

Condicionales

GvR tiene dieciocho pruebas incluídas que se dividen en tres grupos: las primeras seis son pruebas de pared, las siguientes cuatro son pruebas de zumbador, y las últimas ocho son pruebas de compás:

   frente_libre
   frente_bloqueado
   izquierda_libre
   izquierda_bloqueado
   derecha_libre
   derecha_bloqueado
   proximo_a_zumbador
   no_proximo_a_zumbador
   zumbadores_en_bolsa
   sin_zumbadores_en_bolsa
   viendo_norte
   no_viendo_norte
   viendo_sur
   no_viendo_sur
   viendo_este
   no_viendo_este
   viendo_oeste
   no_viendo_oeste

Ramificación condicional

La ramificación condicional se refiere a la habilidad de un programa para alterar su flujo de ejecución basado en el resultado de la evaluación de un condicional. Los tres tipos de intrucciones condicionales en Guido van Robot son si, si/sino y si/nosi/sino. <prueba> se refiere a una de las dieciocho condicionales mencionadas arriba.

si <prueba>:
    <instruccion>

if <prueba>:
    <instruccion>
sino:
    <instruccion>

si <prueba>:
    <instruccion>
nosi <prueba>:
    <instruccion>
...
nosi <prueba>:
    <instruccion>
sino:
    <instruccion>

Iteración

La iteración se refiere a la habilidad de un programa para repetir una instrucción (o bloque de instrucciones) una y otra vez hasta que se cumpla una condición. Los dos tipos de instrucciones de iteración son las instrucciones hacer y mientras. <numero_positivo> debe ser un entero mayor que 0.

hacer <numero_positivo>:
    <instruccion>

mientras <prueba>:
    <instruccion>

Definiendo una nueva instrucción

Las nuevas instrucciones para Guido van Robot pueden ser creadas usando la declaración definir. <nuevo_nombre> puede ser cualquier secuencia de letras o dígitos que comienze con una letra y no haya sido ya usada como instrucción.

Para Guido van Robot las letras válidas son A..Z, a..z, y el guión bajo (_). Guido van Robot reconoce mayúsculas y minúsculas, de manera que GirarIzquierda, girarizquierda y girarIzquierda son todos nombres diferentes.

definir <nuevo_nombre>:
    <instruccion>