iniciar-programa
define-nueva-instruccion gira(e) como repetir e veces gira-izquierda;
define-nueva-instruccion rellena(x) como inicio
si si-es-cero(x) entonces apagate;
si no junto-a-zumbador entonces inicio
si no junto-a-zumbador entonces  repetir x veces deja-zumbador;
 si frente-libre entonces avanza;
 si junto-a-zumbador entonces inicio
 gira(1);
 avanza;
 si junto-a-zumbador entonces inicio
  gira(1); avanza;
  gira(3);
 fin;
fin;
 rellena(precede(x));
fin;
fin;
define-nueva-instruccion area(x) como inicio
si frente-libre entonces inicio
 avanza;
 area(sucede(x));
fin sino inicio
gira(2);
mientras frente-libre hacer avanza;
gira(1);
si frente-libre entonces avanza sino  inicio
gira(1);
mientras frente-libre hacer avanza;
gira(1);
mientras frente-libre hacer avanza; gira(1);
rellena(sucede(x));
fin;
gira(1);
area(sucede(x));
fin;
FIN;
    inicia-ejecucion
    si frente-bloqueado y derecha-bloqueada y izquierda-bloqueada entonces inicio
     deja-zumbador; apagate;
    fin;
    mientras no orientado-al-oeste hacer gira-izquierda;
    mientras frente-libre hacer avanza;
    gira(1);   mientras frente-libre hacer avanza;
    gira(2);
    area(0);
        apagate;
    termina-ejecucion
finalizar-programa
