iniciar-programa

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

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

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

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

define-nueva-instruccion retrocede como
inicio
  gira-izquierda;
  gira-izquierda;
  avanza;
  gira-izquierda;
  gira-izquierda;
fin;

define-nueva-instruccion regresa como
inicio
  mira-oeste;
  mientras frente-libre hacer
    avanza;
  mira-sur;
  mientras frente-libre hacer
    avanza;
  mira-norte;
fin;

define-nueva-instruccion muevelas como
inicio
  repetir 30 veces
  inicio
    mira-este;
    avanza;
    avanza;

    mientras junto-a-zumbador hacer
      avanza;
    retrocede;
    mientras junto-a-zumbador hacer
      coge-zumbador;
    mira-oeste;
    mientras frente-libre hacer
      avanza;
    mira-norte;
    mientras algun-zumbador-en-la-mochila hacer
    inicio
      deja-zumbador;
      avanza;
    fin;
    mira-sur;
    mientras frente-libre hacer
      avanza;

  fin;
fin;



define-nueva-instruccion acomoda-el-numero como
inicio
  mientras junto-a-zumbador hacer
    coge-zumbador;
    mira-norte;
    avanza;
    mira-este;
    avanza;
    avanza;
    mientras algun-zumbador-en-la-mochila hacer
    inicio
      deja-zumbador;
      si frente-libre entonces
        avanza;
    fin;
fin;

define-nueva-instruccion ordena como
inicio
  mira-norte;
  repetir 30 veces
  inicio
    mientras junto-a-zumbador hacer
    inicio
      coge-zumbador;
      si frente-libre entonces
        avanza;
    fin;
    mira-sur;
    mientras frente-libre hacer
      avanza;
    mira-norte;
    avanza;
    mira-este;
    avanza;
    avanza;
    mientras junto-a-zumbador hacer
      avanza;
    retrocede;
    mira-sur;
    avanza;
    mira-oeste;
    mientras junto-a-zumbador hacer
    inicio

       avanza;
    fin;
    mientras algun-zumbador-en-la-mochila hacer
      deja-zumbador;
    mientras frente-libre hacer
      avanza;
    mira-norte;
  fin;
fin;

define-nueva-instruccion recupera como
inicio
  mira-este;
  mientras no-junto-a-zumbador hacer
    avanza;
  mira-norte;
  avanza;
  mira-este;
  mientras junto-a-zumbador hacer
  inicio
    coge-zumbador;
    avanza;
  fin;
  mira-oeste;
  mientras frente-libre hacer
  inicio
    avanza;
  fin;
  mientras algun-zumbador-en-la-mochila hacer
    deja-zumbador;
  mira-norte;
  retrocede;
fin;

    inicia-ejecucion
    inicio
      acomoda-el-numero;
      regresa;
      muevelas;
      ordena;
      recupera;
    fin;
        apagate;
    termina-ejecucion
finalizar-programa
