Buscar
Social
Ofertas laborales ES

Foro de la JavaCup > Cambios para la javacup 2014

Hola, en este hilo pretendo que coloquemos las ideas de los cambios para el framework del año que viene, de tal manera que se pueda tener una competencia más reñida y veamos nuevas variables y cosas a tener en cuenta para los equipos. Adicional quisiera colaborar en la realización de estos cambios.

Por ahora tengo un par que podríamos discutir:

1. Que los jugadores ahora tengan altura variable y esto se vea en la altura de control del balón que tenga cada uno, pero que al ser más alto, inevitablemente se vuelva más lento.
2. Que exista un comando para hacer entradas a los jugadores rivales, como para generar faltas y entre eso se podría tener hasta lesiones, tarjetas y amonestaciones, partiendo para tiros libres y penalties.

Por ahora esas 2, además de trabajar en una solución para lo de los goles inatajables.

octubre 22, 2013 | Unregistered CommenterwillBender

1. Modificar la lógica del portero.

El portero debería de moverse atendiendo a un eje (como en los juegos de coches). Por ejemplo, si esta mirando al Norte, el desplazamiento lateral (hacía el Este y el Oeste) debería de ser más lento que si se desplaza hacía el Norte.

También debería de implementar una función "Estirada" que simulase que se lanzará lateralmente a por el balón. Esta acción permitiría un desplazamiento mayor en el eje lateral y tendría una penalización de n ciclos que sería lo que tarda el portero en levantarse del suelo. Dependiendo de la precisión del salto, el portero podría coger la pelota o simplemente despejarla.

2. Tiros con efecto.


Creo que con estas 2 medidas pueden anularse los tiros perfectos y seguiría existiendo la posibilidad de marcar goles.

octubre 22, 2013 | Unregistered Commenterchr

Repito aqui lo que he dicho en el otro hilo:

Me gustaría que no se pudiese 'simular' el partido para tomar decisiones, o que al menos esta simulación excluyese al equipo contrario.

Tengo la impresión de que al final vamos a terminar con equipos perfectos: si puedo simular un pase X veces, puedo saber cual es el mejor pase y actuar siempre así me lleva a no perder nunca la pelota, y lo mismo hará el equipo contrario.

Veo lógico que puedas simular una jugada para calcular la mejor opción con tu táctica y la fisica del balón, pero al permitir introducir al equipo contrario en esa simulación, al final tu táctica se adapta perfectamente a la del equipo contrario.

Es como si en un partido de futbol, un jugador pudiese saber, además de lo que va a hacer el balón y su compañero, lo que va a hacer el rival. No me parece fiel al juego ...

No se si me explico :-)

octubre 22, 2013 | Unregistered CommenterKeko

con respecto a los disparos perfectos
1-cambiar Dz0 por Dz
if (alturaBalon - balonDz0 > Constants.ALTO_ARCO)

por

if (alturaBalon - balonDz > Constants.ALTO_ARCO)

2-cambiar las probabilidades de poder golpear el balón(creo que el portero debe ser capaz de golpear el balón con más probabilidad que los demás por poder usar todo el cuerpo aparte de que los disparos desde muy lejos deben ser faciles de atajar con una probabilidad de 99.9).

3-la aleatoriedad de los tiros siguiese una distribución normal en vez de una uniforme

4-si fuese necesario alargar más la porteria no asi la altura.

Otras cosas.
1-veo mal que cada vez que se golpea el balón la altura se pone en 0, puede ser una opción pero si el que golpea el balón quiere.
2-la forma de calcular la poseción del balón no favorece que las tacticas quieran controlar el balón en campo propio.
3-no veo bien que para golpear el balón solo se tenga en cuenta la distancia del jugador al balón(si un jugador esta a la distancia para golpear el balón pero entre él y el balón existe un rival no debe poder golpearlo)
4-Analizar cual debería ser el consumo de energía al usar el sprint pq como está actualmente es un suicidio usarlo.

tal vez me he olvidado de algo más pero con estas ya son bastantes.

keko arreglando el sprint se puede mejorar un poco lo que planteas.

chr creo que de lo primero que hablas esta resuelto con la aceleración, y lo del efecto esta muy bien, lo de la estirada hay que analizarlo, el portero ya tiene mas alcance que los demás jugadores lo que no veo bien es que tenga la misma probabilidad de golpear el balón que los demás.

willBender me parecen bien lo que planteas (yo escogería pequeños y rápidos) y la posibilidad de hacer entradas el framework lo necesita pero la pregunta es cuando permito hacerla.

saludos

octubre 22, 2013 | Registered Commenteryoemny

Un sistema aleatorio de puntos para el ganador de un partido.

No he participado en la javacup, aún xD, pero he visto que hablais de equipos con tacticas parecidas, esto podria dar un punto de personalización extra para evitar esto.. Aunque como he dicho no he jugado y no se si es viable.

