iniciar-programa
define-nueva-instruccion gira(n) como
inicio
   repetir n veces
      gira-izquierda;
fin;
define-nueva-instruccion arriba como
inicio
   mientras no orientado-al-norte hacer
      gira-izquierda;
   mientras frente-libre hacer
      avanza;
   gira(1);
   mientras frente-libre hacer
      avanza;
   gira(2);
fin;
define-nueva-instruccion come como
inicio
   mientras orientado-al-este hacer
   inicio
      coge-zumbador;
      mientras frente-libre  hacer
      inicio
         avanza;
         coge-zumbador;
      fin;
      si derecha-libre entonces
      inicio
         gira(2);
         mientras frente-libre hacer
            avanza;
         gira(1);
         avanza;
         gira(1);
      fin
      sino
        gira(1);
   fin;
fin;
define-nueva-instruccion revisa como
inicio
   mientras orientado-al-este hacer
   inicio
      mientras frente-libre y junto-a-zumbador hacer
         avanza;
      si no-junto-a-zumbador entonces
      inicio
         repetir 100 veces
            deja-zumbador;
         apagate;
      fin;
      si derecha-libre entonces
      inicio
         gira(2);
         mientras frente-libre hacer
            avanza;
         gira(1);
         avanza;
         gira(1);
      fin
      sino
        gira(1);
   fin;
fin;
inicia-ejecucion
  mientras frente-libre o frente-bloqueado hacer
  inicio
     arriba;
     revisa;
     arriba;
     come;
  fin;
  apagate;
  termina-ejecucion
finalizar-programa
