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

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

  define-nueva-instruccion montana como inicio
  norte;
  mientras derecha-bloqueada hacer avanza;
  derecha;
  avanza;
  repetir 2 veces gira-izquierda;
  fin;


 define-nueva-instruccion zima como inicio
 norte;
 mientras frente-libre y junto-a-zumbador hacer avanza;
 repetir 2 veces gira-izquierda;
 avanza;
 si frente-bloqueado entonces gira-izquierda;
 fin;

   define-nueva-instruccion pizo como inicio

  si orientado-al-sur entonces
     inicio
      mientras frente-libre hacer avanza;
      gira-izquierda;
     fin;
  fin;

  define-nueva-instruccion quitar(a) como inicio

    mientras frente-libre hacer
    inicio

     si junto-a-zumbador entonces
        inicio
            si orientado-al-norte entonces zima;
            si junto-a-zumbador entonces coge-zumbador;
            quitar(a);
            si algun-zumbador-en-la-mochila entonces
               inicio
                  deja-zumbador;
                  sal-de-instruccion;
               fin;
        fin
        sino
        inicio
          pizo;
        fin;

        si frente-libre y orientado-al-este entonces
           inicio
              avanza;
              norte;
           fin;
    fin;
   montana;

  fin;

    define-nueva-instruccion baciarmochila como inicio
    avanza;
    repetir 2 veces gira-izquierda;
    mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
  fin;


  define-nueva-instruccion eskina como inicio
  mientras no-orientado-al-oeste hacer gira-izquierda;
  avanza;
  mientras no-orientado-al-sur hacer gira-izquierda;
  mientras frente-libre hacer avanza;
  derecha;
  mientras frente-libre hacer avanza;
  repetir 2 veces gira-izquierda;
  mientras frente-libre y no-junto-a-zumbador hacer avanza;
  fin;

  define-nueva-instruccion resuelve como inicio
 si junto-a-zumbador entonces
     inicio
        coge-zumbador;
        norte;
        resuelve;
        si frente-libre  entonces
           inicio
            si orientado-al-este entonces inicio avanza;  repetir 2 veces gira-izquierda; fin;
             si junto-a-zumbador y orientado-al-oeste entonces
                inicio
                   coge-zumbador;
                 fin
                 sino
                 inicio

                  deja-zumbador;
                  norte;
                 fin;

           fin;
      fin
      sino
      inicio

        si orientado-al-oeste entonces
        inicio

          avanza;
          repetir 2 veces gira-izquierda;
          mientras junto-a-zumbador hacer coge-zumbador;
          eskina;
          mientras algun-zumbador-en-la-mochila  hacer deja-zumbador;
          apagate;
        fin
        sino
        inicio

          derecha;
        fin;
      fin;
   fin;

  define-nueva-instruccion final como inicio
  si junto-a-zumbador entonces
     inicio
      coge-zumbador;
      final;
      deja-zumbador;
     fin
     sino
     inicio
       eskina;
     fin;

  fin;


 inicia-ejecucion
  deja-zumbador;
  avanza;
  mientras no-junto-a-zumbador hacer avanza;
  norte;
  quitar(0);

  baciarmochila;
  resuelve;
 si orientado-al-norte entonces
    inicio
      deja-zumbador;
      apagate;
     fin
     sino
     inicio
       final;
       repetir 2 veces coge-zumbador;
 fin;
   apagate;
    termina-ejecucion
finalizar-programa
