iniciar-programa
define-nueva-instruccion gira(g) como repetir g veces gira-izquierda;
define-nueva-instruccion dos como inicio
mientras orientado-al-norte hacer inicio
si junto-a-zumbador y frente-libre  entonces deja-zumbador;
si frente-libre entonces avanza;
si frente-bloqueado entonces inicio
si junto-a-zumbador entonces deja-zumbador;
gira(2);
mientras frente-libre HACER avanza;
gira-izquierda;
si frente-bloqueado entonces sal-de-instruccion;
avanza;
gira-izquierda;
fin;
fin;
fin;
define-nueva-instruccion virus como inicio
mientras orientado-al-norte  hacer inicio
si orientado-al-norte entonces inicio
si no junto-a-zumbador y frente-libre entonces
avanza;
si junto-a-zumbador entonces inicio
coge-zumbador;
si junto-a-zumbador entonces inicio
si frente-libre entonces inicio
avanza;
si no junto-a-zumbador entonces  deja-zumbador;
gira(2);
avanza;
gira(2);
fin;
si izquierda-libre entonces inicio
gira-izquierda;
avanzA;
si no junto-a-zumbador entonces deja-zumbador;
gira(2);
avanza;
gira-izquierda;
fin;
si derecha-libre entonces inicio
gira(3);
avanza;
si no junto-a-zumbador  entonces deja-zumbador;
gira(2);
avanza;
gira(3);
fin;
gira(2);
si frente-libre entonces inicio
avanza;
si no junto-a-zumbador entonces deja-zumbador;
gira(2);
avanza;
gira(2);
fin;
gira(2);
fin
sino deja-zumbador;
si frente-libre entonces inicio
avanza;
fin
sino inicio
si frente-bloqueado  entonces inicio
gira(2);
mientras frente-libre hacer avanza;
gira(1);
si frente-bloqueado entonces inicio
gira(2);
mientras frente-libre hacer avanza;
gira(3);
sal-de-instruccion;
fin;
avanza;
gira(1);
fin;
fin;
fin
sino inicio
si frente-bloqueado  entonces inicio
gira(2);
mientras frente-libre hacer avanza;
gira(1);
si frente-bloqueado entonces inicio
gira(2);
mientras frente-libre hacer avanza;
gira(3);
sal-de-instruccion;
fin;
avanza;
gira(1);
fin;
fin;
fin;
fin;
fin;


define-nueva-instruccion coge  como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
coge;
dos;
gira(2);
mientras frente-libre hacer avanza;
gira(3);
virus;
fin;
fin;
define-nueva-instruccion dejas como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
dejas;
deja-zumbador;
sal-de-instruccion;
fin;
si frente-libre y no junto-a-zumbador entonces inicio
avanza;
dejas;
sal-de-instruccion;
fin;
si frente-bloqueado entonces inicio
gira(2);
mientras frente-libre hacer avanzA;
gira-izquierda;
si frente-bloqueado entonces inicio
gira(2);
mientras frente-libre hacer avanza;
sal-de-instruccion;
fin;
avanza;
gira-izquierda;
dejas;
fin;
fin;


    inicia-ejecucion
    coge;
    dejas;
         apagate;
    termina-ejecucion
finalizar-programa