octubre 25, 2013 | Unregistered Commenterpr0kd

Buenas,

Ya que algunos dicen que la gente dice que los 'incendiarios del foro' no proponen cosas constructivas, tengo varias ideas:

1. No he revisado el código, pero a la vista de los resultados de la competición, parece que no existe un error a la hora de golpear a la pelota con un ángulo vertical determinado. Digo yo, que si trabajamos en tres dimensiones, el error no puede ser sólo en dos. Esto solucionaría, bajo un primer vistazo, el problema de los goles imparables, al no permitir calcular el ángulo exacto para producir ese 'efecto no deseado'/'bug'/'agujero aprovechable'.
2. Se supone que está prohibido extender clases propias del framework, ¿por qué permitimos entonces realizar simulaciones en base al código del framework? Sé que la competición y la comunidad se basa en software abierto y libre a la gente, pero habilitar a que alguien intente simular el futuro es bastante peligroso e incierto. Si nos intentamos ajustar a la realidad, un jugador se puede basar en la situación del momento (posición de jugadores y demás), pero no puede intentar simular dónde llegaría un pase, por ejemplo. Aquí, ciertos defensores de las tácticas antiguas dirán que una buena defensa podría parar estos ataques, pero lo cierto es que cada vez se hace menos accesible la participación de nuevos candidatos, cosa que va en contra de la filosofía de 'comunidad libre' (bajo mi punto de vista).
3. Otra historia que queda muy de lado es el de la optimización. Por mi vida laboral, es casi la parte más importante del trabajo, y quizá a veces lo lleve a todos los campos, pero tratándose de un 'concurso' de programación, es algo que no debería quedar en el olvido. Con las tácticas del año pasado, llegué a esperar casi un segundo a que ciertas tácticas hiciesen una sola iteración donde podían golpear el balón. ¿Por qué no limitar esto? ¿Por qué no hacer una medición y limitar la optimización? Entraría en juego otro aspecto muy importante y que haría equilibrar todo un poco. No sería el mejor el que más casos analizase e interpretase, sino que además debería hacerlo en un tiempo computacional razonable, al igual que un jugador tiene un tiempo limitado a la hora de tomar la decisión de un pase/tiro/lo que sea... Ahora la normativa es bastante vaga en este aspecto, puesto que refiere a las tácticas anteriores para ponerse en un lugar similar. También es verdad que me parece bastante raro que ciertas tácticas de este año se mantengan en los niveles de computación de años anteriores, pero eso es otra historia que creo que se debería tratar aparte.
4. Habría que dejar muy claras las normas antes de empezar cualquier tipo de competición, aunque sea a base de consultar en el foro y decidir de forma consensuada una lista de reglas a adoptar y publicadas junto a las normas de aceptación, para que todos los participantes (aunque no participen en el foro) tengan las mismas oportunidades. Obviamente, todo agujero susceptible de ser explotado deliberadamente debería ser castigado.

Me gustaría colaborar activamente con la comunidad, por lo que me gustaría recibir alguna respuesta de la dirección de la competición, por si considera factible alguna de mis ideas.

Un saludo,

octubre 25, 2013 | Unregistered Commenterlmc

Gracias a todos por vuestros aportes.
Espero tener listo este fin de semana los repositorios de código del framework en GitHub.
Así podremos organizar la gestión de las incidencias, sugerencias, etc etc
En la línea que estáis comentando, hablamos de quizas hacer una versión "lite" (sería un funcionamiento más básico) del framework para animar a los nuevos para que se apunten.
También puede ser, como apunta lmc limitar el uso de ciclos de CPU por cada táctica en cada iteración, o incluso del tamaño del código de la táctica una vez compilado.
Pero bueno, lo primero es tener listo la plataforma para poder gestionar la evolución del código y las futuras mejoras.
Saludos.

octubre 25, 2013 | Registered CommenterAlfonso

Buenas,

Yo tampoco conozco a fondo el código del framework, pero por lo que parece por los resultados del torneo, como dice lmc, no se está aplicando el error al ángulo vertical.
Si es así, sería la mejor solución para el bug de los goles imparables, ya que el error evitaría que se pueda lanzar a propósito a un ángulo exacto calculado previamente.
Creo que algunas de las soluciones que se han propuesto dejarían abierta una posibilidad a la 'trampa', que es mejor evitar.

Otro punto importante son los desempates. Se ha hablado del tema de la posesión, pero creo que sería más interesante (y fácil de implementar) la creación de una tanda de penaltis en caso de empate.
Esto daría más realismo al juego y solucionaría el problema de los desempates por posesión que no dejan contento a todo el mundo.

También creo que se debería prohibir realizar simulaciones replicando código del framework, ya que resta mucho realismo y puede llegar a generar equipos imbatibles, además de jugar al borde de la legalidad...

Un Saludo.

octubre 29, 2013 | Unregistered Commentermbr

