iniciar-programa
define-nueva-instruccion sur como inicio
    mientras no-orientado-al-sur hacer gira-izquierda;
fin;
define-nueva-instruccion gira como inicio
    repetir 2 veces inicio
        gira-izquierda;
    fin;
fin;
define-nueva-instruccion oeste como inicio
    mientras no orientado-al-oeste hacer gira-izquierda;
fin;
define-nueva-instruccion este como inicio
    mientras no-orientado-al-este hacer gira-izquierda;
fin;
define-nueva-instruccion norte como inicio
    mientras no orientado-al-norte hacer gira-izquierda;
fin;
define-nueva-instruccion orientar como inicio
    este;
    mientras frente-libre hacer avanza;
    norte;
    si algun-zumbador-en-la-mochila y frente-libre entonces inicio
        avanza;
    fin;
    gira-izquierda;
fin;
define-nueva-instruccion recoge como inicio
    mientras junto-a-zumbador hacer inicio
        coge-zumbador;
    fin;
    oeste;
    avanza;

    mientras junto-a-zumbador hacer inicio
        coge-zumbador;
        oeste;
        mientras frente-libre hacer avanza;
        repetir 9 veces coge-zumbador;
        este;
        mientras frente-libre hacer avanza;
        oeste;
        avanza;
    fin;
fin;
define-nueva-instruccion orientar2 como inicio
     si frente-bloqueado y orientado-al-norte entonces inicio
         gira;
         si izquierda-bloqueada entonces inicio
         mientras izquierda-bloqueada y frente-libre hacer avanza;
         gira-izquierda;
         mientras frente-libre hacer avanza;
         gira;
         gira-izquierda;
         avanza;
         orientar;
         fin;
     fin;
fin;
define-nueva-instruccion irinicio como inicio
    si algun-zumbador-en-la-mochila entonces inicio
    este;
    mientras frente-libre hacer avanza;
    sur;
    mientras frente-libre hacer avanza;
    orientar;
    fin;
fin;
define-nueva-instruccion cambiar como inicio
    si orientado-al-este entonces inicio
    norte;
    si frente-libre y algun-zumbador-en-la-mochila entonces inicio
    avanza;
    fin sino inicio
        irinicio;
    fin;
    oeste;
    fin sino inicio
    norte;
    si frente-libre y algun-zumbador-en-la-mochila entonces inicio
    avanza;
    este;
    fin sino inicio
        irinicio;
    fin;
fin;
fin;
define-nueva-instruccion contar como inicio
    mientras algun-zumbador-en-la-mochila hacer inicio
        deja-zumbador;
         si frente-libre y algun-zumbador-en-la-mochila entonces inicio
             avanza;
         fin sino inicio
             cambiar;

         fin;
     fin;
 fin;

    inicia-ejecucion
    orientar;
    recoge;
    orientar;
    contar;
    mientras algun-zumbador-en-la-mochila hacer inicio
    orientar2;
    contar;
    fin;
        apagate;
    termina-ejecucion
finalizar-programa
