iniciar-programa
 define-nueva-instruccion media-buelta como inicio
    gira-izquierda;
    gira-izquierda;
 fin;
 define-nueva-instruccion primera como inicio
     mientras junto-a-zumbador y frente-libre hacer
         avanza;
     media-buelta;
     si no-junto-a-zumbador entonces
        avanza;
 fin;
define-nueva-instruccion norte como inicio
    mientras no-orientado-al-norte hacer
        gira-izquierda;
fin;
define-nueva-instruccion sur como inicio
    mientras no-orientado-al-sur hacer
        gira-izquierda;
fin;
define-nueva-instruccion este como inicio
    mientras no-orientado-al-este hacer
        gira-izquierda;
fin;
define-nueva-instruccion oeste como inicio
    mientras no-orientado-al-oeste hacer
        gira-izquierda;
fin;
define-nueva-instruccion diana como inicio
   si frente-libre o junto-a-zumbador entonces inicio
       coge-zumbador;
       si no-junto-a-zumbador entonces inicio
            si frente-libre entonces
                avanza;
            diana;
            norte;
            avanza;
        fin
        sino inicio
           coge-zumbador;
           si no-junto-a-zumbador entonces inicio
                  si frente-libre entonces
                       avanza;
              diana;
              este;
              avanza;
           fin
           sino inicio
               coge-zumbador;
               si no-junto-a-zumbador entonces inicio
                    si frente-libre entonces
                        avanza;
                    diana;
                    sur;
                    avanza;
               fin
               sino inicio
                  coge-zumbador;
                  si frente-libre entonces
                     avanza;
                 diana;
                 oeste;
                 avanza;
               fin;
            fin;
        fin;
     fin;
  fin;
    inicia-ejecucion
    primera;
    diana;
        apagate;
    termina-ejecucion
finalizar-programa
