2º Concurso Programación: Programar un BOT

Topic created · 31 Mensajes · 2847 Visitas
  • @ThomyKz4 said:

    Salva, eso que dices de pensar es lo único que no se hacer xD. Lo de girar imágenes... T.T

    pensemos un poco. De toda esa imagen como dice Hawkings, hay muchas cosas que no nos interesan. En realidad casi toda la imagen nos importa un carajo jeje. Verás:
    La imagen tiene muchos pixels, muchíisimos. La imagen de la izquierda es más o menos de 177x177 pixels, y otro tanto el recuadro derecho.
    Eso es una barbaridad, multiplica 177x177=31329 pixels en total
    ¿todos esos pixels para qué los queremos?
    Pero si lo que nos importa es qué recuadros son rojos y cuáles verdes. Realmente lo que nos interesan son esos 6x6 cuadrados rojos/verdes/negros.

    Por tanto mi consejo es que en vez de tomar toda la imagen y rotarla, pilles sólo un pixel de cada cuadrito rojo/verde/negro jeje. Y haces una matriz, por ejemplo:
    (negro negro negro negro negro negro)
    (negro verde negro negro negro negro)
    (negro negro negro negro negro negro)
    (roojo negro negro negro verde negro)
    (negro negro verde negro negro negro)
    (negro negro negro roojo negro negro)

    Eso es lo que de verdad nos interesa, no los 30.000 pixels de cada imagen. Hombre, si en vez de negro usamos ceros, y rojo y verde 1 y 2 pues mejor jeje. Pero la idea es esa.

  • Muy buenas a todos! Os presentamos el 2º concurso de programación (sí, sé que ya ha pasado algo de tiempo desde el primero, pero tanto Salva como yo hemos estado bastante liados con la universidad).

    Este concurso se basa en la automatización de una tarea por parte de un programa. Concretamente, se trata de automatizar un test de inteligencia de la universidad de cambridge

    Esta página contiene varios tests de inteligencia, basados en analizar distintas características del cerebro humano (véase memoria, cálculo...). Nosotros, para este 2º concurso, nos vamos a centrar en uno concreto: el test de rotaciones.

    Este test se basa en determinar si, dada una imagen con determinadas áreas iluminadas en rojo o verde, es igual a la imagen dada a su derecha, ya sea rotando dicha imagen 90º, 180º ó 270º. Como se suele decir, una imagen vale más que mil palabras:
    [attachment=448][attachment=449]
    son la misma imagen, con una rotación de 180º

    ¿Qué debeis hacer? Debéis conseguir que un programa (ya sea en Java, VB o el lenguaje que elijáis) determine si las imágenes que te dan en un instante encajan o no. Para que os hagáis una idea hemos subido una demostración del programa realizado por Salvatore en Java:

    [video=youtube]http://www.youtube.com/watch?v=D8X9Pk7VDy8[/video]

    El objetivo es, primero, realizar el bot, y después intentar superar nuestra máxima puntuación: 1428 (por ahora, aun debemos optimizarlo). Para acceder a la página debéis usar una cuenta y un password. Usaréis la nuestra para evitar una avalancha de usuarios "bot":

    Usuario: informatica (arroba) universojuegos (punto) es
    Contraseña: cambridge

    Usuario creado y página UP

    El que lo consiga, le damos una galleta 🙂 jajajaja

    Edit: Nuevo record: 1608, UJ tiene el record actual.

  • la web sigue caída, ya es mala suerte justo va y se cae hoy _xD_

  • LOOL?
    Mirales que chetosos xDDDDD
    Pues yo no tengo ni idea de como hacer eso en VB, la explicación la he entendido, antes de mirar el texto de abajo de las 2 imágenes, me di cuenta al dedillo que era la misma imagen pero solo que al revés, pero no sabría como hacer que VB indentificara eso 😧

  • ¿Alguien puede decirme como hacer que el mouse clickee en un sitio determinado en vb por favor? Hay una pregunta en la sección ayudas pero no creo que nadie se pase muy a menudo por allí así que la dejo aquí. Si me la contestais me apunto xD.

  • He entendido lo que hay que hacer, pero me temo que no podría hacerlo. Agradecería, Salva, que me dijeras cómo se puede hacer en Java para:

    -Capturar la imagen a procesar.
    -Girar una imagen.
    -Comparar dos imágenes.
    -Hacer un clic en determinadas coordenadas.

    Sé que ya estaría casi hecho, pero es que no tengo ni idea de cómo hacer ninguno de esos pasos, por lo tanto ni de coña puedo intentar hacerlo _xD_

    PD: si alguna de las formas no se puede hacer directamente y hay que ingeniárselas dame una pista de más o menos por dónde hay que investigar.

    PD2: si consideras que no es justo que me lo digas lo entenderé, pero me haría ilusión participar.

  • Bueno lo primero de todo os puedo decir que ni Salva ni yo lo hemos hecho en VB y por lo tanto no tenemos ahora mismo idea de como podríais implementar esas cosas. Se me ocurre una manera, pero pensad un poco más y buscad mas en google, k está pa algo 😛

    En java... digamos que es muy sencillo si buscais un poquito. Venga gente, que no todo es coser y cantar jajaja con buscar un poco lo teneis 😛 Si seguís sin tener ni idea y tal ya pensaremos en dar alguna pista mas xD

  • Vale, solo una pregunta, ¿la imagen la extraéis de la web de alguna forma o es un simple pantallazo?

  • Navaja de ockham, ¿qué es lo más facil? 😉

  • en visual basic me juego el cuello a que se puede hacer. Lo digo porque autoit está basado en VB, y autoit puede:
    hacer clic en unas coordenadas
    capturar el color de un pixel de la pantalla

    por tanto, si esas dos cosas se pueden hacer, el bot se puede hacer.

    Es más fácil de lo que parece jeje, ¿girar una imagen? pero si la imagen tiene muchiiiisimos pixels, no necesitas tanta información. Las imágenes representan 36 cuadrados (6x6). Lo que te interesa son esos 36 cuadrados, no los cientos y cientos de pixels de la imagen jeje.

    Conviene simplificar eso, quitar paja. Hawkings yo creo que ya casi lo tiene con estas pistas...

    En visual basic yo diría que hace falta una función que haga esto:
    "Synthesizes keystrokes, mouse motions, and button clicks."

    y en java, quizá una clase tal que:
    "This class is used to generate native system input events"