De acuerdo con prohibir realizar simulaciones replicando código del framework. Hasta ahora las tacticas que han tenido exito desde la primera edicion son las que simulan para decidir el mejor pase o disparo, en detrimento de las que si usan heuristicas o estrategias genericas, las cuales se parecen mal al futbol real

octubre 30, 2013 | Unregistered CommenterparticipanteEdicion2007

Ya está creado el repositorio en GitHub:

https://github.com/alfonsodou/javaCup

Partimos del mismo framework utilizado para la ejecución del torneo de este año con algunos cambios internos que no afectan al "core" del framework. Os comento los cambios:

- Estamos trabajando para crear una web (javaLeague) que permita ejecutar los partidos de forma automática y que de la posibilidad para que cualquiera pueda crear sus propios torneos. Esta web estará alojada en el AppEngine de Google y este no acepta todas las clases de J2SE. La única que nos afecta es java.awt.Color, que se sustituyó por la clase org.javahispano.javacup.model.util.Color. Cualquier referencia en el framework y en las tácticas enviadas se ha cambiado para la nueva clase.

- Dentro del paquete org.javahispano.javacup.model.engine aparece una nueva clase: AgentPartido. Esta se utilizará para ser llamada desde javaLeague para ejecutar un partido e implementa el interfaz Agent que está en el paquete org.javahispano.javacup.model.util

- Dentro del paquete org.javahispano.javacup.model.util se han añadido también dos clases nuevas: Compressor y Serializer, y su función es permitir grabar comprimido en el almacén del AppEngine de Google el partido una vez ejecutado.

Esta es la versión del framework que denominaremos v1.0.

Ahora lo que queda es tratar lo comentado en este hilo para ver que modificaciones hacemos y ver también como las hacemos.

Voy a abrir un tema en el foro por cada modificación/sugerencia que se han reportado en este hilo, y así debatimos cada una de ellas en su hilo correspondiente.

Saludos.

octubre 31, 2013 | Registered CommenterAlfonso

Creo que ya he creado un hilo por cada uno de los cambios propuestos.
Disculparme si se me ha pasado alguno.
Si echáis de menos algún cambio, comentarlo de nuevo por favor.

Hay un tema que habéis comentado varios, pero no me queda claro a lo que os referís. Es sobre no poder ejecutar los partidos para depurar las tácticas.
¿ Os referís a que el framework no devuelva datos sobre la posición de los jugadores rivales ? Qué solo de información de la posición del balón y de mis jugadores ?

Saludos.

octubre 31, 2013 | Registered CommenterAlfonso

Y otra cosa que se me olvidaba comentar.

Por nuestra parte intentaremos hacer los cambios que acordemos entre todos, pero tenéis que entender que igual hay cambios que no podremos realizar por falta de tiempo y/o conocimientos.

Yo soy de la opinión de no realizar muchos cambios de una vez, sino de ir poco a poco probando los cambios.

Necesitaremos la colaboración de cuantas más personas mejor, ya sea para proponer cambios, programar dichos cambios o probar los cambios una vez realizados.

Saludos.

octubre 31, 2013 | Registered CommenterAlfonso

Y que os parecería establecer unas fases claras para el desarrollo del framework?

Es decir, si la próxima javaCup va a ser en octubre-2014, debería haber una RC en julio/agosto y liberar una versión definitiva en septiembre. Una vez liberada, esa versión es con lo q se disputará la competición sí o sí y cualquier bug q se haya colado se queda hasta q se libere la siguiente versión.

Personalmente no me gustó tener q actualizar el framework 2 veces cuando ya estaba el concurso en marcha (el último fue a menos de una semana de la finalización del plazo)

Ahora q se ha abierto un repo en github, tal vez se podría organizar un poco mejor todo este tema, así como la valoración de los cambios propuestos (y los míticos +1 o -1 de los usuarios a los diferentes PR)

noviembre 2, 2013 | Unregistered Commenterkpacha

Tal como sugiere kpacha, acabo de crear los cambios en el repositorio de GitHub (https://github.com/alfonsodou/javaCup/issues) para poder hacer un mejor seguimiento.
Eso no implica que dejemos de hablar aquí de todo lo humano y divino respecto a los cambios.

Me parece bien lo de tener una versión lo más definitiva posible unos meses antes de iniciarse el torneo y así tener que evitar las actualizaciones del framework una vez iniciado el torneo.

Intentaremos fijar un calendario de versiones a publicar, pero de momento no podemos confirmar nada al respecto. Dependerá de las aportaciones y de las pruebas que podamos realizar entre todos.

Saludos.

noviembre 4, 2013 | Registered CommenterAlfonso

En qué mes aproximadamente sería la edición 2014? Hace un par de años tengo ganas de participar, pero siempre se me pasa la fecha o me surgen cosas que me lo impiden.

enero 5, 2014 | Unregistered Commenterkurt