iniciar-programa

define-nueva-instruccion dejazumbador como inicio
  si no junto-a-zumbador   entonces inicio
repetir 1 veces deja-zumbador;
sal-de-instruccion;
fin;
si junto-a-zumbador   entonces coge-zumbador;
si no junto-a-zumbador   entonces inicio
repetir 2 veces deja-zumbador;
sal-de-instruccion;
fin;

 si junto-a-zumbador   entonces coge-zumbador;
          si no junto-a-zumbador   entonces inicio
repetir 3 veces deja-zumbador;
sal-de-instruccion;
fin;
 si junto-a-zumbador   entonces coge-zumbador;
          si no junto-a-zumbador   entonces inicio
repetir 4 veces deja-zumbador;
sal-de-instruccion;
fin;
 si junto-a-zumbador   entonces coge-zumbador;
          si no junto-a-zumbador   entonces inicio
repetir 5 veces deja-zumbador;
sal-de-instruccion;
fin;
 si junto-a-zumbador   entonces coge-zumbador;
          si no junto-a-zumbador   entonces inicio
repetir 6 veces deja-zumbador;
sal-de-instruccion;
fin;
 si junto-a-zumbador   entonces coge-zumbador;
          si no junto-a-zumbador   entonces inicio
repetir 7 veces deja-zumbador;
sal-de-instruccion;
fin;
 si junto-a-zumbador   entonces coge-zumbador;
          si no junto-a-zumbador   entonces inicio
repetir 8 veces deja-zumbador;
sal-de-instruccion;
fin;

          si  junto-a-zumbador   entonces inicio
repetir 7 veces deja-zumbador;
sal-de-instruccion;
fin;
fin;

define-nueva-instruccion rec como inicio
                               si no  frente-libre  entonces inicio
                               gira-izquierda;
                                  si frente-libre  entonces inicio
                             avanza;
                             dejazumbador;
                             gira-izquierda;
                             avanza;
                                 dejazumbador;
                                    gira-izquierda;
                             avanza;
                             dejazumbador;
                               fin;
                                   si no frente-libre y  orientado-al-norte entonces inicio
                                    gira-izquierda;
                                    avanza;
                                    dejazumbador;
                                        gira-izquierda;
                                    avanza;
                                    dejazumbador; gira-izquierda;
                                    avanza;
                                    dejazumbador;
                                          gira-izquierda;
                                    avanza;
                                       apagate;

                                       fin;

                                 si no frente-libre  entonces inicio
                                    gira-izquierda;
                                     avanza;
                                     sal-de-instruccion;

                                 fin;
                                   si frente-libre  entonces inicio
                             avanza;
                             dejazumbador;
                             gira-izquierda;
                             avanza;  dejazumbador;
                               gira-izquierda;
                               avanza;
                                 gira-izquierda;  gira-izquierda; gira-izquierda;
                                 sal-de-instruccion;
                              fin;
                                      avanza;
                                       gira-izquierda;
                                 sal-de-instruccion;
                                   fin;

                             si frente-libre  entonces inicio
                             avanza;
                             dejazumbador;
                             gira-izquierda;
                                                 si no frente-libre entonces  inicio
                                    gira-izquierda; gira-izquierda;
                                    avanza;
                                      dejazumbador;
                                   gira-izquierda; gira-izquierda;gira-izquierda;
                                   avanza;
                                      dejazumbador;
                                       si frente-libre entonces inicio
                             avanza;
                                    dejazumbador;
                                     gira-izquierda; gira-izquierda;gira-izquierda;
                                   avanza;
                                      dejazumbador;
                                      gira-izquierda; gira-izquierda;gira-izquierda;
                                      avanza;
                                      sal-de-instruccion ;
                                      fin;
                                       gira-izquierda; gira-izquierda;gira-izquierda;
                                      avanza;
                                      gira-izquierda; gira-izquierda;gira-izquierda;
                                        sal-de-instruccion ;

                                   fin;



                             si frente-libre entonces inicio
                             avanza;
                                 dejazumbador;
                                   gira-izquierda;
                                   avanza;
                                   dejazumbador;
                                   fin;

                                     si no frente-libre entonces inicio
                                          gira-izquierda;
                                   avanza;

                                        si frente-libre entonces inicio
                                         avanza;
                                 dejazumbador;
                                 gira-izquierda;
                                        avanza;
                                 dejazumbador;
                                 gira-izquierda;
                                 avanza;
                                     gira-izquierda;
                                     avanza;
                                      gira-izquierda;
                                      gira-izquierda;
                                       sal-de-instruccion;
                                       fin;
