iniciar-programa
define-nueva-instruccion gira(e) como repetir e veces gira-izquierda;
   define-nueva-instruccion cima como inicio
       mientras no orientado-al-oeste hacer gira-izquierda;
       mientras no junto-a-zumbador hacer avanza;
       mientras junto-a-zumbador hacer inicio
           gira(3);
           avanza;
           gira(1);
           avanza;
       fin;
       gira(2);
       avanza;
       gira(3);
       avanza;
   fin;
define-nueva-instruccion busca como inicio
    mientras frente-libre hacer inicio
        mientras junto-a-zumbador hacer coge-zumbador;
        avanza;
        mientras junto-a-zumbador hacer coge-zumbador;
    fin;
    gira(2);
    mientras frente-libre hacer avanza;
    gira(3);
    si frente-libre entonces inicio
        avanza;
        gira(3);
        busca;
    fin sino inicio
       gira(2);
       mientras frente-libre hacer avanza;
    fin;

fin;
define-nueva-instruccion piramide como inicio
   avanza;
   gira(3);
  si frente-libre entonces  avanza sino inicio
     cima;
     mientras no orientado-al-norte hacer gira-izquierda;
     si algun-zumbador-en-la-mochila entonces piramide sino apagate;
  fin;
   deja-zumbador;
   mientras no orientado-al-sur hacer gira-izquierda;
   mientras frente-libre hacer inicio
     si no junto-a-zumbador entonces  deja-zumbador;
       avanza;
       si frente-bloqueado y no junto-a-zumbador entonces deja-zumbador;
   fin;
   gira(2);
   mientras junto-a-zumbador hacer avanza;
   gira(2);
   avanza;
   gira(1);
  piramide;

fin;
    inicia-ejecucion
    mientras no orientado-al-este hacer gira-izquierda;
    busca;
    gira(1);
    repetir 3 veces inicio
        deja-zumbador;
        avanza;
    fin;
    gira(1);
    avanza;
    gira(1);
    repetir 2 veces avanza;
    deja-zumbador;
    gira(3);
    mientras algun-zumbador-en-la-mochila hacer piramide;
        apagate;
    termina-ejecucion
finalizar-programa
