iniciar-programa
define-nueva-instruccion norte como mientras no-orientado-al-norte hacer gira-izquierda;
define-nueva-instruccion sur como mientras no-orientado-al-sur hacer gira-izquierda;
define-nueva-instruccion este como mientras no-orientado-al-este hacer gira-izquierda;
define-nueva-instruccion oeste como mientras no-orientado-al-oeste hacer gira-izquierda;
 define-nueva-instruccion busca-ezquinas como
     inicio
         mientras frente-libre hacer
             inicio
                 deja-zumbador;
                 avanza;
                 norte;
                 avanza;
                 este;
             fin;
         deja-zumbador;
         sur;
         mientras frente-libre hacer avanza;
         oeste;
         mientras frente-libre hacer
             inicio
                 si no-junto-a-zumbador entonces deja-zumbador;
                 avanza;
                 norte;
                 avanza;
                 oeste;
             fin;
         deja-zumbador;
         sur;
         mientras frente-libre hacer avanza;
         este;
     fin;

define-nueva-instruccion marca-fin como
    inicio
        si frente-libre entonces
            inicio
                avanza;
                avanza;
                marca-fin;
                avanza;
            fin
            sino repetir 2 veces gira-izquierda;
    fin;

define-nueva-instruccion deja como
    inicio
        repetir 3 veces gira-izquierda;
        deja-zumbador;
        mientras frente-libre hacer
            inicio
                avanza;
                si no-junto-a-zumbador entonces deja-zumbador;
            fin;
    fin;

    inicia-ejecucion
        sur;
        mientras frente-libre hacer avanza;
        oeste;
        mientras frente-libre hacer avanza;
        este;
        busca-ezquinas;
        este;
        marca-fin;
        deja;
        oeste;
        mientras frente-libre hacer avanza;
        sur;
        marca-fin;
        deja;
        apagate;
        apagate;
    termina-ejecucion
finalizar-programa
