iniciar-programa
define-nueva-instruccion toma(a) como
inicio
si junto-a-zumbador entonces
inicio
coge-zumbador;
toma(sucede(a));
fin
sino
inicio
si frente-libre entonces
inicio
avanza;
toma(0);
fin;
si si-es-cero(precede(a)) entonces
mientras no-orientado-al-norte hacer gira-izquierda;
si si-es-cero(precede(precede(a))) entonces
mientras no-orientado-al-este hacer gira-izquierda;
si si-es-cero (precede(precede(precede(a)))) entonces
mientras no-orientado-al-sur hacer gira-izquierda;
si si-es-cero (precede(precede(precede(precede(a))))) entonces
mientras no-orientado-al-oeste hacer gira-izquierda;
avanza;
fin;
fin;
    inicia-ejecucion
    mientras junto-a-zumbador y frente-libre hacer avanza;
    repetir 2 veces gira-izquierda;
    si no-junto-a-zumbador entonces avanza;
    toma(0);
        apagate;
    termina-ejecucion
finalizar-programa
