iniciar-programa
  Define-nueva-instruccion Traza como
   inicio
     Si no-junto-a-zumbador entonces
      deja-zumbador;
         avanza;
  fin;
 Define-nueva-instruccion camina(n) como
  inicio
   si junto-a-zumbador y frente-libre entonces inicio
    Coge-zumbador;
    Si no(junto-a-zumbador) entonces
     Inicio
         Si frente-libre entonces inicio
           avanza;
           Camina(sucede(n));
         fin;
         Mientras no-orientado-al-norte hacer gira-izquierda;
         Traza;
     Fin
     Sino
      inicio
         Coge-zumbador;
         Si no(junto-a-zumbador) entonces inicio
            Si Frente-libre entonces inicio
              avanza;
              Camina(sucede(n));
             fin;
             Mientras no-orientado-al-sur hacer gira-izquierdA;
               Traza;
         Fin
          sino
           inicio
              coge-zumbador;
                  si frente-libre entonces inicio
                      avanza;
                      camina(sucede(n));
                  fin;
             mientras no-orientado-al-este hacer  gira-izquierda;
                Traza;
              fin;
           Fin;
      Fin
      sino
       inicio
        Si orientado-al-oeste entonces inicio
          Repetir 2 veces gira-izquierda;
           Repetir n veces deja-zumbador;
           avanza;
        Fin;
       fin;
  Fin;
  Define-nueva-instruccion cuenta(n) como
   inicio
     Si no-orientado-al-este entonces inicio
        Si no-junto-a-zumbador y frente-libre entonces inicio
          avanza;
           cuenta(sucede(n));
         fin
         sino
          inicio
             Repetir 2 veces gira-izquierda;
             Mientras frente-libre hacer avanza;
             gira-izquierda;
             avanza;
              si no-junto-a-zumbador entonces  gira-izquierda;
             cuenta(n);

          fin;
     fin
     sino   inicio
      Repetir 2 veces gira-izquierda;
      Mientras frente-libre hacer avanza;
      repetir n veces deja-zumbador;
     fin;
 fin;
  inicia-ejecucion
     Mientras no-orientado-al-este hacer  gira-izquierda;
         avanza;
     Mientras junto-a-zumbador hacer avanza;
         Repetir 2 veces gira-izquierda;
          avanza;
           Camina(1);
       deja-zumbador;
     Mientras no-orientado-al-oeste hacer  gira-izquierda;
     Mientras frente-libre hacer avanza;
       Repetir 2 veces gira-izquierda;
        avanza;  avanza;
       gira-izquierda;
        Cuenta(0);
          apagate;
    termina-ejecucion
finalizar-programa
