iniciar-programa
    define-nueva-instruccion gira(n) como
    inicio
       repetir n veces
          gira-izquierda;
    fin;
    define-nueva-instruccion aba como
    inicio
       si frente-libre entonces
       inicio
          avanza;
          aba;
          avanza;
       fin
       sino
       inicio
          deja-zumbador;
          gira(2);
       fin;

    fin;
    define-nueva-instruccion izq como
    inicio
       si frente-libre entonces
       inicio
          avanza;
          izq;
          avanza;
       fin
       sino
       inicio
          gira(1);
          aba;
          gira(3);
       fin;

    fin;
    define-nueva-instruccion dfs como
    inicio
       si junto-a-zumbador entonces
       inicio
          coge-zumbador;
          si no-junto-a-zumbador entonces
          inicio
             repetir 4 veces
             inicio
                si orientado-al-oeste entonces
                inicio
                   izq;
                   gira(2);
                 fin;
                gira-izquierda;
             fin;
          fin
          sino
             coge-zumbador;
         repetir 4 veces
         inicio
            si frente-libre entonces
            inicio
               avanza;
               si junto-a-zumbador entonces
                   dfs;
               gira(2);
               avanza;
               gira(2);
             fin;
             gira-izquierda;
          fin;
       fin;
   fin;

    inicia-ejecucion
       dfs;
        apagate;
    termina-ejecucion
finalizar-programa
