iniciar-programa

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


define-nueva-instruccion mira-sur como
inicio
  mientras no-orientado-al-sur 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 toma(n) como
inicio
    si junto-a-zumbador entonces
    inicio
        coge-zumbador;
        toma(sucede(n));
    fin
    sino
    inicio
        avanza;
        si junto-a-zumbador entonces
        inicio
            toma(n);
        fin
        sino
        inicio
             mira-sur;
             mientras frente-libre hacer avanza;
             mira-norte;
        fin;

    fin;
fin;

define-nueva-instruccion separar como
inicio
    mientras algun-zumbador-en-la-mochila hacer
    inicio
    repetir 9 veces
    inicio
        si algun-zumbador-en-la-mochila entonces
        deja-zumbador;
    fin;
    si algun-zumbador-en-la-mochila entonces
    inicio
        repetir 9 veces coge-zumbador;
        avanza;
        repetir 9 veces deja-zumbador;
        mira-sur;
        avanza;
        mira-oeste;
        avanza;
        deja-zumbador;
        mira-este;
        avanza;
        mira-norte;
    fin;
    fin;
    mira-oeste;
    si frente-libre entonces avanza;
    mira-norte;
fin;

define-nueva-instruccion recoge como
inicio
   si junto-a-zumbador entonces
  inicio
    mientras junto-a-zumbador hacer coge-zumbador;
    avanza;
    recoge;
    avanza;
  fin
  sino
  inicio
      mira-sur;
  fin;
fin;


define-nueva-instruccion encuentra como
inicio
avanza;
mira-este;
repetir 8 veces
avanza;
mira-norte;
fin;


    inicia-ejecucion
    encuentra;
    repetir 5 veces
    inicio
    toma(0);
    separar;

    fin;
        apagate;
    termina-ejecucion
finalizar-programa
