iniciar-programa
define-nueva-instruccion mv como
inicio
repetir 2 veces gira-izquierda;
fin;

define-nueva-instruccion gd como
inicio
repetir 3 veces gira-izquierda;
fin;

define-nueva-instruccion ubicate como
inicio
mientras no-orientado-al-oeste hacer gira-izquierda;
mientras frente-libre hacer avanza;
gira-izquierda;
mientras frente-libre hacer avanza;
mv;
fin;

define-nueva-instruccion rellena como
inicio
si no junto-a-zumbador entonces
inicio
deja-zumbador;
repetir 4 veces
inicio
si frente-libre entonces
inicio
avanza;
rellena;
mv;
avanza;
mv;
fin;
gira-izquierda;
fin;
fin;
fin;
define-nueva-instruccion checa como
inicio
fin;

define-nueva-instruccion respuesta como
inicio
 rellena;
 mientras no orientado-al-sur hacer gira-izquierda;
 mientras frente-libre hacer avanza;
 gd;
 mientras frente-libre hacer avanza;
 deja-zumbador;
 gd;
fin;
    inicia-ejecucion
    ubicate;
    rellena;
    mientras no (frente-bloqueado y derecha-bloqueada) hacer
    inicio
     mientras junto-a-zumbador y  no (frente-bloqueado y derecha-bloqueada)hacer
     inicio
     si frente-libre entonces avanza
     sino
     inicio
      mv;
      mientras frente-libre hacer avanza;
      gira-izquierda;
      avanza;
      gira-izquierda;
     fin;
    fin;
    si no (derecha-bloqueada y frente-bloqueado) entonces
    respuesta
    sino
    inicio
     ubicate;
     coge-zumbador;
     apagate;
    fin;
    fin;
        apagate;
    termina-ejecucion
finalizar-programa
