iniciar-programa
define-nueva-instruccion g(n) como
inicio
repetir n veces
inicio
gira-izquierda;
fin;
fin;
     define-nueva-instruccion norte como
     inicio
       si orientado-al-este entonces
       inicio
        gira-izquierda;
       fin
       sino
       inicio
          si orientado-al-oeste entonces
          inicio
             g(3);
          fin
          sino
          inicio
           si orientado-al-sur entonces
           inicio
              g(2);
           fin;
          fin;
       fin;

     fin;

          define-nueva-instruccion sur como
     inicio
       si orientado-al-este entonces
       inicio
       g(3);
       fin
       sino
       inicio
          si orientado-al-oeste entonces
          inicio
          gira-izquierda;
          fin
          sino
          inicio
           si orientado-al-norte entonces
           inicio
              g(2);
           fin;
          fin;
       fin;

     fin;

          define-nueva-instruccion este como
     inicio
       si orientado-al-norte entonces
       inicio
       g(3);
       fin
       sino
       inicio
          si orientado-al-oeste entonces
          inicio
          g(2);
          fin
          sino
          inicio
           si orientado-al-sur entonces
           inicio
              gira-izquierda;
           fin;
          fin;
       fin;

     fin;

          define-nueva-instruccion oeste como
     inicio
       si orientado-al-este entonces
       inicio
       g(2);
       fin
       sino
       inicio
          si orientado-al-norte entonces
          inicio
            gira-izquierda;
          fin
          sino
          inicio
           si orientado-al-sur entonces
           inicio
              g(3);
           fin;
          fin;
       fin;

     fin;
define-nueva-instruccion kaka como
inicio
     si junto-a-zumbador entonces
       inicio
         coge-zumbador;
         si junto-a-zumbador entonces
         inicio
           coge-zumbador;
             si junto-a-zumbador entonces
             inicio
               coge-zumbador;
                 si junto-a-zumbador entonces
                 inicio
                 coge-zumbador;
                 si frente-libre entonces
         inicio
         avanza;
         fin;
                  kaka;
                  oeste;
                  si frente-libre entonces
                  inicio
                  avanza;
                  fin;

                 fin
                 sino
                 inicio
                 si frente-libre entonces
         inicio
         avanza;
         fin;
                 kaka;
                 sur;
                 si frente-libre entonces
                  inicio
                  avanza;
                  fin;

                 fin;
             fin
             sino
             inicio
             si frente-libre entonces
         inicio
         avanza;
         fin;
             kaka;
             este;
             si frente-libre entonces
                  inicio
                  avanza;
                  fin;
             fin;
         fin
         sino
         inicio
         si frente-libre entonces
         inicio
         avanza;
         fin;
         kaka;

           norte;
           si frente-libre entonces
                  inicio
                  avanza;
                  fin;
         fin;
   fin;


fin;

    inicia-ejecucion
    mientras junto-a-zumbador y frente-libre hacer
    inicio
    avanza;
    fin;
    g(2);
    si no-junto-a-zumbador y frente-libre entonces
    inicio
    avanza;
    fin;
    kaka;
        apagate;
    termina-ejecucion
finalizar-programa
