iniciar-programa
define-nueva-instruccion gira(n) como repetir n veces gira-izquierda;

define-nueva-instruccion busca como inicio
si izquierda-libre entonces inicio
gira(2);
si frente-libre o derecha-libre entonces inicio
gira(2);
si derecha-libre entonces inicio
gira(3);
avanza;
gira(1);
fin
sino inicio
mientras derecha-bloqueada y frente-libre hacer avanza;
si frente-bloqueado entonces inicio
gira(1);
mientras derecha-bloqueada y frente-libre hacer avanza;
si frente-bloqueado y derecha-bloqueada entonces inicio
gira(1);
mientras derecha-bloqueada y frente-libre hacer avanza;
gira(3);
si frente-libre entonces inicio
avanza;
fin
sino inicio
apagate;
fin;
mientras derecha-bloqueada hacer avanza;
fin;
gira(3);
avanza;
fin;
fin;
busca;
fin
sino inicio

fin;

fin
sino inicio
gira(2);
si frente-libre entonces inicio
gira(1);
si frente-libre entonces avanza;
gira(1);
busca;
fin;
fin;
fin;

    inicia-ejecucion
    mientras no orientado-al-norte hacer
    gira-izquierda;
    si derecha-libre entonces inicio
    gira(3);
    avanza;
    gira(1);
    fin;
    busca;
        apagate;
    termina-ejecucion
finalizar-programa
