iniciar-programa
define-nueva-instruccion compara(n)como
inicio
  coge-zumbador;
  si no si-es-cero(precede(n)) y junto-a-zumbador entonces
    compara(precede(n))
  sino si si-es-cero(precede(n)) y no-junto-a-zumbador entonces
  mientras no-orientado-al-norte hacer gira-izquierda
  sino
   mientras no-orientado-al-sur hacer gira-izquierda;
   deja-zumbador;
  fin;
  define-nueva-instruccion suba como
  inicio
     si frente-libre entonces
     inicio
        avanza;
        si junto-a-zumbador entonces
        inicio
            mientras no-orientado-al-este hacer gira-izquierda;
            compara(9);
            si orientado-al-sur entonces
            deja-zumbador
            sino repetir 2 veces gira-izquierda;
          fin
          sino deja-zumbador;
          repetir 2 veces gira-izquierda;
          avanza;
          repetir 2 veces gira-izquierda;
      fin
    fin;
     define-nueva-instruccion sube como
  inicio
     si frente-libre entonces
     inicio
        avanza;
        si junto-a-zumbador entonces
        inicio
            mientras no-orientado-al-este hacer gira-izquierda;
            compara(9);
            si orientado-al-sur entonces
            inicio
              deja-zumbador;
              repetir 2 veces gira-izquierda;
            fin;
          fin
          sino deja-zumbador;
          repetir 2 veces gira-izquierda;
          avanza;
          repetir 2 veces gira-izquierda;
      fin
    fin;
     define-nueva-instruccion subi como
  inicio
     si frente-libre entonces
     inicio
        avanza;
        si junto-a-zumbador entonces
        inicio
            mientras no-orientado-al-este hacer gira-izquierda;
            compara(9);
            si orientado-al-sur entonces
            inicio
              deja-zumbador;
              repetir 3 veces gira-izquierda;
             fin
            sino gira-izquierda;
          fin
          sino deja-zumbador;
          repetir 2 veces gira-izquierda;
          avanza;
          repetir 2 veces gira-izquierda;
      fin
    fin;
     define-nueva-instruccion subo como
  inicio
     si frente-libre entonces
     inicio
        avanza;
        si junto-a-zumbador entonces
        inicio
            mientras no-orientado-al-este hacer gira-izquierda;
            compara(9);
            si orientado-al-sur entonces
            inicio
              deja-zumbador;
              gira-izquierda;
            fin
            sino repetir 3 veces gira-izquierda;
          fin
          sino deja-zumbador;
          repetir 2 veces gira-izquierda;
          avanza;
          repetir 2 veces gira-izquierda;
      fin
    fin;
  define-nueva-instruccion llena como
inicio
   si frente-libre y derecha-libre entonces
   inicio
      repetir 3 veces gira-izquierda;
      avanza;
      gira-izquierda;
      avanza;
      si junto-a-zumbador entonces
      inicio
        compara(9);
        si orientado-al-sur entonces
         deja-zumbador
         sino repetir 2 veces gira-izquierda;
       fin
       sino
       inicio
          repetir 2 veces gira-izquierda;
          deja-zumbador;
        fin;
       avanza;
       repetir 3 veces gira-izquierda;
       avanza;
       repetir 3 veces gira-izquierda;
     fin;
   fin;
     define-nueva-instruccion lleno como
inicio
   si frente-libre y izquierda-libre entonces
   inicio
      gira-izquierda;
      avanza;
      repetir 3 veces gira-izquierda;
      avanza;
      si junto-a-zumbador entonces
      inicio
        compara(9);
        si orientado-al-sur entonces
         deja-zumbador
         sino repetir 2 veces gira-izquierda;
       fin
       sino
       inicio
          repetir 2 veces gira-izquierda;
          deja-zumbador;
        fin;
       avanza;
        gira-izquierda;
       avanza;
        gira-izquierda;
     fin;
   fin;
    define-nueva-instruccion llenan como
inicio
   si frente-libre y derecha-libre entonces
   inicio
      repetir 3 veces gira-izquierda;
      avanza;
      gira-izquierda;
      avanza;
      si junto-a-zumbador entonces
      inicio
        compara(9);
        si orientado-al-sur entonces
        inicio
         deja-zumbador;
         repetir 2 veces gira-izquierda;
         fin;
       fin
       sino
       inicio
          repetir 2 veces gira-izquierda;
          deja-zumbador;
        fin;
       avanza;
       repetir 3 veces gira-izquierda;
       avanza;
       repetir 3 veces gira-izquierda;
     fin;
   fin;
     define-nueva-instruccion llenon como
inicio
   si frente-libre y izquierda-libre entonces
   inicio
      gira-izquierda;
      avanza;
      repetir 3 veces gira-izquierda;
      avanza;
      si junto-a-zumbador entonces
      inicio
        compara(9);
        si orientado-al-sur entonces
        inicio
         deja-zumbador;
         repetir 2 veces gira-izquierda;
        fin;
       fin
       sino
       inicio
          repetir 2 veces gira-izquierda;
          deja-zumbador;
        fin;
       avanza;
        gira-izquierda;
       avanza;
        gira-izquierda;
     fin;
   fin;

define-nueva-instruccion busca como
inicio
 si junto-a-zumbador entonces
 inicio
   compara(9);
   si orientado-al-norte entonces
   inicio

     llena;
     lleno;
     repetir 2 veces gira-izquierda;
     llenan;
     llenon;
     repetir 2 veces gira-izquierda;
        sube;
        gira-izquierda;
        subi;
        gira-izquierda;
        suba;
        gira-izquierda;
        subo;
        gira-izquierda;

    fin;
   fin;
      mientras no-orientado-al-este hacer gira-izquierda;
      si frente-libre entonces
      inicio
        avanza;
        busca;
      fin
      sino
      inicio
        gira-izquierda;
        si frente-bloqueado  entonces apagate
        sino
        inicio
          avanza;
          gira-izquierda;
          mientras frente-libre hacer avanza;
          repetir 2 veces gira-izquierda;
          busca;
        fin;
      fin;
    fin;



    inicia-ejecucion
    mientras no-orientado-al-sur hacer gira-izquierda;
    mientras frente-libre hacer avanza;
    repetir 3 veces gira-izquierda;
    mientras frente-libre hacer avanza;
    repetir 2 veces gira-izquierda;
    busca;

        apagate;
    termina-ejecucion
finalizar-programa
