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

define-nueva-instruccion devolver como
inicio
  oeste;
  avanza;
  norte;
  mientras junto-a-zumbador hacer avanza;
  deja-zumbador;
  sur;
  mientras frente-libre hacer avanza;
  este;
fin;

define-nueva-instruccion atras como
inicio
  oeste;
  avanza;
  avanza;
fin;

define-nueva-instruccion com_posicion como
inicio
  este;
  si frente-libre entonces
    inicio
      avanza;
      sur;
      si frente-libre  entonces
        inicio
          avanza;
          si frente-libre entonces
            inicio
              avanza;
              si no-junto-a-zumbador entonces
                inicio
                  mientras frente-libre hacer avanza;
                  si junto-a-zumbador entonces atras;
                fin
              sino
                inicio
                  oeste;
                  avanza;
                  este;
                fin;
            fin;
        fin;
    fin;
fin;

define-nueva-instruccion poner como
inicio
  mientras frente-libre y no-junto-a-zumbador hacer avanza;
  si junto-a-zumbador entonces
    inicio
      norte;
      avanza;
      deja-zumbador;
      com_posicion;
      sur;
      mientras frente-libre hacer avanza;
      este;
    fin
  sino
    inicio
      devolver;
    fin;
fin;

define-nueva-instruccion comprobar como
inicio
  avanza;
  sur;
  si frente-libre entonces
    inicio
      avanza;
      si no-junto-a-zumbador entonces
        inicio
          poner;
        fin sino devolver;
    fin
  sino devolver;
fin;


define-nueva-instruccion montana como
inicio
  norte;
  mientras junto-a-zumbador hacer avanza;
  sur;
  avanza;
  coge-zumbador;
  este;
  comprobar;
fin;

define-nueva-instruccion quita como
inicio
  oeste;
  mientras frente-libre hacer avanza;
  coge-zumbador;
fin;

define-nueva-instruccion erosion como
inicio
  mientras orientado-al-este hacer
    inicio
      si frente-libre entonces
        inicio
          si frente-libre entonces avanza;
          si junto-a-zumbador y frente-libre entonces montana;
        fin
      sino quita;
    fin;
fin;

define-nueva-instruccion cordillera como
inicio
  este;
  mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
  mientras junto-a-zumbador hacer
    inicio
      erosion;
      este;
    fin;
fin;

    inicia-ejecucion
        cordillera;
        apagate;
    termina-ejecucion
finalizar-programa
