iniciar-programa

define-nueva-instruccion uno como inicio
    si frente-bloqueado entonces inicio
    deja-zumbador;
        repetir 2 veces gira-izquierda;
        mientras frente-libre hacer avanza;
         repetir 2 veces gira-izquierda;
         si derecha-libre entonces inicio
            si frente-bloqueado entonces
            inicio
                repetir 3 veces gira-izquierda;
                avanza;
                gira-izquierda;
                si frente-bloqueado entonces uno;
                apagate;
            fin;
             avanza;
            si derecha-libre entonces inicio
             repetir 2 veces gira-izquierda;
             mientras frente-libre hacer avanza;
                gira-izquierda;
                avanza;
                gira-izquierda;
                uno;
            fin
            sino inicio
            apagate;
            fin;


         fin
          sino inicio
            apagate;
            fin;
    fin
    sino inicio
        si no-junto-a-zumbador entonces deja-zumbador;
        si frente-libre entonces avanza;
        uno;
    fin;


fin;
    inicia-ejecucion
    mientras no-orientado-al-este hacer gira-izquierda;
    avanza;
    mientras junto-a-zumbador hacer coge-zumbador;
    repetir 2 veces gira-izquierda;
    avanza;
    repetir 3 veces gira-izquierda;
    avanza;
    mientras derecha-bloqueada hacer avanza;
    repetir 3 veces gira-izquierda;
    avanza;
    repetir 3 veces gira-izquierda;
    mientras frente-libre hacer avanza;
    repetir 2 veces gira-izquierda;
    uno;
        apagate;
    termina-ejecucion
finalizar-programa