iniciar-programa
    define-nueva-instruccion gira(g) como inicio
       repetir g veces gira-izquierda;
    fin;
    define-nueva-instruccion esquina(e) como inicio
       avanza;
       gira(e);
    fin;
    define-nueva-instruccion multiplicando(q) como inicio
       si junto-a-zumbador entonces inicio
          coge-zumbador;
          multiplicando(q);
          si no-junto-a-zumbador y no-orientado-al-oeste entonces inicio
             gira(2);
             esquina(1);
             repetir 2 veces esquina(3);
             avanza;
          fin;
          repetir q veces deja-zumbador;
       fin;
    fin;
    define-nueva-instruccion multiplica(n) como inicio
       si junto-a-zumbador entonces inicio
          coge-zumbador;
          multiplica (sucede(n));
       fin sino inicio
          avanza;
          multiplicando(n);
       fin;
    fin;
    define-nueva-instruccion dividiendo(d) como inicio
       repetir d veces inicio
          si junto-a-zumbador entonces inicio
             coge-zumbador;
             gira(2);
             avanza;
             deja-zumbador;
             gira(2);
             avanza;
          fin sino inicio
             si no-junto-a-zumbador entonces inicio
                mientras no orientado-al-oeste hacer inicio
                   gira-izquierda;
                fin;
             fin;
          fin;
       fin;
       si no-orientado-al-oeste entonces inicio
          gira(2);
          avanza;
          repetir d veces coge-zumbador;
          gira-izquierda;
          esquina(1);
          avanza;
          esquina(1);
          avanza;
          deja-zumbador;
          gira(2);
          repetir 3 veces esquina(3);
          si junto-a-zumbador entonces inicio
             dividiendo(d);
          fin;
       fin;
    fin;
    define-nueva-instruccion divide(m) como inicio
       si junto-a-zumbador entonces inicio
          coge-zumbador;
          divide (sucede(m));
       fin sino inicio
          gira(2);
          repetir 2 veces esquina(1);
          avanza;
          si junto-a-zumbador entonces inicio
             dividiendo(m);
          fin;
       fin;
    fin;
    define-nueva-instruccion fuecero como inicio
       si no-orientado-al-oeste entonces inicio
          gira(2);
          esquina(1);
          repetir 2 veces esquina(3);
          avanza;
       fin;
    fin;
    inicia-ejecucion
        gira-izquierda;
        esquina(3);
        repetir 2 veces esquina(1);
        esquina(3);
        multiplica(0);
        fuecero;
        gira(2);
        avanza;
        esquina(1);
        avanza;
        divide(0);
        apagate;
    termina-ejecucion
finalizar-programa
