iniciar-programa
   define-nueva-instruccion karla como inicio
    si junto-a-zumbador entonces inicio
                              coge-zumbador;
                               apagate;
                           fin;
       si orientado-al-este entonces inicio
           si frente-libre entonces inicio
             avanza;
             fin;
           fin;
           si frente-bloqueado entonces inicio
             gira-izquierda;
             si junto-a-zumbador entonces inicio
                              coge-zumbador;
                               apagate;
                           fin;
             karla;
           fin;
           fin;

   define-nueva-instruccion samy como inicio
   si junto-a-zumbador entonces inicio
                              coge-zumbador;
                               apagate;
                           fin;
           mientras frente-libre y derecha-bloqueada y orientado-al-norte hacer inicio
             avanza;
              si junto-a-zumbador entonces inicio
                              coge-zumbador;
                               apagate;
                           fin;
              si derecha-libre entonces inicio
                  repetir 3 veces
                    gira-izquierda;
                    avanza;
                    fin;
                fin;
            mientras frente-libre y izquierda-bloqueada y orientado-al-sur hacer inicio
                avanza;
               fin;
             si izquierda-libre entonces inicio
                gira-izquierda;
                mientras frente-libre hacer
                avanza;
                fin;
           si frente-bloqueado y orientado-al-norte entonces inicio
             repetir 2 veces
               gira-izquierda;
                si junto-a-zumbador entonces inicio
                              coge-zumbador;
                               apagate;
                           fin;
               samy;
           fin;
           fin;
    define-nueva-instruccion dany como inicio
    si junto-a-zumbador entonces inicio
                              coge-zumbador;
                               apagate;
                           fin;
     si frente-bloqueado y orientado-al-este entonces inicio
            repetir 3 veces
            gira-izquierda;

             fin;
            mientras frente-libre y izquierda-bloqueada y orientado-al-sur hacer inicio
             avanza;
                 si izquierda-libre entonces inicio
                          gira-izquierda;
                      mientras frente-libre hacer
                          avanza;
                          si junto-a-zumbador entonces inicio
                              coge-zumbador;
                               apagate;
                           fin;
           dany;

           fin;
           fin;
           fin;
      define-nueva-instruccion recursion como inicio
         karla;
           samy;
           dany;
           recursion;
       fin;



    inicia-ejecucion
     karla; inicio
     samy;
     dany;
     recursion;
     fin;
        apagate;
    termina-ejecucion
finalizar-programa
