iniciar-programa
define-nueva-instruccion este como inicio
    mientras no-orientado-al-este  hacer inicio
        gira-izquierda;
    fin;
fin;
define-nueva-instruccion oeste como inicio
    mientras no-orientado-al-oeste hacer inicio
        gira-izquierda;
    fin;
fin;
define-nueva-instruccion sur como inicio
    mientras no-orientado-al-sur  hacer inicio
        gira-izquierda;
    fin;
fin;
define-nueva-instruccion mitad(c) como inicio
   si frente-libre entonces  inicio
        avanza;
       avanza;
      mitad(sucede(c));
    fin  sino  inicio
       repetir 2 veces inicio
           gira-izquierda;
       fin;
    repetir  c veces inicio
       avanza;
   fin;
   deja-zumbador;
  este;
fin;
fin;
define-nueva-instruccion  cambiar como inicio
    mientras frente-libre hacer  inicio
    avanza;
    fin;
    oeste;
    mientras izquierda-bloqueada y frente-libre hacer inicio
       avanzA;
   fin;
   si izquierda-libre entonces inicio
       gira-izquierda;
       avanza;
   oeste;
     mientras frente-libre hacer inicio
         avanza;
    fin;
    este;
    mitad(0);
        cambiar;
    fin;
fin;


inicia-ejecucion
   oeste;
    mientras frente-libre hacer inicio
        avanza;
    fin;    
    este;
    mitad(0);
  cambiar;

    apagate;
    termina-ejecucion
    finalizar-programa