gira-izquierda;
                                       sal-de-instruccion;
                                       fin;




                                     si frente-libre entonces inicio
                                         avanza;
                                 dejazumbador;
                                   gira-izquierda;
                                    avanza;
                                 dejazumbador;
                                 fin;
                                    si no  frente-libre entonces inicio
                                      gira-izquierda;
                                    avanza;
                                    sal-de-instruccion;
                                    fin;

                                       si frente-libre entonces inicio
                                         avanza;
                                 dejazumbador;
                                   gira-izquierda;
                                    avanza;
                                 dejazumbador;
                                     avanza;
                                 dejazumbador;
                                    gira-izquierda;
                                    avanza;
                                     gira-izquierda;
                                    avanza;
                                     gira-izquierda; gira-izquierda; fin;


                                     fin;



                                      si no frente-libre entonces  inicio
                                    gira-izquierda;
                                    avanza;
                                      dejazumbador;
                                   gira-izquierda;
                                   fin;

                                     fin;

              define-nueva-instruccion ri como inicio
              si junto-a-zumbador   entonces coge-zumbador;
                si no junto-a-zumbador   entonces inicio
repetir 1 veces deja-zumbador;
sal-de-instruccion;
fin;
si junto-a-zumbador   entonces coge-zumbador;
si no junto-a-zumbador   entonces inicio
repetir 2 veces deja-zumbador;
sal-de-instruccion;
fin;

 si junto-a-zumbador   entonces coge-zumbador;
          si no junto-a-zumbador   entonces inicio
repetir 3 veces deja-zumbador;
sal-de-instruccion;
fin;
 si junto-a-zumbador   entonces coge-zumbador;
          si no junto-a-zumbador   entonces inicio
repetir 4 veces deja-zumbador;
sal-de-instruccion;
fin;
 si junto-a-zumbador   entonces coge-zumbador;
          si no junto-a-zumbador   entonces inicio
repetir 5 veces deja-zumbador;
sal-de-instruccion;
fin;
 si junto-a-zumbador   entonces coge-zumbador;
          si no junto-a-zumbador   entonces inicio
repetir 6 veces deja-zumbador;
sal-de-instruccion;
fin;
 si junto-a-zumbador   entonces coge-zumbador;
          si no junto-a-zumbador   entonces inicio
repetir 7 veces deja-zumbador;
sal-de-instruccion;
fin;
 si junto-a-zumbador   entonces coge-zumbador;
          si no junto-a-zumbador   entonces inicio
repetir 8 veces deja-zumbador;
sal-de-instruccion;
fin;

          si  junto-a-zumbador   entonces inicio
          rec;
repetir 8 veces deja-zumbador;

sal-de-instruccion;
fin;
fin;









define-nueva-instruccion re como inicio
  mientras  frente-libre y no junto-a-zumbador   hacer avanza;
 si  junto-a-zumbador entonces  inicio

       ri;


      si no frente-libre  entonces inicio
      gira-izquierda;
   si frente-libre  entonces  avanza;
              gira-izquierda;
              re;
              fin;

                si frente-libre entonces inicio

                avanza;
                   fin;
       fin;
       si   frente-bloqueado y orientado-al-este entonces  inicio
               si  junto-a-zumbador entonces  inicio
          ri;

       fin;
      gira-izquierda;
      si  frente-bloqueado   entonces  apagate;
      avanza;
          gira-izquierda;

          fin;


              si   frente-bloqueado y orientado-al-oeste entonces  inicio
                    si  junto-a-zumbador entonces  inicio
   ri;




       fin;


               gira-izquierda;gira-izquierda;gira-izquierda;
                 si  frente-bloqueado   entonces apagate;

               avanza;

               gira-izquierda;gira-izquierda;gira-izquierda;
                               fin;
               re;
               fin;













    inicia-ejecucion
    si   orientado-al-norte entonces inicio
    gira-izquierda; gira-izquierda;
    mientras  frente-libre hacer avanza;
     gira-izquierda; gira-izquierda;  gira-izquierda;
       mientras  frente-libre hacer avanza;
       gira-izquierda; gira-izquierda;
       fin;
             si   orientado-al-este entonces inicio
              gira-izquierda; gira-izquierda;
    mientras  frente-libre hacer avanza;
     gira-izquierda;
    mientras  frente-libre hacer avanza;
gira-izquierda;
fin;
           si   orientado-al-oeste entonces inicio

    mientras  frente-libre hacer avanza;
     gira-izquierda;
    mientras  frente-libre hacer avanza;
gira-izquierda;
fin;
    si   orientado-al-sur entonces inicio

    mientras  frente-libre hacer avanza;
     gira-izquierda;   gira-izquierda;  gira-izquierda;
    mientras  frente-libre hacer avanza;
gira-izquierda;
  gira-izquierda;
fin;
re;


        apagate;
    termina-ejecucion
finalizar-programa
