iniciar-programa
    define-nueva-instruccion gira(n) como
     inicio
        repetir n veces gira-izquierda;
     fin;
     define-nueva-instruccion funcion(n) como
     inicio
        si junto-a-zumbador entonces
        inicio
           coge-zumbador;
           funcion(sucede(n));
           repetir sucede(n) veces inicio
           deja-zumbador;
           fin;
        fin;
     fin;
     define-nueva-instruccion funcion2(n) como
     inicio
     si junto-a-zumbador entonces inicio
       coge-zumbador;
       funcion2(sucede(n));
     fin;
     si no-junto-a-zumbador entonces
     inicio
     gira(1);
     avanza;
     gira(3);
     repetir n veces inicio
     coge-zumbador;
     fin;
     apagate;
     fin;
     fin;
    inicia-ejecucion
    mientras no-orientado-al-norte hacer gira-izquierda;
    si orientado-al-norte y junto-a-zumbador entonces
    inicio
    funcion(0);
    si junto-a-zumbador entonces
    inicio
     gira(3);
     avanza;
     gira(1);
     funcion2(0);
    fin;
    fin
    sino
    inicio
     gira(3);
     avanza;
     si junto-a-zumbador entonces
     inicio
     mientras junto-a-zumbador hacer
     inicio                                                        
       coge-zumbador;
     fin;
     fin;
     si no-junto-a-zumbador entonces
     inicio
        gira(2);
        avanza;
        gira(3);
        apagate;
     fin;
    fin;
        apagate;
    termina-ejecucion
finalizar-programa

