iniciar-programa
      define-nueva-instruccion orientacion como
     inicio
   si orientado-al-sur entonces
    inicio
    repetir 2 veces gira-izquierda;
    fin;

     si orientado-al-este entonces
    inicio
    repetir 1 veces gira-izquierda;
    fin;

   si orientado-al-oeste entonces
    inicio
    repetir 3 veces gira-izquierda;
    fin;
    fin;

    define-nueva-instruccion dos como
    inicio
    si algun-zumbador-en-la-mochila entonces
    inicio
    si orientado-al-oeste entonces
    inicio
    mientras frente-libre hacer
    inicio
    deja-zumbador;
    avanza;
    fin;
    si frente-bloqueado entonces
    inicio
    deja-zumbador;
    repetir 3 veces gira-izquierda;
    avanza;
    repetir 3 veces gira-izquierda;
    dos;
    fin;
    fin;
    si orientado-al-este entonces
    inicio
    mientras frente-libre hacer
    inicio
    deja-zumbador;
    avanza;
    fin;
    si frente-bloqueado entonces
    inicio
    deja-zumbador;
    gira-izquierda;
    avanza;
    gira-izquierda;
    dos;
    fin;
    fin;
    fin;
    si ningun-zumbador-en-la-mochila entonces apagate;
    fin;

     define-nueva-instruccion ya como
     inicio
    repetir 2 veces gira-izquierda;
    mientras frente-libre hacer avanza;
    si frente-bloqueado entonces
    inicio
    gira-izquierda;
    si frente-libre entonces
    inicio
   avanza;
     gira-izquierda;
    fin;
    si frente-bloqueado entonces
    inicio
    repetir 2 veces gira-izquierda;
    dos;
    fin;
    fin;
    fin;

     define-nueva-instruccion uno como
     inicio
     orientacion;
    mientras junto-a-zumbador hacer
    inicio
    mientras junto-a-zumbador hacer coge-zumbador;
    avanza;
    fin;

    si no-junto-a-zumbador entonces
    inicio
    ya;
    uno;
    fin;
    fin;

   inicia-ejecucion
     uno;


        apagate;
    termina-ejecucion
finalizar-programa
