iniciar-programa
 define-nueva-instruccion gira(N) como
  inicio
   repetir n veces
    gira-izquierda;
  fin;
    inicia-ejecucion
    mientras no-orientado-al-norte hacer
     gira-izquierda;
  mientras junto-a-zumbador hacer
   inicio
    si junto-a-zumbador entonces
     inicio
      coge-zumbador;
      avanza;
      deja-zumbador;
      gira(2);
      avanza;
      gira-izquierda;
      avanza;
      avanza;
      mientras junto-a-zumbador hacer
       inicio
        avanza;
        si junto-a-zumbador entonces
         inicio
          gira(2);
          avanza;
          gira(2);
         fin; 
        mientras junto-a-zumbador hacer
         inicio
          coge-zumbador;
          avanza;
          gira(2);
         fin;
        si orientado-al-oeste entonces
         inicio
          avanza;
          gira(2);
           mientras junto-a-zumbador hacer
            inicio
             coge-zumbador;
             avanza;
             deja-zumbador;
             gira(2);
             avanza;
             gira(2);
            fin;
           mientras algun-zumbador-en-la-mochila hacer
            inicio
             avanza;
             deja-zumbador;
             gira(2);
            fin;
           gira(2);
           avanza;
            si junto-a-zumbador entonces
             inicio
              gira(2);
              avanza;
              gira(2);
             fin;
         fin
        sino
         inicio
          si no-junto-a-zumbador entonces
           inicio
            mientras algun-zumbador-en-la-mochila hacer
             inicio
              deja-zumbador;
              avanza;
              gira(2);
             fin;
           fin;
          avanza;
          avanza;
          si junto-a-zumbador entonces
           inicio
            gira(2);
            avanza;
            gira(2);
           fin; 
         fin;
       fin;
      mientras no-orientado-al-oeste hacer
       gira-izquierda;
      mientras frente-libre hacer
       avanza;
      gira(3);
     fin;
   fin;

        apagate;
    termina-ejecucion
finalizar-programa
