iniciar-programa
define-nueva-instruccion gira(n) como
inicio
      repetir n veces
      gira-izquierda;
fin;
define-nueva-instruccion alacran como
inicio
     si junto-a-zumbador entonces
     inicio
          mientras frente-libre hacer
           avanza;
          gira(3);
          avanza;
          gira(2);
          deja-zumbador;
          avanza;
          si frente-bloqueado y izquierda-bloqueada y derecha-bloqueada entonces
          inicio
                    gira(2);
                     avanza;
                     gira(1);
                     sal-de-instruccion;
          fin;
          gira(1);
          mientras frente-libre hacer
          avanza;
          gira(1);
          avanza;
          gira(1);
          si no-junto-a-zumbador entonces
          deja-zumbador;
          avanza;
          mientras no-junto-a-zumbador hacer
          inicio
              deja-zumbador;
              avanza;
           fin;

     fin
     sino
     inicio
          si frente-libre entonces
          inicio
               avanza;
               alacran;
           fin;
           si frente-bloqueado y no junto-a-zumbador entonces
           inicio
                 gira(3);
                 avanza;
                 gira(1);
                 sal-de-instruccion;
            fin;

     fin;

fin;
    inicia-ejecucion
     mientras frente-libre hacer
     avanza;
     gira(3);
     alacran;
     mientras frente-libre hacer
     inicio

          avanza;
          gira(1);
          avanza;
          gira(3);
          alacran;
     fin;

        apagate;
    termina-ejecucion
finalizar-programa
