iniciar-programa
define-nueva-instruccion junta como inicio
  mientras junto-a-zumbador y no-orientado-al-oeste hacer inicio
  mientras junto-a-zumbador hacer coge-zumbador;
  si frente-libre y no junto-a-zumbador entonces avanza;
  fin;
  fin;




   define-nueva-instruccion resta(n) como inicio

 repetir n veces inicio
 si junto-a-zumbador y no-orientado-al-oeste ENTONCES inicio
 mientras no orientado-al-sur hacer gira-izquierda;
 coge-zumbador;
 fin
 sino inicio
 si algun-zumbador-en-la-mochila entonces inicio
  si no orientado-al-oeste  entonces inicio

 mientras no orientado-al-oeste  hacer gira-izquierda;

 si frente-libre ENTONCES  avanza;
 fin;
 si no-junto-a-zumbador entonces inicio
 repetir n veces inicio si algun-zumbador-en-la-mochila   entonces deja-zumbador;
 fin;
 mientras no orientado-al-este hacer gira-izquierda;
 si frente-libre entonces  avanza;
  mientras no orientado-al-oeste hacer gira-izquierda;
  mientras algun-zumbador-en-la-mochila  hacer deja-zumbador;
   fin
   sino inicio

sal-de-instruccion ;
fin;

                     FIN;
                     FIN;
                     FIN;
                     FIN;
                



     define-nueva-instruccion recoge(n) como inicio
  si junto-a-zumbador entonces  inicio
     coge-zumbador;
     recoge(sucede(n));

  fin
  sino inicio
  avanza;
  mientras no-orientado-al-este hacer gira-izquierda;
  resta(n)
  fin;
  FIN;
   DEFINE-NUEVA-INSTRUCCION DIVIDE COMO INICIO
   SI  JUNTO-A-ZUMBADOR ENTONCES INICIO
  SI JUNTO-A-ZUMBADOR ENTONCES COGE-ZUMBADOR;
    SI JUNTO-A-ZUMBADOR ENTONCES COGE-ZUMBADOR;
    DIVIDE;
    SI NO ORIENTADO-AL-SUR  ENTONCES INICIO
     mientras no orientado-al-norte hacer gira-izquierda;
            si frente-libre entonces avanza;
            MIENTRAS NO ORIENTADO-AL-OESTE HACER GIRA-IZQUIERDA;
            MIENTRAS FRENTE-LIBRE HACER AVANZA;
             MIENTRAS NO ORIENTADO-AL-SUR HACER GIRA-IZQUIERDA;
            MIENTRAS FRENTE-LIBRE HACER AVANZA;
                  FIN;
                  DEJA-ZUMBADOR;
                  FIN;
                  FIN;
    inicia-ejecucion
       repetir 5 veces avanza;
           mientras no-orientado-al-este hacer gira-izquierda;
           avanza;
           mientras no orientado-al-sur hacer gira-izquierda;
           avanza;
           mientras no orientado-al-NORTE hacer gira-izquierda;
           mientras frente-libre hacer inicio
           junta;
           mientras no orientado-al-sur hacer gira-izquierda;
           mientras frente-libre hacer avanza;
           gira-izquierda;
           si frente-libre entonces  inicio
           avanza;
           gira-izquierda;
           fin;
           fin;
           mientras  algun-zumbador-en-la-mochila hacer deja-zumbador;
            mientras no orientado-al-norte hacer gira-izquierda;
            si frente-libre entonces avanza;
            mientras no orientado-al-este hacer gira-izquierda;

             si frente-libre entonces avanza;
             si frente-libre entonces avanza;
             si frente-libre entonces avanza;
               mientras no orientado-al-sur hacer gira-izquierda;
           avanza;
           mientras no orientado-al-NORTE hacer gira-izquierda;
           mientras frente-libre hacer inicio
           junta;
           mientras no orientado-al-sur hacer gira-izquierda;
           mientras frente-libre hacer avanza;
           gira-izquierda;
           si frente-libre entonces  inicio
           avanza;
           gira-izquierda;
           fin;
           fin;

            mientras  no orientado-al-norte   hacer gira-izquierda ;
            avanza;
            mientras no orientado-al-oeste hacer gira-izquierda;
             repetir 7 veces avanza;
               mientras no orientado-al-sur hacer gira-izquierda;
           mientras frente-libre hacer avanza;
           mientras  algun-zumbador-en-la-mochila hacer deja-zumbador;
           mientras no-orientado-al-este hacer gira-izquierda;
       recoge(0);
       si orientado-al-oeste entonces inicio
       recoge(0);
       fin;
       mientras no orientado-al-este hacer gira-izquierda;
       divide;
        apagate;
    termina-ejecucion
finalizar-programa

