iniciar-programa
define-nueva-instruccion norte como inicio
mientras no-orientado-al-norte hacer gira-izquierda; fin;
define-nueva-instruccion derecha como inicio
repetir 3 veces gira-izquierda; fin;


define-nueva-instruccion opciones como inicio
si frente-bloqueado y izquierda-bloqueada y derecha-libre entonces
inicio
     mientras junto-a-zumbador hacer coge-zumbador;
     repetir 10 veces deja-zumbador;
fin;

si frente-bloqueado y izquierda-bloqueada y derecha-bloqueada entonces
inicio
      mientras junto-a-zumbador hacer coge-zumbador;
     repetir 20 veces deja-zumbador;
 fin;

 si frente-libre y izquierda-bloqueada y derecha-bloqueada entonces
inicio
      mientras junto-a-zumbador hacer coge-zumbador;
     repetir 10 veces deja-zumbador;
 fin;

si frente-libre y izquierda-bloqueada y derecha-libre entonces
inicio
   derecha;
   avanza;
   si izquierda-bloqueada entonces inicio repetir 2 veces gira-izquierda; avanza; repetir 5 veces deja-zumbador; fin;
   si izquierda-bloqueada entonces sal-de-instruccion;

 fin;

fin;


define-nueva-instruccion depositar como inicio
si no-junto-a-zumbador entonces inicio repetir 5 veces deja-zumbador; sal-de-instruccion; fin;
si junto-a-zumbador entonces
inicio
    coge-zumbador;
    si junto-a-zumbador entonces inicio repetir 6 veces deja-zumbador; sal-de-instruccion;fin;
    si no-junto-a-zumbador entonces
    inicio
      deja-zumbador;
      si orientado-al-sur y izquierda-libre entonces inicio  gira-izquierda; mientras derecha-bloqueada y frente-libre hacer inicio avanza; fin; depositar; sal-de-instruccion; fin;
      repetir 4 veces deja-zumbador;
      norte;
      opciones;
      apagate;

    fin;
fin;

fin;



define-nueva-instruccion busca como inicio
si frente-libre y izquierda-bloqueada entonces
inicio
mientras frente-libre y izquierda-bloqueada hacer avanza;
depositar;
fin;

si frente-bloqueado y izquierda-bloqueada y derecha-libre entonces
inicio
      derecha;

      mientras izquierda-bloqueada  y frente-libre hacer avanza;
      depositar;
fin;

si izquierda-libre entonces
inicio
      gira-izquierda;
      avanza;
      mientras izquierda-bloqueada y frente-libre  hacer avanza;
      depositar;
fin;


si frente-bloqueado y izquierda-bloqueada y derecha-bloqueada entonces
inicio
depositar;

gira-izquierda;
gira-izquierda;
mientras izquierda-bloqueada y frente-libre hacer avanza;
depositar;
fin;

fin;


   inicia-ejecucion
   deja-zumbador;
   si frente-bloqueado entonces
   inicio

         si derecha-libre entonces inicio derecha; mientras izquierda-bloqueada y frente-libre hacer avanza;
         depositar;
    fin;
    fin;



  mientras algun-zumbador-en-la-mochila hacer busca;

      apagate;
    termina-ejecucion
finalizar-programa
