iniciar-programa
  define-nueva-instruccion NORTE como mientras no-orientado-al-norte hacer gira-izquierda;
  define-nueva-instruccion SUR como mientras no-orientado-al-sur hacer gira-izquierda;
  define-nueva-instruccion ESTE como mientras no-orientado-al-este hacer gira-izquierda;
  define-nueva-instruccion OESTE como mientras no-orientado-al-oeste hacer gira-izquierda;

  define-nueva-instruccion CAMINA como mientras frente-libre hacer avanza;

  define-nueva-instruccion IR-1-1 como inicio
    SUR;
    CAMINA;
    OESTE;
    CAMINA;
  fin;

  define-nueva-instruccion LLENAR-1s como inicio
    ESTE;
    mientras frente-libre hacer inicio
     deja-zumbador;
     avanza;
    fin;
    deja-zumbador;
    IR-1-1;
    ESTE;
  fin;

  define-nueva-instruccion BRINCA-PARED como inicio
    si orientado-al-este entonces inicio
      NORTE;
      mientras derecha-bloqueada y frente-libre hacer avanza;
      ESTE;
      si frente-libre entonces avanza;
      SUR;
      CAMINA;
    fin;
    si orientado-al-oeste entonces inicio
      NORTE;
      mientras izquierda-bloqueada y frente-libre hacer avanza;
      OESTE;
      si frente-libre entonces avanza;
      SUR;
      CAMINA;
    fin;
  fin;

  define-nueva-instruccion RECOGER(n) como inicio
    ESTE;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
      RECOGER(sucede(n));
    fin
    sino inicio
      CAMINA;
      BRINCA-PARED;
      ESTE;
      mientras junto-a-zumbador y frente-libre hacer avanza;
      repetir n veces deja-zumbador;
      IR-1-1;
      BRINCA-PARED;
      IR-1-1;                        
      ESTE;
      mientras no-junto-a-zumbador y frente-libre hacer avanza;
      si junto-a-zumbador entonces RECOGER(0);
    fin;
  fin;

  define-nueva-instruccion RECOGER-1s como inicio
    ESTE;
    mientras junto-a-zumbador hacer avanza;
    OESTE;
    si junto-a-zumbador entonces inicio
      mientras junto-a-zumbador y frente-libre hacer inicio
        coge-zumbador;
        avanza;
      fin;
      si frente-bloqueado entonces coge-zumbador;
      apagate;
    fin sino inicio
      si frente-libre entonces avanza;
      mientras junto-a-zumbador y frente-libre hacer inicio
        coge-zumbador;
        avanza;
      fin;
      si frente-bloqueado entonces coge-zumbador;
      apagate;
    fin;
  fin;


    inicia-ejecucion
      LLENAR-1s;
      RECOGER(0);
      BRINCA-PARED;
      RECOGER-1s;
        apagate;
    termina-ejecucion
finalizar-programa
