iniciar-programa
define-nueva-instruccion k como
inicio
si no(orientado-al-oeste y frente-bloqueado y derecha-libre y izquierda-bloqueada ) entonces
inicio
si frente-bloqueado y izquierda-bloqueada y derecha-libre entonces repetir 3 veces gira-izquierda;
si frente-libre y junto-a-zumbador entonces
inicio
avanza;
k;
fin
sino
inicio
si no-junto-a-zumbador o izquierda-libre o(derecha-bloqueada) entonces
inicio
gira-izquierda;
mientras frente-libre hacer avanza;
gira-izquierda;
fin;
fin;
fin
sino
inicio
si orientado-al-oeste y frente-bloqueado y derecha-libre y izquierda-bloqueada entonces apagate;
fin;
fin;
define-nueva-instruccion c como
inicio
si frente-bloqueado y derecha-bloqueada entonces
inicio
gira-izquierda;
c;
fin
sino
inicio
si derecha-libre entonces
inicio
repetir 3 veces gira-izquierda;
mientras frente-libre hacer avanza;
gira-izquierda;
c;
fin
sino
inicio
si frente-libre y no-junto-a-zumbador y derecha-bloqueada entonces
inicio
deja-zumbador;
avanza;
c;
fin
sino
inicio
si junto-a-zumbador entonces
inicio
repetir 2 veces gira-izquierda;
k;
si no(frente-bloqueado y izquierda-bloqueada y junto-a-zumbador) entonces
inicio
c;
fin;
fin;
fin;
fin;
fin;
fin;
    inicia-ejecucion
    mientras no derecha-bloqueada hacer gira-izquierda;
    c;
        apagate;
    termina-ejecucion
finalizar-programa
