iniciar-programa
define-nueva-instruccion vuelve como inicio
mientras frente-libre hacer inicio
    avanza;
    mientras junto-a-zumbador hacer inicio
        coge-zumbador;
    fin;
    mientras frente-bloqueado y algun-zumbador-en-la-mochila hacer inicio
        deja-zumbador;
    fin;
    fin;
    si ningun-zumbador-en-la-mochila y frente-bloqueado y junto-a-zumbador entonces apagate;
fin;
define-nueva-instruccion gira como inicio
    repetir 2 veces gira-izquierda;
fin;
define-nueva-instruccion busca como inicio
mientras frente-libre hacer inicio
    avanza;
    mientras junto-a-zumbador hacer inicio
        coge-zumbador;
    fin;
fin;
fin;
define-nueva-instruccion regresa como inicio
mientras frente-bloqueado y orientado-al-norte hacer inicio
    gira;
fin;
mientras frente-libre hacer inicio
    avanza;
fin;
fin;
define-nueva-instruccion voltea como inicio
    si frente-bloqueado y orientado-al-sur entonces inicio
       gira-izquierda;
       si frente-libre entonces inicio avanza;
       fin sino inicio
       si frente-bloqueado entonces gira;
       mientras junto-a-zumbador hacer coge-zumbador;
       vuelve;
       fin;
        gira-izquierda;
    fin;
fin;
define-nueva-instruccion final como inicio
    si derecha-bloqueada entonces inicio
        gira-izquierda;
        mientras frente-libre hacer inicio
        mientras junto-a-zumbador hacer coge-zumbador;
        avanza;
        fin;
    mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
    fin;
fin;
    inicia-ejecucion
    mientras frente-libre o derecha-libre hacer inicio
    busca;
    regresa;
    voltea;

    fin;
    final;
        apagate;
    termina-ejecucion
finalizar-programa

