iniciar-programa
define-nueva-instruccion gira-derecha como repetir 3 veces gira-izquierda;
define-nueva-instruccion media-vuelta como repetir 2 veces gira-izquierda;
define-nueva-instruccion checa(x) como
inicio
media-vuelta;
avanza;
repetir x veces
inicio
si no junto-a-zumbador entonces
inicio
    media-vuelta;
    avanza;
    mientras junto-a-zumbador hacer coge-zumbador;
    media-vuelta;
    avanza;
    repetir x veces deja-zumbador;
    apagate;
fin;
coge-zumbador;
fin;
si junto-a-zumbador entonces
inicio
    media-vuelta;
    avanza;
    mientras junto-a-zumbador hacer coge-zumbador;
    media-vuelta;
    avanza;
    repetir x veces deja-zumbador;
    apagate;
fin
sino
inicio

fin;
fin;
define-nueva-instruccion cuadrogrande(x) como
inicio
si algun-zumbador-en-la-mochila entonces
inicio
    deja-zumbador;
    si frente-libre entonces
    inicio
        avanza;
        cuadrogrande(sucede(x));
    fin
sino
inicio
   media-vuelta;
   mientras frente-libre hacer avanza;
   gira-izquierda;
   si frente-libre entonces
   inicio
       avanza;
   fin
   sino
   inicio
       media-vuelta;
       mientras frente-libre hacer avanza;
       gira-izquierda;
       mientras frente-libre hacer avanza;
       gira-izquierda;
       avanza;
       repetir x veces deja-zumbador;
       deja-zumbador;
       checa(sucede(x));
   fin;
   gira-izquierda;
   cuadrogrande(sucede(x));
fin;
fin;
fin;



define-nueva-instruccion cuadrochico(x) como
inicio
si algun-zumbador-en-la-mochila entonces
inicio
    deja-zumbador;
    si frente-libre entonces
    inicio
        avanza;
        cuadrochico(sucede(x));
    fin
sino
inicio
   media-vuelta;
   mientras frente-libre hacer avanza;
   gira-izquierda;
   si frente-libre entonces
   inicio
       avanza;
   fin
   sino
   inicio
       media-vuelta;
       mientras frente-libre hacer avanza;
       gira-izquierda;
       mientras frente-libre hacer avanza;
       repetir x veces deja-zumbador;
       deja-zumbador;
       gira-izquierda;
       repetir 4 veces avanza;
       mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
       repetir 500 veces coge-zumbador;
       media-vuelta;
       repetir 2 veces avanza;
       gira-derecha;
       repetir 5 veces avanza;
       gira-derecha;
       avanza;
       gira-izquierda;
       cuadrogrande(0);
   fin;
   gira-izquierda;
   cuadrochico(sucede(x));
fin;
fin;
fin;
    inicia-ejecucion
    mientras no orientado-al-norte hacer gira-izquierda;
    gira-derecha;
    repetir 4 veces avanza;
    repetir 500 veces coge-zumbador;
    media-vuelta;
    repetir 2 veces avanza;
    gira-derecha;
    repetir 2 veces avanza;
    gira-derecha;
    avanza;
    gira-izquierda;
    cuadrochico(0);
        apagate;
    termina-ejecucion
finalizar-programa
