iniciar-programa
    define-nueva-instruccion mira-sur como inicio
     mientras no-orientado-al-sur hacer inicio
       gira-izquierda;
      fin;
    fin;
    define-nueva-instruccion mira-este como inicio
     mientras no-orientado-al-este hacer inicio
       gira-izquierda;
      fin;
    fin;
    define-nueva-instruccion mira-oeste como inicio
     mientras no-orientado-al-oeste hacer inicio
       gira-izquierda;
      fin;
    fin;
    define-nueva-instruccion mira-norte como inicio
     mientras no-orientado-al-norte hacer inicio
       gira-izquierda;
      fin;
    fin;

    define-nueva-instruccion gira-derecha como inicio
     repetir 3 veces inicio
       gira-izquierda;
      fin;
    fin;
   define-nueva-instruccion media-vuelta como inicio
     repetir 2 veces inicio
       gira-izquierda;
      fin;
    fin;
    define-nueva-instruccion cobra-euros como inicio
      mira-sur;
      mientras frente-libre hacer avanza;
      gira-derecha;
      mientras frente-libre hacer avanza;
      mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
    fin;
    define-nueva-instruccion corta-rama-de como inicio
     mientras junto-a-zumbador y frente-libre hacer avanza;
     si frente-bloqueado entonces gira-izquierda
     sino inicio
       media-vuelta;
       avanza;
       gira-derecha;
      fin;
     mientras junto-a-zumbador y frente-libre hacer avanza;
     media-vuelta;
     si no-junto-a-zumbador entonces avanza;
     mientras junto-a-zumbador hacer inicio
       coge-zumbador;
       avanza;
     fin;
     media-vuelta;
     avanza;
     gira-izquierda;
     avanza;
     mientras junto-a-zumbador hacer inicio
       coge-zumbador;
       avanza;
     fin;
     media-vuelta;
     avanza;
     si no-junto-a-zumbador entonces deja-zumbador;
     mira-norte;
     avanza;
    fin;
    define-nueva-instruccion corta-rama-iz como inicio
    coge-zumbador;
    avanza;
     mientras junto-a-zumbador y frente-libre hacer avanza;
     si frente-bloqueado entonces gira-derecha
     sino inicio
       media-vuelta;
       avanza;
       gira-izquierda;
      fin;
     mientras junto-a-zumbador y frente-libre hacer avanza;
     media-vuelta;
     si no-junto-a-zumbador entonces avanza;
     mientras junto-a-zumbador hacer inicio
       coge-zumbador;
       avanza;
     fin;
     media-vuelta;
     avanza;
     gira-derecha;
     avanza;
     mientras junto-a-zumbador hacer inicio
       coge-zumbador;
       avanza;
     fin;

     avanza;
     si no-junto-a-zumbador entonces avanza;
     mira-norte;
    fin;
   define-nueva-instruccion pone-bloque como inicio
    mira-sur;
    avanza;
    deja-zumbador;
    mira-norte;
    avanza;
    mira-este;
    avanza;
   fin;

   define-nueva-instruccion pone-pared como inicio
    mira-oeste;
    mientras frente-libre hacer avanza;
    mira-este;
    mientras frente-libre hacer pone-bloque;
    gira-derecha;
    avanza;
    deja-zumbador;
    mira-este;
    si frente-libre entonces avanza sino apagate;
    mira-norte;
    avanza;
    mira-este;
   fin;
   define-nueva-instruccion busca-escorpion como inicio
   mientras frente-libre y no-junto-a-zumbador hacer avanza;
   si junto-a-zumbador entonces inicio
      pone-pared;
      busca-escorpion;
    fin
   sino
    inicio
      gira-derecha;
      avanza;
      gira-izquierda;
      si frente-libre entonces avanza sino apagate;
      gira-izquierda;
      avanza;
      mira-este;
      busca-escorpion;
    fin;
   fin;

inicia-ejecucion
    mientras frente-libre hacer  avanza;
    mira-este;
    busca-escorpion;
    apagate;
    termina-ejecucion
finalizar-programa
