iniciar-programa
define-nueva-instruccion gira-derecha como
    inicio
        gira-izquierda;
        gira-izquierda;
        gira-izquierda;
    fin;
define-nueva-instruccion ala-pared como
    inicio
        mientras frente-libre hacer
            inicio
                avanza;
            fin;
    fin;
define-nueva-instruccion coloca-linea como
    inicio
        mientras no-junto-a-zumbador hacer
            inicio
                deja-zumbador;
                si frente-libre entonces
                    inicio
                        avanza;
                    fin;
            fin;
    fin;
define-nueva-instruccion voltea como
    inicio
        gira-izquierda;
        gira-izquierda;
    fin;
define-nueva-instruccion busca-alacranes como
    inicio
        ala-pared;
        si izquierda-bloqueada y derecha-bloqueada entonces
            inicio
                si junto-a-zumbador entonces
                    inicio
                        voltea;
                        avanza;
                        deja-zumbador;
                        ala-pared;
                        gira-izquierda;
                        si frente-libre entonces
                           inicio
                                avanza;
                                gira-izquierda;
                                busca-alacranes;
                           fin
                        sino
                            inicio
                                apagate;
                            fin;
                    fin
                sino
                    inicio
                        voltea;
                        ala-pared;
                        gira-izquierda;
                        si frente-libre entonces
                           inicio
                                avanza;
                                gira-izquierda;
                                busca-alacranes;
                           fin
                        sino
                            inicio
                                apagate;
                            fin;
                    fin;
            fin
        sino
            inicio
                mientras no-orientado-al-este hacer
                inicio
                    gira-izquierda;
                fin;
                mientras frente-libre hacer
                    inicio
                        si no-junto-a-zumbador entonces
                            inicio
                                 avanza;
                            fin;
                        si junto-a-zumbador entonces
                            inicio
                                ala-pared;
                                gira-derecha;
                                avanza;
                                deja-zumbador;
                                voltea;
                                avanza;
                                gira-izquierda;
                                ala-pared;
                                gira-izquierda;
                                avanza;
                                si no-junto-a-zumbador entonces
                                    inicio
                                        deja-zumbador;
                                    fin;
                                gira-izquierda;
                                avanza;
                                coloca-linea;
                                gira-derecha;
                                ala-pared;
                                gira-izquierda;
                                si frente-libre entonces
                                    inicio
                                        avanza;
                                        gira-izquierda;
                                        busca-alacranes;
                                    fin
                                sino
                                    inicio
                                        apagate;
                                    fin;
                            fin
                        sino
                            inicio
                                si frente-bloqueado entonces
                                    inicio
                                        gira-derecha;
                                        ala-pared;
                                        gira-izquierda;
                                        si frente-libre entonces
                                            inicio
                                                avanza;
                                                gira-izquierda;
                                                busca-alacranes;
                                            fin
                                        sino
                                            inicio
                                                apagate;
                                            fin;
                                    fin;
                            fin;
                    fin;
            fin;
    fin;
inicia-ejecucion
busca-alacranes;
termina-ejecucion
finalizar-programa