iniciar-programa
define-nueva-instruccion voltea como
inicio
    repetir 2 veces gira-izquierda;
fin;
define-nueva-instruccion gira-derecha como
inicio
    repetir 3 veces gira-izquierda;
fin;
define-nueva-instruccion busqueda (x) como
inicio
voltea;mientras frente-libre hacer avanza;
voltea;si frente-bloqueado entonces
  inicio
      gira-derecha;si frente-libre entonces
      inicio
          avanza;gira-izquierda;busqueda(sucede(x));
      fin
      sino
      inicio
          mientras no-orientado-al-oeste hacer gira-izquierda;
          mientras frente-libre hacer avanza;
          voltea;repetir x veces deja-zumbador; apagate;
      fin;
  fin
  sino
  inicio
      mientras derecha-bloqueada hacer
      inicio
          si frente-libre entonces
          inicio
              avanza;
          fin
          sino
          inicio
              mientras no-orientado-al-oeste hacer gira-izquierda;
              mientras frente-libre hacer avanzA;
              voltea;repetir x veces deja-zumbador;apagate;
          fin;
      fin;
      gira-derecha;avanza;mientras no-orientado-al-oeste hacer gira-izquierda;
      mientras frente-libre hacer avanza;
      voltea;busqueda(x);
  fin;
fin;
define-nueva-instruccion go como
inicio
    mientras frente-libre o frente-bloqueado hacer
    inicio
        mientras no-orientado-al-este hacer gira-izquierda;
        mientras frente-libre hacer avanza;
        voltea;mientras  derecha-bloqueada hacer
        inicio
            si frente-libre entonces
            inicio
                avanza;
            fin
            sino
            inicio
                voltea;busqueda(0);
            fin;
        fin;
            gira-derecha;avanza;gira-izquierda;mientras frente-libre hacer avanza;
            voltea;
    fin;
fin;

    inicia-ejecucion
    go;
        apagate;
    termina-ejecucion
finalizar-programa
