iniciar-programa

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

      define-nueva-instruccion atras como
   inicio
     repetir 2 veces gira-izquierda;
   fin;

      define-nueva-instruccion ed como
   inicio
   avanza;
   derecha;
   avanza;
   gira-izquierda;
   fin;

      define-nueva-instruccion ei como
   inicio
   gira-izquierda;
   avanza;
   derecha;
   avanza;
   fin;

      define-nueva-instruccion dos como
   inicio
  mientras no junto-a-zumbador hacer avanza;
  avanza;
  si junto-a-zumbador entonces
  inicio
  atras;
  avanza;
  derecha;
  mientras junto-a-zumbador hacer
  inicio
  coge-zumbador;
  avanza;
  fin;
  atras;
  mientras frente-libre hacer avanza;
  derecha;
  mientras no junto-a-zumbador hacer
  inicio
  si frente-bloqueado entonces
  inicio
  deja-zumbador;
  atras;
  avanza;
  dos;
  fin;
  si frente-libre entonces avanza;
  fin;
  atras;
  avanza;
  gira-izquierda;
  mientras algun-zumbador-en-la-mochila hacer
  inicio
  deja-zumbador;
  avanza;
  fin;
  atras;
  mientras frente-libre hacer avanza;
  gira-izquierda;
  avanza;
  dos;
  fin;
  atras;
  mientras no junto-a-zumbador hacer avanza;
 coge-zumbador;
     mientras no junto-a-zumbador hacer avanza;
     atras;
     avanza;
     deja-zumbador;
     atras;
     mientras frente-libre hacer avanza;
     derecha;
     mientras junto-a-zumbador hacer
     inicio
     avanza;
     repetir 3 veces gira-izquierda;
     avanza;
     gira-izquierda;
     fin;
     gira-izquierda;
     avanza;
     gira-izquierda;
     avanza;
      apagate;
   fin;

      define-nueva-instruccion uno como
   inicio
   gira-izquierda;
   mientras junto-a-zumbador hacer
   inicio
   si frente-bloqueado entonces
   inicio
   derecha;
   apagate;
   fin;
   si frente-libre entonces avanza;
   fin;
   deja-zumbador;
   derecha;
   ed;
   atras;
   avanza;
   mientras junto-a-zumbador hacer
   inicio
   atras;
   avanza;
   deja-zumbador;
   ed;
   atras;
   avanza;
   fin;
   avanza;
   mientras frente-libre hacer
   inicio
   deja-zumbador;
   ei;
   fin;
   deja-zumbador;
   derecha;
   mientras junto-a-zumbador hacer ed;
   atras;
   avanza;
   derecha;
   mientras frente-libre hacer avanza;
   atras;
   si algun-zumbador-en-la-mochila entonces uno;
   gira-izquierda;
   mientras frente-libre hacer avanza;
   si junto-a-zumbador entonces
   inicio
   derecha;
   apagate;
   fin;
   atras;
   dos;
   fin;

  define-nueva-instruccion fissur como
  inicio
    si orientado-al-este entonces
    inicio
    si frente-bloqueado entonces
    inicio
    repetir 2 veces gira-izquierda;
    mientras frente-libre hacer avanza;
    si frente-bloqueado entonces
    inicio
    mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
    sal-de-instruccion;
    fin;
    fin
  fin;
  fin;
  define-nueva-instruccion fisnort como
      si frente-bloqueado entonces
    inicio
    si orientado-al-este entonces
    inicio
    repetir 3 veces gira-izquierda;
    mientras frente-libre hacer avanza;
    si frente-bloqueado entonces repetir 3 veces gira-izquierda;

    mientras frente-libre hacer avanza;
    si frente-bloqueado entonces
    inicio
    mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
    sal-de-instruccion;
    fin;
    fin;
    fin;

  define-nueva-instruccion solu como
   inicio
   mientras frente-libre hacer
    inicio
    mientras junto-a-zumbador hacer coge-zumbador;
    avanza;
    fin;
    si frente-bloqueado entonces
    mientras junto-a-zumbador hacer coge-zumbador;
    inicio
    si orientado-al-norte entonces
    inicio
    repetir 3 veces gira-izquierda;
    fisnort;
    si frente-bloqueado entonces sal-de-instruccion;
    avanza;
    repetir 3 veces gira-izquierda;
    solu;
    fin;
    si orientado-al-sur entonces
    inicio
    gira-izquierda;
    fissur;
    si frente-bloqueado entonces sal-de-instruccion;
    avanza;
    gira-izquierda;
    solu;
    fin;
    fin;
    fin;




   inicia-ejecucion
     mientras no-orientado-al-norte hacer gira-izquierda;
     solu;
     mientras junto-a-zumbador hacer coge-zumbador;
     mientras no orientado-al-este hacer gira-izquierda;
    repetir 49 veces avanza;
    gira-izquierda;
    deja-zumbador;
    gira-izquierda;
    avanza;
    deja-zumbador;
    atras;
    repetir 2 veces avanza;
    deja-zumbador;
    atras;
    avanza;
    derecha;
    avanza;
    deja-zumbador;
    atras;
    avanza;
    atras;
    si algun-zumbador-en-la-mochila entonces uno;
    gira-izquierda;
    mientras frente-libre hacer avanza;
    atras;
    dos;
    apagate;
    termina-ejecucion
finalizar-programa
