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

define-nueva-instruccion cuenta como
    inicio
        sur;
        mientras frente-libre  hacer avanza;
        oeste;
        mientras frente-libre  hacer avanza;
        deja-zumbador;
        este;
        avanza;
     fin;

     
define-nueva-instruccion coge-viga2 como
    inicio
        si frente-libre entonces
          inicio
              avanza;                                              
              mientras junto-a-zumbador hacer
                    inicio
                        coge-zumbador;
                        si frente-libre entonces avanza;
                    fin;
               si frente-bloqueado entonces
                    inicio
                        norte;
                        mientras no-junto-a-zumbador hacer avanza;
                        coge-zumbador;
                        este;
                    fin
           fin
           sino
              inicio
                  si junto-a-zumbador entonces  coge-zumbador;
                  este;
              fin;
   fin;


define-nueva-instruccion buscavigas como
    inicio
          mientras frente-libre y no-junto-a-zumbador hacer avanza;
          si junto-a-zumbador entonces
          inicio
            norte;
            si frente-libre entonces
              inicio
               avanza;
               si no-junto-a-zumbador entonces
                             inicio
                                 sur;
                                 avanza;
                                 coge-viga2;
                                 buscavigas;
                             fin
                         sino
                             inicio
                                 sur;
                                 avanza;
                                 este;
                                 si frente-libre entonces
                                     inicio
                                         avanza;
                                         buscavigas;
                                     fin
                                     sino
                                         inicio
                                             cuenta;
                                         fin;
                             fin;
                     fin
                     sino
                         inicio
                              sur;
                      coge-viga2;
                      buscavigas;
        fin;
    fin;
     fin;

define-nueva-instruccion coge-viga como
    inicio
   si frente-libre entonces
          inicio
       avanza;
       mientras junto-a-zumbador hacer
                    inicio
                        coge-zumbador;
                        si frente-libre entonces avanza;
                    fin;
               si frente-bloqueado entonces
                    inicio
                        norte;



                 mientras no-junto-a-zumbador hacer avanza;
                  coge-zumbador;
                   este;
                    fin
           fin
           sino
              inicio



             si junto-a-zumbador entonces  coge-zumbador;
                  este;
              fin;
          buscavigas;
    fin;


define-nueva-instruccion coloca-viga como
inicio
mientras frente-libre y no-junto-a-zumbador hacer avanza;
 si junto-a-zumbador entonces
  inicio
    norte;
    mientras junto-a-zumbador y frente-libre  hacer avanza;
     si junto-a-zumbador entonces  sur;
       si no-junto-a-zumbador entonces
        inicio
            sur;
     si frente-libre entonces avanza;
      fin;
      coge-viga;
    si frente-bloqueado y no-junto-a-zumbador entonces  cuenta;
     fin;

     fin;


    inicia-ejecucion
    mientras frente-libre y no-junto-a-zumbador  hacer coloca-viga;
        apagate;
    termina-ejecucion
finalizar-programa


