  iniciar-programa
define-nueva-instruccion d como
 inicio
 repetir 3 veces gira-izquierda;
 fin;
 define-nueva-instruccion v como
   inicio
    repetir 2 veces gira-izquierda;
   fin;
 define-nueva-instruccion cuenta (n) como
   inicio
     si frente-libre entonces
       inicio
         avanza;
         cuenta(sucede(n));

       fin;
      mientras junto-a-zumbador hacer
         coge-zumbador;
       repetir n veces deja-zumbador;
       apagate;




   fin;
 define-nueva-instruccion dis(n) como
    inicio
      si junto-a-zumbador entonces
         inicio
           coge-zumbador;
           dis(sucede(n));
         fin;
       si no-orientado-al-norte entonces
          inicio
            repetir n veces
               inicio
                 si frente-libre entonces avanza;
                 si junto-a-zumbador entonces
                   inicio
                     mientras no-orientado-al-oeste hacer gira-izquierda;
                     cuenta(0);
                    fin;
                 fin;
              repetir n veces deja-zumbador;
              mientras no-orientado-al-norte hacer
               gira-izquierda;
          fin;


   fin;
    inicia-ejecucion
       d;

      mientras frente-libre o frente-bloqueado hacer
      inicio
       dis(0);
      mientras no-orientado-al-este hacer gira-izquierda;
       si frente-libre entonces avanza;
      mientras no-junto-a-zumbador y frente-libre hacer avanza;
      v;
      dis(0);

      mientras no-orientado-al-oeste hacer gira-izquierda;
      si frente-libre entonces avanza;

      mientras no-junto-a-zumbador y frente-libre hacer avanza;
      v;
       fin;

        apagate;
    termina-ejecucion
finalizar-programa
