iniciar-programa
define-nueva-instruccion vuelta como
   repetir 2 veces
     gira-izquierda;
define-nueva-instruccion u como inicio
  si frente-bloqueado y orientado-al-oeste entonces inicio
    deja-zumbador;
    repetir 3 veces
      gira-izquierda;
      avanza;
      repetir 3 veces
      gira-izquierda;
   fin
   sino si frente-bloqueado y orientado-al-este entonces inicio
     deja-zumbador;
     gira-izquierda;
     avanza;
     gira-izquierda;
   fin;
 fin;
    inicia-ejecucion
    mientras no-orientado-al-norte hacer inicio
      gira-izquierda;
    fin;
    mientras no-junto-a-zumbador y derecha-libre hacer inicio
      repetir 3 veces
        gira-izquierda;
     mientras no-junto-a-zumbador hacer  inicio
       avanza;
     fin;
     si junto-a-zumbador entonces
       gira-izquierda;
    fin;
    mientras orientado-al-norte y junto-a-zumbador hacer inicio
      mientras junto-a-zumbador hacer inicio
        mientras junto-a-zumbador hacer inicio
          coge-zumbador;
        fin;
        avanza;
      fin;
      si no-junto-a-zumbador entonces inicio
      vuelta;
      fin;
      mientras frente-libre hacer inicio
        avanza;
     fin;
     si izquierda-libre entonces inicio
       gira-izquierda;
       avanza;
       gira-izquierda;
      mientras no-junto-a-zumbador y derecha-libre hacer inicio
        repetir 3 veces
         gira-izquierda;
         avanza;
         gira-izquierda;
     fin;
     fin;
     fin;
     repetir 3 veces
       gira-izquierda;
     mientras algun-zumbador-en-la-mochila hacer inicio
       mientras frente-libre y algun-zumbador-en-la-mochila hacer inicio
         si algun-zumbador-en-la-mochila entonces inicio
           deja-zumbador;
         fin;
         si frente-libre entonces inicio
           avanza;
         fin;
       fin;
       u
     fin;
        apagate;
    termina-ejecucion
finalizar-programa
