iniciar-programa
define-nueva-instruccion gira-derecha como inicio
repetir 3 veces gira-izquierda;
fin;
define-nueva-instruccion media-vuelta como inicio
repetir 2 veces gira-izquierda;
fin;

define-nueva-instruccion suma (n) como inicio
mientras no orientado-al-oeste hacer gira-izquierdA;
repetir n veces inicio
si junto-a-zumbador  y no orientado-al-norte entonces coge-zumbador
sino inicio
mientras no orientado-al-norte hacer gira-izquierdA;
avanza;
repetir n veces deja-zumbador;
si junto-a-zumbador entonces coge-zumbador;
mientras no orientado-al-este hacer gira-izquierda;
fin;
fin;
si orientado-al-oeste entonces inicio
si frente-libre entonces avanzA;
deja-zumbador;
mientras no orientado-al-este hacer gira-izquierdA;
si frente-libre entonces avanzA;
mientras no orientado-al-oeste hacer gira-izquierda;
fin
sino inicio
si orientado-al-este entonces inicio
mientras junto-a-zumbador hacer inicio
si junto-a-zumbador entonces coge-zumbador;
mientras no orientado-al-sur hacer gira-izquierdA;
avanza;
deja-zumbador;
media-vuelta;
avanzA;
fin;
 mientras no-orientado-al-sur hacer gira-izquierda;
  si frente-libre entonces avanza;
  mientras no-orientado-al-oeste hacer gira-izquierda;
  si frente-libre entonces avanza
  sino
  mientras no-orientado-al-norte hacer gira-izquierda;
  fin;
  fin;
  fin;






define-nueva-instruccion base (n) como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
base (sucede(n));
fin
sino inicio
mientras frente-libre hacer avanza;
mientras no orientado-al-este hacer gira-izquierda;
repetir 11 veces avanza;
mientras no orientado-al-norte hacer gira-izquierda;
 mientras frente-libre hacer suma(n) ;
fin;
fin;


     define-nueva-instruccion primero (n) como inicio
     si junto-a-zumbador entonces  inicio
     coge-zumbador;
     primero (sucede(n));
    fin
     sino inicio
     si frente-libre entonces inicio
     mientras no junto-a-zumbador y frente-libre hacer avanzA;
     si junto-a-zumbador entonces  primero (0);
     fin;
 si frente-bloqueado entonces inicio
    repetir n veces deja-zumbador;
    fin;
    fin;
    fin;

    define-nueva-instruccion segundo (n) como inicio
    repetir 9 veces inicio
    si junto-a-zumbador entonces coge-zumbador;
       fin;
       fin;



    inicia-ejecucion
        repetir 3 veces avanza;
    gira-derecha;
    repetir 11 veces avanza;
    gira-derecha;
    repetir 11 veces inicio
    avanza;
   primero (0);
    gira-derecha;
    avanza;
    gira-derecha;
    repetir 3 veces avanza;
    gira-izquierda;
    gira-izquierda;
    fin;
    base (0);


        apagate;
    termina-ejecucion
finalizar-programa
