iniciar-programa

define-nueva-instruccion norte como inicio
   mientras no orientado-al-norte hacer inicio
     gira-izquierda;
   fin;
   fin;

define-nueva-instruccion sur como inicio
   mientras no orientado-al-sur hacer inicio
      gira-izquierda;
     fin;
  fin;

define-nueva-instruccion este como inicio
    mientras no orientado-al-este hacer inicio
       gira-izquierda;
      fin;
   fin;

define-nueva-instruccion oeste como inicio
   mientras no orientado-al-oeste hacer inicio
      gira-izquierda;
     fin;
  fin;

define-nueva-instruccion deposita como inicio
   si no junto-a-zumbador entonces inicio
     deja-zumbador;
     deja-zumbador;
    fin;
  fin;

define-nueva-instruccion ir11 como inicio
   oeste;
   mientras frente-libre hacer inicio
      avanza;
     fin;
     sur;
     mientras frente-libre hacer inicio
        avanza;
       fin;
       este;
  fin;

define-nueva-instruccion dejar como inicio
   si junto-a-zumbador entonces inicio

    fin sino inicio

         deposita;

         norte;
         si frente-libre entonces inicio
           avanza;

           dejar;
           sur;
           avanza;
          fin;

         sur;
         si frente-libre entonces inicio
           avanza;

           dejar;
           norte;
           avanza;
          fin;

          este;
          si frente-libre entonces inicio
            avanza;

            dejar;
            oeste;
            avanza;
           fin;

           oeste;
           si frente-libre entonces inicio
             avanza;

             dejar;
             este;
             avanza;
           fin;

    fin;

  fin;

define-nueva-instruccion contar(n) como inicio
   si junto-a-zumbador entonces inicio
       si frente-libre entonces inicio
          avanza;
         fin
         sino inicio
            norte;
            si frente-libre entonces inicio
              avanza;
              fin sino inicio
                 ir11;
                 si junto-a-zumbador entonces inicio
                  coge-zumbador;
                  coge-zumbador;
                 fin;
                 repetir n veces inicio
                     deja-zumbador;
                   fin;
                   apagate;
                fin;
              si izquierda-libre entonces inicio
                 gira-izquierda;
               fin sino inicio
                     repetir 3 veces inicio
                       gira-izquierda;
                      fin;
                fin;

         fin;
           contar(n);
    fin sino inicio

       dejar;
         ir11; 
       contar(sucede(n));
     fin;
  fin;

    inicia-ejecucion
    ir11;
    dejar;
    este;
    contar(0);
        apagate;
    termina-ejecucion
finalizar-programa
