La revista Sólo Programadores, Sun Microsystems Ibérica y la organización sin ánimo de lucro javaHispano hemos organizado la segunda versión del torneo virtual de fútbol JavaCup donde cada equipo es una clase Java que implementa una interfaz predefinida. El concurso cuenta con el patrocinio de las empresas Kynetia, en calidad de patrocinador de oro; Isthmus Inc. y Everis como patrocinadores de plata; y Salenda como patrocinador de bronce. La participación está abierta a cualquier hispanohablante, sin importar su nacionalidad. Desarrollar un equipo de fútbol es extremadamente simple ya que el software en el cual se basa el concurso se encarga de dibujar en la pantalla y gestionar los movimientos de la pelota y de los dos equipos. Para crear un equipo lo único que hay que indicar es qué movimientos quieres que realice tu equipo en cada situación, lo cual es sencillo gracias a la API que expone a los equipos el software.
El ganador del concurso recibirá 1500 €, el segundo clasificado recibirá 1000 €, el tercero 500 € y el cuarto 250 €. Además, todos ellos recibirán una suscripción anual a la revista Sólo Programadores. Los ganadores del concurso se anunciarán en el evento tecnológico OpenJavaDay, que se celebrará a finales de junio en España, Madrid.
Todos los que quieran participar en el concurso deberán ver un vídeo-tutorial de 30 minutos donde se explica qué se necesita para construir los equipos, dónde obtenerlo, cómo funciona el software y, además, se construyen varios equipos simples a modo de ejemplo. En el vídeo se ha grabado como un programador (Jorge Rubira) teclea en Netbeans letra por letra el código para crear los varios equipos de ejemplo, que son distribuidos con el propio software. Por tanto, es muy sencillo construir tu propio equipo tras ver el vídeo.
En un segundo video se explica cómo se construyó el software que se emplea para el concurso JavaCup. Este segundo vídeo no es necesario para participar en el concurso. Su propósito es satisfacer la curiosidad de aquellos que, además de construir su propio equipo, quieran saber cómo funciona el software que ejecuta los partidos.
El software de la JavaCup es 100% Java, por lo que se puede emplear cualquier entorno de desarrollo Java para crear el equipo de fútbol. Por comodidad para los usuarios, lo distribuimos empaquetado como un proyecto de Netbeans y como un proyecto de Eclipse, sin que esto sea un impedimento para usar cualquier otro IDE. Existen dos versiones del software, una que denominaremos básica que contiene lo esencial para participar en el concurso; esta versión es la que, fundamentalmente, se cubre en el segundo video del concurso.
El software puede considerarse un framework que cuenta con puntos de extensión (que en este caso permiten crear un equipo de fútbol) y ofrece una API en la cual pueden apoyarse los equipos para construir sus tácticas de juego. Esta API permite averiguar cosas como cuál es tu jugador que está más cercano a la pelota, cuál es el jugador del equipo contrario que está más cercano a la pelota, la posición de todos los jugadores y de la propia pelota, etcétera.
La versión completa contiene además del software necesario para participar en el concurso, todas las tácticas que participaron en el torneo el año pasado, funcionalidad que permite reproducir los partidos del año pasado, grabar partidos en ficheros, etcétera. Esta segunda versión está más orientada a ser empleada por los propios organizadores del concurso, para registrar el resultado de los partidos, que por los participantes. No obstante, puede ser empleada para participar en el concurso y animamos a todos los interesados en ella a descargársela y a estudiar su funcionamiento. Todo el código de ambas versiones, y las tácticas de años anteriores, tienen licencia GPL.
Los dos videos, y las dos versiones del software de la JavaCup pueden descargarse desde http://javacup.javahispano.org. Para cualquier duda, podéis acudir al foro de la JavaCup.
Cada participante deberá implementar un único equipo virtual de fútbol. Para ello se apoyará en un software que se distribuye bajo licencia GPL y que puede obtenerse en el CD que acompaña al número de junio de la revista Sólo Programadores, en la página web del concurso o en el proyecto JavaCup de javaHispano.net. El plazo para el envío de equipos comienza el 28 de abril; los organizadores del concurso revisarán todos los equipos una vez enviados y, de considerar que hay algún problema con el equipo, darán siete días al autor para solucionarlo. Si en esos siete días el problema no ha sido solucionado de un modo satisfactorio, el equipo quedará descalificado.
javaHispano se reserva el derecho para descalificar cualquier equipo que considere que no se ajusta a la filosofía del torneo. Si un equipo es descalificado, el autor no tiene ninguna forma de apelar la decisión. Los resultados del torneo también son inapelables. Participar en el concurso implica aceptar estas normas. En la página web de la JavaCup pueden encontrarse las bases del concurso con más detalle.
El año pasado la revista Sólo Programadores y javaHispano organizamos la primera edición del torneo virtual de fútbol "JavaCup 2007". En el torneo se registraron cerca de 400 participantes y de los equipos enviados 78 fueron aceptados para participar en el torneo. El software del concurso fue descargado más de 3500 veces, siendo el segundo proyecto más activo de javaHispano.net. Se grabaron varias docenas de videos con el resultado de los partidos que, además de en javaHispano.org, fueron publicados en Youtube acumulando varios miles de vistas. Los participantes en el concurso crearon más de 1500 entradas en el foro de la JavaCup durante la competición. El ganador del torneo fue Fabian Nuñez Perez, de Chile con su equipo "F.C. The Patetics"; en segunda posición quedó el madrileño Jorge Cobo López, con "Cobian F.C."; el tercero fue Jacobo Rouces, también español con su equipo "Eclipse" y el cuarto fue el colombiano David Bonilla Bohorquez con "Millos". Las tres nacionalidades de los cuatro ganadores del concurso dan una buena idea del carácter internacional del torneo.
javaHispano quiere agradecer a Kynetia, Isthmus Inc., Everis y Salenda su apoyo a este concurso, apoyo que se ha traducido en unos premios bastante más sustancial es que los del año pasado. Y, por cierto, como podréis ver en sus anuncios, los tres primeros están contratando personal nuevo ahora mismo.
También queremos agradecer a todos los que participasteis en la JavaCup 2007 por haber hecho que el concurso fuese tan interesante, tan vivo, y tan interactivo gracias a la realimentación y aportaciones que realizasteis (muchas de ellas como correcciones de bugs o código fuente). Por último, animarnos a todos a participar y a enviar un equipo al torneo. Y pediros también que, si consideráis que este torneo es interesante, nos ayudéis a difundirlo. Aquí tenéis un póster que podéis usar con tal propósito; si lo colgáis en una cartelera en vuestra oficina o en un tablón de anuncios en la Universidad os lo agradeceremos. Además teneis los videos promocionales en YouTube de JavaCup 2008, Kynetia, IsThmus y Everis.
Etiquetas: otro, javahispano, javacup
!!!Chaciiiiiiiiii!!!!! Ya pensaba que este año no lo ibais a organizar.l
genial, esta vez tratare de participar..
Buenas,
creo que los enlances de los videos estan cambiados. El primer video apunta al segundo y el segundo al primero.
Un saludo y muchisimas gracias por el concurso y la web en general.
Rafa.
ummm, Rafa, yo creo que los enlaces apuntan a los sitios adecuados.
Ole ole, llevaba tiempo esperando que apareciera el concurso para este año.
Mis disculpas, solo vi el la introduccion del primer video decia algo asi como: "en este segundo video...". Escribi el comentario demasiado rapido. Perdon.
Rafa.
Estuve ojeando las normas, y quiero confirmar si la fecha de entrega es el 28 de abril??? porque pienso que es muy poco tiempo.. o hay algun plazo
La fecha de entrega empieza el 28 de abril y tienes hasta junio para entregar tu táctica. De esta forma si hay algún error con tu táctica tenemos tiempo de avisarte y que puedas cambiarla.
"El plazo para el envío de equipos comienza el 28 de abril"
Hoy se está notando mucho que es lunes ;-)
jejej ahora si... bueno mandare mi equipo.. En estos dias he estado aprendiendo mucho de IA, esta es una buena oportunidad de poner en practica lo que se 8-)
¿Pueden haber equipos con más de un participante, es decir, mi amigo y yo podemos participar juntos por el mismo equipo?
pues yo no lo veo ningun problema, puedes hacer el programa entre 10 y mandar un solo equipo con un solo "dueño"
El problema está en los egos de los miembros del equipo. Porque, si el equipo ganara, habrían 9 (según tu ejemplo) que se quedarían tristes porque sus nombres no figurarían en la lista de ganadores. Ese es el problema que le veo.
Pues lo que importaria en el caso de que ganaran es como repatir el dinero.. jejeje ;-)
Ola a todos,
A los organizadores nos da igual que mandéis un equipo entre 10 personas (lo que no nos da igual, y trataremos de evitar este año al igual que el anterior, es que una misma persona envíe varios equipos; de ahí que haya que registrarse con el nombre real). Eso sí, para simplificar la gestión por nuestra parte, habrá un único "representante" que se registre, con el cual interaccionaremos nosotros y al cual le enviaremos el dinero. No tenemos intención de hacer de mediadores en posibles disputas internas que pudieran surgir entre el conjunto de desarrolladores.
Saludos.
El plazo de entrega se dice que es hasta junio, pero que día? Es decir, el primer día de junio, a mediados, a finales...
Por otro lado, la gente que haya participado otros años, cuanto tiempo invirtieron en crear su equipo? Es que no tengo ni idea de como va el tema y me gustaría participar pero no se si voy a poder sacar el tiempo suficiente.
Buenas. (Te puedo contestar a la segunda pregunta.)
Comprendo que las personas que hayan participado el año pasado tengan cierta ventaja sobre las nuevas porque tienen ya una cierta experiencia. De hecho, el año pasado eramos todos nuevos:). Para que la gente nueva no vaya perdida y ya que la idea general era partir de todo el conocimiento del año anterior, en la sección descargas tienes dos paquetes de software. Uno de ellos tiene el framework básico que sirve para preparar la táctica. El segundo tiene todo el código fuente de todas las tácticas que se enviaron así como una base de datos con la posición donde se quedaron en la liga previa. Para abrir los proyectos necesitas un Netbeans 5.0 o superior. Es por ello, que puedes echarle un vistazo a estas tácticas y basarte en cierta medida en ellas.
Por otra parte, darte animos para participar ya que de esta manera el año que viene tendrás ya cierta experiencia que te dará ventaja frente a otros.
Finalmente, si tienes alguna duda (aunque sea básica) sobre el uso del framework, al igual que la gente preguntaba el año pasado, puedes hacerla en el foro que tenemos en javahispano exclusivo para la javacup. También puedes ver el historico de hilos en ese foro.
Atentamente, Jorge
"Mis disculpas, solo vi el la introduccion del primer video decia algo asi como: "en este segundo video...". Escribi el comentario demasiado rapido"
..programadores, programadores.
si el framework es el mismo y se facilitan los equipos del año pasado, ¿cómo sabrá el jurado hasta qué punto los equipos que se envíen son 100% del autor?
Buenas,
Contestando a la última pregunta, no se penalizarán las tácticas que tengan algoritmos de las tácticas de años anteriores, al igual que el año pasado no se penalizaban tácticas que fuesen totalmente iguales a las tácticas de demo.
Otra cosa diferente sería si se enviasen tácticas iguales o con similitudes ineditas o con trozos de código ineditos iguales. En este último caso si se penalizarian.
Atentamente, Jorge
Hasta cuando se puede entregar?
Hola
Me parece un error que el sistema que se siga sea el de eliminatoria directa entre equipos. La forma más real y más justa de determinar para obtener un ganador es el sistema de liga.
Creo que el llevarlo a cabo de esta forma no es algo costoso.
Gracias.
Estupenda iniciativa. ¡Y con patrocinadores!
El año pasado me quedé con ganas de participar, a ver si la universidad lo permite y este año preparo mi "equipito", jeje.
"Me parece un error que el sistema que se siga sea el de eliminatoria directa entre equipos. La forma más real y más justa de determinar para obtener un ganador es el sistema de liga."
A mi me parece que por aqui hay alguien de Getafe ;-)
>Creo que el llevarlo a cabo de esta forma no es algo costoso.
Pues chico, echa la cuentas de nuevo... 1000 participantes no creo que sea un numero imposible de alcanzar. Si hacemos una liga tenemos.... del orden de un millón de partidos!!!!!! Los organizadores tenemos que ponernos en el "peor" de los casos. Eso es lo que nos decanta por la copa.
sobre el sistema de competición...
no cabe duda de que el azar, la suerte, o como lo queramos llamar influye en el resultado de un partido de la javacup, es una pena que el trabajo de un participante se vaya a la M por cuestión de suerte en la primera o segunda ronda.
a mi tambien me parece mejor y sobre todo mas justo el sistema de liga
saludos
Esto... ¿y el futbol no es eso? :-D Perdon pero es que es muy duro odiar el deporte nacional y de vez en cuando me tengo que desahogar ;-)
Como muy bién comenta Abraham, para el año pasado con 78 equipos tendriamos que haber publicado 78/2*77 = 3003 partidos, lo que con tanto partido se perdería la emoción de seguir los partidos de tu equipo (por haber tantos). Aun así, se ejecutará una liga previa (al igual que el año pasado) para que los equipos que queden primero no se enfrenten en las primeras rondas y de esa forma haya un poco más de justicia.
lo unico que veo que se podria mejorar un poco es cuando dos equipos queden enpatados. Eso de decidirlo aleatoriamente se podria usar en el ultimo recurso depues de haber hecho otros intentos. Por ejemplo en caso de quedar en enpate se podria hacer:
1) Se dan 30 segs mas de juego haber si en ese tiempo hacen algun gol de oro.
2) Si todavia quedan enpatados y si los equipos ya tienen varios partidos anteriores (iguales en numero, algo que deberia ser asi por las rondas), gana el equipo que tenga mas goles acomulados. Es decir: Goles partido 1 + Goles Partido 2 + Goles partido actual = Acumulado, si es mayor que el del contraincante entonces gana, sino pierde.
3) Si todo falla queda el Math.random() para que solucione el problema.
Creo que eso le daria muuchisimo mas de emocion. Imaginen un super partido, ambos equipos quedan 5 a 5, en 30 segundos el que haga un gol de oro (osea el primer gol) automaticamente gana. Y en el caso de los goles acomulados, eso obligaria a los Dueños de los equipos y a los fans a estar pendiente con cuentas y para ver quien gana.
Otra idea que se me acaba de ocurrir pero que se podria implementar para el otro año es un sistema de apuestas.. :D Asi los fan podrian ganarse algo. Siquiera "subcripcion gratis" por un año a Javahispano con derecho a postear y leer post.. jejej ;-)
PD: Si los encuentros no se hacen por rondas es algo facil de arreglar.
Mientras NumeroParticipantes >=2
RondaN = NumeroParticipantes / 2
Cada mitad juega encontra de la otra pero aleatoriamente, es decir el 1 de la mitad A podria juegar contra el 14 de la Mitad B
Al final de la ronda el numero de participante obviamente quedaria a la mitad, entonces se hace otra ronda, y asi y asi y asi.. Al final se harian el mismo numero de partidos. Ojo me el numero de participante obviamente serian pares.
Buenas,
Para lo que comentas del caso de empate, es cierto que el video comenta que se obtiene al azar ya que fue el video del año pasado previo a unos cambios que si hicieron. Los cambios más sustanciales son estos:
- En caso de empate, se decidirá el jugador que mas cerca(n) * tiempo(n) haya estado con la pelota. Es decir, intentar alejar la pelota de tu portería lo más tiempo posible. En la parte inferior hay una barra que indica quién ganaría.
- Las fuerzas de los jugadores están capadas al rango [4,7]
- La pelota no sale tan disparada en caso de bloqueo como la versión1.0.
Saludos:
Jorge
lo de la emoción y todo eso está muy bien... pero creo que es más importante que gane alguien que se lo curre y cree un algoritmo bueno y que no se descarte a las primeras de cambio. para los random ya está la primitiva.
una solucion intermedia puede ser que para cada fase se hagan grupos de 8 equipos y pasen 4, por ejemplo.
genial!!! =D participare por primera vez =)
respecto al sistema de competición:
si se hace un sistema de liga, claramente habrá miles de partidos, pero también los resultados se repetirán más. es decir, si ejecutamos un proceso que simule una liga por ejemplo 50 veces, casi con toda seguridad la mayoría las posiciones en la clasificación final seran iguales o muy parecidas
¿Y por qué no haceis un sistema mixto, como en la Eurocopa? Se podrían hacer grupos de 4 donde jugasen todos contra todos. Y que pasasen a las siguientes rondas los dos mejores. Además, para hacerlo más 'justo', se podrían 'numerar' los equipos según sus resultados en la liguilla para evitar que los mejores de la liguilla se enfrenten antes de la final. Así todo el mundo se va habiendo jugado por lo menos 3 partidicos y se premia los resultados en la liguilla de cara a los cruces posteriores.
jeje muchas ideas, todas muy buenas.. creo que hablo por todos al decir que esperamos que los organizadores de JavaCup para los proximos eventos (si no es posible en este) se agreguen algunas de estas excelentes ideas.. o se haga algo parecido que beneficie a todos..
Las ideas no son malas. Pero nosotros no andamos muy bien de tiempo y no creo que las implementemos para este concurso. Sin embargo, todos vosotros tenéis el software de la JavaCup ;) y tiene licencia GPL ;) ;). Sólo decir que estaremos encantados de evaluar y considerar cualquier mejora que nos enviéis.
Saludos.
Soy de argentina.... puedo competir?
Si, si, las personas de Argentina puede participar.
Jejej ya se me habia olvidado lo de la licencia.... pues hay esta, todo el que quiera mejoras que ayude a hacerlas o que las haga el mismo (mi incluyo)... :D
saludos
se habla de mejoras respecto al sistema de competición, de nada sirve implementar cualquier sistema si no se piensa cambiar
Anonimo primero lee y despues escribes..
Abrahan dijo
...Sólo decir que estaremos encantados de evaluar y considerar cualquier mejora que nos enviéis.
Pues el considerar deja abierta la posibilidad que se implemente en proximos eventos..
el futbol no es emocionante seria mejor si en ves de un partido de football sea de un rts tipo warcraft starcraft age of enperise
El año pasado aceptamos varios cambios al software de la JavaCup durante el torneo. Si alguien nos envía algo que realmente merezca la pena, puede evaluarse volver hacer algo similar. Y en cualquier caso, sería un beneficio para todos para la siguiente edición.
Saludos.
Veo que por aquí hay varios que participaron el año pasado... y no se ha pasado algo desapercibida una pregunta que hice el otro día o es que nadie me ha sabido contestar, pero me gustaría saber cuanto tiempo les tomó, aproximadamente, desarrollar su equipo el año pasado. No tengo demasiado tiempo y quería saber si me va a dar tiempo o no.
Gracias
Buenas, hacer un equipo es muy sencillo (en menos de 30 minutos puedes hacer un equipo modificando alguna táctica entregadas en el paquete de descarga), depende siempre de lo que te quieras complicar. El año pasado, hubo personas que utilizaron la tácticas demo modificandolas un poco y hubo otras que se lo curraron mucho. Este año pueden servir de base las tácticas demo y las tácticas del año pasado que hemos entregado en el framework completo.
Atentamente,
Jorge
Sobre el sistema de competición se me ocurre una modificación que supongo no cambiaría mucho el software y evita que en primeras rondas quede fueraun equipo con posibilidadesde de estar entre los primeros clasificados. Se pude hacer una ronda NO eliminatoria y a partir de ahí jugarán en la siguiente ronda un ganador con un perdedor. Es para dar una segunda oportunidad, se suele hacer en maratones de fútbol sala para evitar que el azar deje fuera a un posible finalista por tocarle enfrentarse en primera ronda al campeón.
es valido a nivel mundial????? aun me queda por leer mucho aqui
saludos
me interesaa el torneo
No sirven las descargas de framework en JavaCUP
Escribe tu comentario