iniciar-programa
    define-nueva-instruccion gira(n) como
    inicio
       repetir n veces
          gira-izquierda;
    fin;
    define-nueva-instruccion final como
    inicio
       si frente-libre entonces
       inicio
          avanza;
          final;
          deja-zumbador;
       fin
       sino
       inicio
          gira-izquierda;
          avanza;
          gira-izquierda;
          avanza;
          avanza;
       fin;
    fin;
    define-nueva-instruccion corre(n) como
    inicio
       mientras frente-libre hacer
       inicio
          repetir n veces
             si frente-libre entonces
                avanza;
          si junto-a-zumbador entonces
          inicio
              gira(2);
              final;
              apagate;
          fin
          sino
           deja-zumbador;
       fin;
    fin;
    define-nueva-instruccion cuenta(n) como
    inicio
       si junto-a-zumbador entonces
       inicio
          coge-zumbador;
          cuenta(sucede(n));
       fin
       sino
       inicio
          mientras no-orientado-al-oeste hacer
             gira-izquierda;
          mientras frente-libre hacer
             avanza;
          gira(3);
          avanza;
          gira(3);
          corre(n);
       fin;
    fin;

    inicia-ejecucion
       mientras no-orientado-al-oeste hacer
          gira-izquierda;
       mientras frente-libre hacer
          avanza;
       gira(1);
       mientras frente-libre hacer
           avanza;
       cuenta(0);
       gira(2);
       mientras frente-libre hacer
          avanza;
       gira(1);
       avanza;
       gira(1);
       avanza;
       cuenta(0);
        apagate;
    termina-ejecucion
finalizar-programa
