iniciar-programa
define-nueva-instruccion gira-derecha como
inicio
  repetir 3 veces
   gira-izquierdA;
fin;

define-nueva-instruccion mira-al-oeste como
inicio
  mientras no-orientado-al-oeste hacer
    gira-izquierda;
fin;

define-nueva-instruccion mira-al-norte como
inicio
  mientras no-orientado-al-norte hacer
    gira-izquierdA;
fin;


define-nueva-instruccion ubicate como
inicio
  mira-al-oeste;
  mientras frente-libre hacer
    avanza;
  mientras izquierda-libre hacer
    gira-izquierdA;
fin;
define-nueva-instruccion derecha como
inicio
  si derecha-libre entonces
  inicio
    gira-derecha;
    mientras frente-libre hacer
    inicio
      avanza;
      si junto-a-zumbador entonces
        apagate;
    fin;
    si junto-a-zumbador entonces
      apagate;
    repetir 2 veces
      gira-izquierda;
    mientras frente-libre hacer
      avanza;
    gira-derecha;
  fin;
fin;
define-nueva-instruccion busca como
inicio
 mientras izquierda-bloqueada hacer
 inicio
   si frente-libre entonces
   inicio
     derecha;
     avanza;
     si junto-a-zumbador entonces
       apagate;
     si izquierda-libre entonces
     inicio
       gira-izquierda;
       avanza;
       si junto-a-zumbador entonces
         apagate;
       si izquierda-libre entonces
       inicio
         gira-izquierda;
         avanza;
         si junto-a-zumbador entonces
           apagate;
       fin;
     fin;
   fin
   sino
   inicio
     gira-derecha;
     si frente-libre entonces
     inicio
       avanza;
       si junto-a-zumbador entonces
         apagate;
       si izquierda-libre entonces
       inicio
         gira-izquierda;
         si frente-libre entonces
           avanza;
         si izquierda-libre entonces
         inicio
         gira-izquierda;
         si junto-a-zumbador entonces
           apagate;
         si frente-libre entonces
           avanza;
         si junto-a-zumbador entonces
           apagate;
         fin;
         fin;
     fin;
   fin;
 fin;
fin;
    inicia-ejecucion
    ubicate;
    mira-al-norte;
    busca;
        apagate;
    termina-ejecucion
finalizar-programa
 