iniciar-programa
define-nueva-instruccion gira(n) como inicio
   repetir n veces gira-izquierda;
   fin;
define-nueva-instruccion puntaje(n) como inicio
   si si-es-cero(n) entonces inicio
      si junto-a-zumbador entonces inicio
         mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
         coge-zumbador;
         apagate;
         fin;
      mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
      apagate;
      fin;
   repetir 4 veces inicio
      repetir n veces inicio
         si junto-a-zumbador entonces coge-zumbador;
         avanza;
         fin;
      gira(3);
      fin;
   repetir 2 veces avanza;
   gira(3);
   repetir 2 veces avanza;
   gira(1);
   puntaje(precede(precede(precede(precede(n)))));
   fin;
define-nueva-instruccion cuenta(n) como inicio
   si (no si-es-cero(n) o frente-libre)
   y junto-a-zumbador y orientado-al-este entonces inicio
      si frente-libre entonces inicio
         avanza;
         fin
      sino inicio
         gira(2);
         avanza;
         gira(1);
         avanza;
         fin;
      cuenta(sucede(n));
      fin;
   si orientado-al-este entonces inicio
      gira(2);
      si no-junto-a-zumbador entonces inicio
         repetir 2 veces avanza;
         fin
      sino avanza;
      gira(1);
      avanza;
      puntaje(n);
      fin;
   puntaje(n);
   fin;
    inicia-ejecucion
       gira(1);
       avanza;
       gira(3);
       repetir 2 veces si frente-libre entonces avanza;
          cuenta(0);
        apagate;
    termina-ejecucion
finalizar-programa
