iniciar-programa
    define-nueva-instruccion gira(n) como
     inicio
      repetir n veces
       gira-izquierda;
     fin;
    define-nueva-instruccion arriba(n) como
     inicio
     si si-es-cero (n) entonces
      gira(2)
     sino
      si junto-a-zumbador entonces
       inicio
        coge-zumbador;
        arriba(precede(n));
        deja-zumbador;
       fin;
     fin;
    define-nueva-instruccion cuenta(n) como
     inicio
      si junto-a-zumbador entonces
       inicio
        coge-zumbador;
        cuenta(sucede(n));
        deja-zumbador;
       fin
      sino
       inicio
        avanza;
        arriba(n);
        si orientado-al-sur entonces
         inicio
          avanza;
          gira(2);
         fin
        sino
        inicio
        gira(2);
        avanza;
        fin;
       fin;
     fin;
  define-nueva-instruccion cosa(n) como
     inicio
      si junto-a-zumbador entonces
       inicio
        coge-zumbador;
        cosa(sucede(n));
        deja-zumbador;
       fin
      sino
       inicio
        avanza;
        arriba(n);
        si orientado-al-oeste entonces
         inicio
          avanza;
          gira(2);
         fin
        sino
        inicio
        gira(2);
        avanza;
        fin;
       fin;
     fin;
    inicia-ejecucion
      cuenta(0);
      mientras orientado-al-norte hacer
       inicio
        avanza;
        cuenta(0);
       fin;
      gira(1);
      cosa(0);
      mientras orientado-al-este hacer
       inicio
        avanza;
        cosa(0);
       fin;
      apagate;
    termina-ejecucion
finalizar-programa
