iniciar-programa
  define-nueva-instruccion norte como inicio
       mientras no-orientado-al-norte hacer inicio
           gira-izquierda;
       fin;
  fin;

 define-nueva-instruccion este como inicio
       mientras no-orientado-al-este hacer inicio
           gira-izquierda;
       fin;
  fin;

  define-nueva-instruccion sur como inicio
       mientras no-orientado-al-sur hacer inicio
           gira-izquierda;
       fin;
  fin;

 define-nueva-instruccion oeste como inicio
       mientras no-orientado-al-oeste hacer inicio
           gira-izquierda;
       fin;
  fin;


  define-nueva-instruccion tortas como inicio
         si junto-a-zumbador entonces inicio
            coge-zumbador;
            si no-junto-a-zumbador entonces inicio
               deja-zumbador
            fin sino inicio
               coge-zumbador;
               norte;
               si frente-libre entonces  inicio
                  avanza;
                  tortas;
                  sur;
                  avanza;
               fin;

               este;
               si frente-libre entonces inicio
                  avanza;
                  tortas;
                  oeste;
                  avanza;
               fin;

               sur;
               si frente-libre entonces  inicio
                  avanza;
                  tortas;
                  norte;
                  avanza;
               fin;

               oeste;
               si frente-libre entonces  inicio
                  avanza;
                  tortas;
                  este;
                  avanza;
               fin;
           fin;
     fin;
    fin;

    define-nueva-instruccion ir_11 como inicio
        norte;
        repetir 2 veces inicio
           gira-izquierda;
           mientras frente-libre hacer inicio
              avanza;
           fin;
        fin;
        este;
    fin;

    define-nueva-instruccion da1Torta como inicio
        si junto-a-zumbador   entonces inicio
           coge-zumbador;
           si junto-a-zumbador  entonces inicio
              deja-zumbador;
           fin sino inicio
              deja-zumbador;
              deja-zumbador;
              deja-zumbador
           fin;
        fin;
    fin;

    define-nueva-instruccion camina como inicio
        si frente-libre entonces inicio
           avanza;
        fin sino inicio
           si orientado-al-este entonces inicio
              norte;
              si frente-libre entonces inicio
                 avanza;
                 oeste;
              fin;
           fin sino inicio
              norte;
              si frente-libre entonces inicio
                 avanza;
                 este;
              fin;
           fin;
        fin;
    fin;



    define-nueva-instruccion reparte como inicio
      mientras no-orientado-al-norte y algun-zumbador-en-la-mochila hacer inicio
        da1Torta;
        camina;
      fin;
    fin;

    define-nueva-instruccion dejaSobrantes como inicio
      si algun-zumbador-en-la-mochila entonces inicio
          deja-zumbador;
          deja-zumbador;
          dejaSobrantes;
          deja-zumbador;
      fin sino inicio
         mientras junto-a-zumbador hacer inicio
            coge-zumbador;
         fin;
      fin;
    fin;


    inicia-ejecucion
        tortas;
        ir_11;
        reparte;
        ir_11;
        dejaSobrantes;
        apagate;
    termina-ejecucion
finalizar-programa