iniciar-programa
define-nueva-instruccion sur como inicio mientras no-orientado-al-sur hacer inicio gira-izquierda; fin; fin;
define-nueva-instruccion norte como inicio mientras no-orientado-al-norte hacer inicio gira-izquierda; fin; fin;
define-nueva-instruccion este como inicio mientras no-orientado-al-este hacer inicio gira-izquierda; fin; fin;
define-nueva-instruccion oeste como inicio mientras no-orientado-al-oeste hacer inicio gira-izquierda; fin; fin;
define-nueva-instruccion orienta como inicio
    mientras no-orientado-al-este hacer inicio
        este;
   fin;
   fin;
 define-nueva-instruccion recoge como inicio
       avanza;
    mientras junto-a-zumbador hacer inicio
        coge-zumbador;
    fin;
 fin;
 define-nueva-instruccion prepara como inicio
     mientras izquierda-bloqueada hacer inicio
         avanza;
     fin;
       si izquierda-libre entonces inicio
         gira-izquierda;
         avanza;
     fin;
       mientras izquierda-bloqueada hacer inicio
       avanza;
       fin;
       si izquierda-libre entonces inicio
           gira-izquierda;
       fin;
       avanza;
 fin;
 define-nueva-instruccion salir como inicio
     norte;
     mientras izquierda-bloqueada hacer inicio
         avanza;
      fin;
     oeste;
     avanza;
     mientras frente-libre hacer inicio
         avanza;
      fin;
     sur;
     mientras frente-libre hacer inicio
         avanza;
     fin;
     este;
     avanza;
     mientras algun-zumbador-en-la-mochila hacer inicio
     deja-zumbador;
     fin;
 fin;
 define-nueva-instruccion siembra como inicio
     norte;
     mientras frente-libre y no-junto-a-zumbador hacer inicio

             deja-zumbador;
      fin;
         si frente-libre entonces inicio
             avanza;
         fin;
         si frente-bloqueado entonces inicio
           norte;
             mientras no-junto-a-zumbador hacer inicio
                 deja-zumbador;
             fin;
         fin;

     si frente-bloqueado entonces inicio
     sur;
         mientras frente-libre y junto-a-zumbador hacer inicio
             avanza;
             mientras no junto-a-zumbador y frente-bloqueado hacer inicio
                 deja-zumbador;
              fin;
         fin;
     fin;
    fin;


  define-nueva-instruccion cambia como inicio
       mientras frente-bloqueado  hacer inicio
            oeste;
            si frente-libre entonces inicio
             avanza;
             norte;
             fin
             sino inicio
             salir;
             fin;
            fin;
       fin;

    inicia-ejecucion
    este;
    recoge;
    prepara;
    mientras algun-zumbador-en-la-mochila hacer inicio

        siembra;
        cambia;

    fin;
        apagate;
    termina-ejecucion
finalizar-programa
