iniciar-programa
  define-nueva-instruccion frijol como inicio
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir 1 veces
      deja-zumbador;
      sal-de-instruccion;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir 2 veces
      deja-zumbador;
      sal-de-instruccion;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir  3 veces
      deja-zumbador;
      sal-de-instruccion;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir 4 veces
      deja-zumbador;
      sal-de-instruccion;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir 5 veces
      deja-zumbador;
      sal-de-instruccion;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir 6 veces
      deja-zumbador;
      sal-de-instruccion;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir 7 veces
      deja-zumbador;
      sal-de-instruccion;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir 8 veces
      deja-zumbador;
      sal-de-instruccion;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir  9 veces
      deja-zumbador;
      sal-de-instruccion;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir 10 veces
      deja-zumbador;
      sal-de-instruccion;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir 11 veces
      deja-zumbador;
      sal-de-instruccion;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir 12 veces
      deja-zumbador;
      sal-de-instruccion;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir 13 veces
      deja-zumbador;
      sal-de-instruccion;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir 14 veces
      deja-zumbador;
      sal-de-instruccion;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir 11 veces
      deja-zumbador;
      apagate;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir 15 veces
      deja-zumbador;
      sal-de-instruccion;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir 16 veces
      deja-zumbador;
      sal-de-instruccion;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir 17 veces
      deja-zumbador;
      sal-de-instruccion;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir 18 veces
      deja-zumbador;
      sal-de-instruccion;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir 19 veces
      deja-zumbador;
      sal-de-instruccion;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir 20 veces
      deja-zumbador;
      sal-de-instruccion;
    fin;
    si junto-a-zumbador entonces inicio
      coge-zumbador;
    fin;
    si no junto-a-zumbador entonces inicio
      repetir 10 veces
      deja-zumbador;
      apagate;
    fin;
    si junto-a-zumbador entonces inicio
         repetir 22 veces
        deja-zumbador;
    fin;
 fin;
    define-nueva-instruccion gira(n) como inicio
      repetir n veces gira-izquierda;
    fin;
    define-nueva-instruccion busca(n) como inicio
      si no-junto-a-zumbador entonces inicio
        deja-zumbador;
        repetir 4 veces inicio
          si frente-libre entonces inicio
            avanza;
            busca(sucede(n));
            gira(2);
            avanza;
            gira(2);
          fin;
          gira(1);
        fin;
      fin
      sino inicio
        si junto-a-zumbador entonces coge-zumbador;
          si junto-a-zumbador entonces inicio
            repetir n veces deja-zumbador;
            deja-zumbador;
          fin
          sino deja-zumbador;
      fin;
    fin;
    define-nueva-instruccion coge-zumbadores como inicio
      si junto-a-zumbador entonces inicio
        coge-zumbador;
        si junto-a-zumbador entonces inicio
          deja-zumbador;
        fin;
        repetir 4 veces inicio
          si frente-libre entonces inicio
            avanza;
            coge-zumbadores;
            gira(2);
            avanza;
            gira(2);
          fin;
          gira(1);
        fin;
      fin;
    fin;
    define-nueva-instruccion compara(n) como inicio
      si no si-es-cero(n) y junto-a-zumbador entonces inicio
        coge-zumbador;
        compara(precede(n));
        si orientado-al-oeste entonces deja-zumbador;
      fin
      sino inicio
        si junto-a-zumbador entonces inicio
          mientras junto-a-zumbador hacer coge-zumbador;
        fin
        sino inicio
          mientras no-orientado-al-oeste hacer gira-izquierda;
        fin;
      fin;
    fin;
    define-nueva-instruccion pasos(n) como inicio
      si no-junto-a-zumbador entonces inicio
        deja-zumbador;
        repetir 4 veces inicio
          si frente-libre entonces inicio
            avanza;
            pasos(sucede(n));
            gira(2);
            avanza;
            gira(2);
          fin;
          gira(1);
        fin;
      fin
      sino inicio
        si junto-a-zumbador entonces coge-zumbador;
        si junto-a-zumbador entonces inicio
          deja-zumbador;
          si junto-a-zumbador entonces inicio
            si no-orientado-al-este entonces inicio
              gira-izquierda;
              si no-orientado-al-este entonces inicio
                gira-izquierda;
                si no-orientado-al-este entonces inicio
                  gira-izquierda;
                  compara(n);
                  si no-junto-a-zumbador entonces inicio
                    repetir n veces deja-zumbador;
                  fin;
                  si orientado-al-este entonces gira(1)
                  sino gira(3);
                fin
                sino inicio
                  compara(n);
                  si no-junto-a-zumbador entonces inicio
                    repetir n veces deja-zumbador;
                  fin;
                  si orientado-al-este entonces gira(2)
                fin;
              fin
              sino inicio
                compara(n);
                si no-junto-a-zumbador entonces inicio
                  repetir n veces deja-zumbador;
                fin;
                si orientado-al-oeste entonces gira(1)
                sino gira(3);
              fin;
            fin
            sino inicio
              compara(n);
              si no-junto-a-zumbador entonces inicio
                repetir n veces deja-zumbador;
              fin;
              si orientado-al-oeste entonces gira(2);
            fin;
          fin;
        fin
        sino deja-zumbador;
      fin;
    fin;
    define-nueva-instruccion pasos2(n) como inicio
      si no-junto-a-zumbador entonces inicio
        deja-zumbador;
        repetir 4 veces inicio
          si frente-libre entonces inicio
            avanza;
            pasos2(sucede(n));
            gira(2);

            avanza;
            gira(2);
          fin;
          gira(1);
        fin;
      fin
      sino inicio
        si junto-a-zumbador entonces coge-zumbador;
        si junto-a-zumbador entonces inicio
          deja-zumbador;
          si junto-a-zumbador entonces inicio
            si no-orientado-al-este entonces inicio
              gira-izquierda;
              si no-orientado-al-este entonces inicio
                gira-izquierda;
                si no-orientado-al-este entonces inicio
                  gira-izquierda;
                  compara(n);
                  si no-junto-a-zumbador entonces inicio
                    repetir n veces deja-zumbador;
                  fin;
                  si orientado-al-este entonces gira(1)
                  sino gira(3);
                fin
                sino inicio
                  compara(n);
                  si no-junto-a-zumbador entonces inicio
                    repetir n veces deja-zumbador;
                  fin;
                  frijol;
                  si orientado-al-este entonces gira(2);
                fin;
              fin
              sino inicio
                compara(n);
                si no-junto-a-zumbador entonces inicio
                  repetir n veces deja-zumbador;
                fin;
                si orientado-al-oeste entonces gira(1)
                sino gira(3);
              fin;
            fin
            sino inicio
              compara(n);
              si no-junto-a-zumbador entonces inicio
                repetir n veces deja-zumbador;
              fin;
              frijol;
              si orientado-al-oeste entonces gira(2);
            fin;
          fin;
        fin
        sino deja-zumbador;
      fin;
    fin;
  inicia-ejecucion
       busca(0);
       coge-zumbadores;
       pasos2(0);
       gira-izquierda;
       coge-zumbadores;
       pasos(0);
       gira-izquierda;
       coge-zumbadores;
       pasos(0);
       gira-izquierda;
       coge-zumbadores;
       pasos(0);
       coge-zumbadores;
       pasos(0);
       coge-zumbador;
        apagate;
    termina-ejecucion
finalizar-programa
