iniciar-programa
        define-nueva-instruccion escuela(x) como inicio
            mientras orientado-al-sur hacer inicio
                si orientado-al-sur entonces inicio
                    mientras no orientado-al-oeste hacer gira-izquierda;
                    mientras frente-libre hacer avanza;
                    gira-izquierda;
                fin;
                mientras frente-libre y izquierda-libre hacer avanza;

                si frente-bloqueado entonces inicio
                    mientras no orientado-al-oeste hacer gira-izquierda;
                    mientras frente-libre hacer avanza;
                    mientras no orientado-al-sur hacer gira-izquierda;
                    si frente-bloqueado entonces inicio
                        mientras no orientado-al-este hacer gira-izquierda;
                        mientras derecha-bloqueada y frente-libre hacer avanza;
                        si derecha-libre entonces repetir 3 veces gira-izquierda;
                            si frente-bloqueado entonces inicio
                                mientras no orientado-al-oeste hacer gira-izquierda;
                                mientras frente-libre hacer avanza;
                                repetir x veces deja-zumbador;
                            fin;


                        si izquierda-libre y frente-libre entonces avanza;
                        si derecha-libre y frente-libre entonces avanza;
                    fin;

                fin;

                si frente-libre y izquierda-bloqueada y izquierda-bloqueada entonces inicio
                    si izquierda-bloqueada y derecha-bloqueada entonces avanza;
                    escuela(sucede(x));


                fin;



            fin;

        fin;


    inicia-ejecucion
    escuela(0);
        apagate;
    termina-ejecucion
finalizar-programa
