miércoles, marzo 26, 2008

Monedero II: Resultados

Como recordaremos, las reglas del Monedero II eran las del Monedero, pero con el sistema de puntajes "tabicado": las partidas ganadas valen 10 puntos, las empatadas 1 punto y las perdidas 0 puntos.

Se efectuaron 100 partidas entre cada par de algoritmos, y cada partida duró 1000 turnos.

Aquí están los resultados:


Puntaje         Algoritmo               Autor

4405 (18.21%) Panzeta Dani Rodrigo
4148 (17.15%) Programación_Dinámica Javier Gómez
3523 (14.56%) PotenciaDos Juan Zubieta
3266 (13.50%) Jesanz_3 Jesús Sanz
2744 (11.34%) Jean_3 Jean Morales
2311 (9.55%) Pequeritmo_03 Markelo
2087 (8.63%) Colorado_el_9_revisado Pablo Coll
1708 (7.06%) Arroyito Bernardino Romera


¡Felicitaciones a Dani Rodrigo! Y como siempre, gracias a todos por participar con su ingenio.

El código fuente completo de la competencia se puede ver aquí. Cualquier duda y/o corrección serán bienvenidas.

martes, marzo 11, 2008

Nueva competencia: Monedero II

Como anuncié en el post anterior, en esta competencia jugaremos otra versión del Monedero.

Las reglas serán las mismas que las originales, salvo que esta vez, los puntajes globales se irán acumulando de esta manera:
  • Diez puntos por cada partida ganada
  • Un punto por cada partida empatada
  • Cero puntos por cada partida perdida
Habrá tiempo de enviar algoritmos hasta el 25 de marzo.

Esta vez aceptaré solamente un algoritmo por jugador, por sencillez.

¡Espero sus participaciones!

Monedero: Resultados

Bien, el Monedero demostró ser un juego interesante: surgieron estrategias bastante diferentes, y una inquietud.

Los Resultados

Luego de 100 febriles partidas entre cada par de algoritmos enviados (aumenté la cantidad de partidas porque algunos son bastante parejos), aquí están finalmente los puntajes finales:

puntaje algoritmo autor/a

11192 (8.25%) Arroyito Bernardino Romera
11064 (8.16%) Pozuelon Bernardino Romera
10992 (8.11%) Pequeritmo_02 Markelo
10930 (8.06%) Pequeritmo_01 Markelo
10692 (7.88%) Colorado_el_9 Pablo Coll
10676 (7.87%) Jean_1 Jean Morales
10420 (7.68%) Jean_2 Jean Morales
9649 (7.11%) Jesanz_2 Jesús Sanz
9552 (7.04%) Ten Cynthia Disenfeld
8927 (6.58%) Negro_el_10 Pablo Coll
8588 (6.33%) Jesanz_1 Jesús Sanz
8419 (6.21%) Eleven Cynthia Disenfeld)
7000 (5.16%) A Alejandro Donnantuoni
5310 (3.92%) B Alejandro Donnantuoni
2208 (1.63%) Optimista Sistema

¡Felicitaciones a Bernardino Romera, el ganador!

Y como siempre, gracias a todos por participar.


La Inquietud

Señala Markelo, y con razón, que la estrategia del juego debería variar notablemente con otra modalidad de puntaje:
Si mi contrincante se planta en un determinado valor, solo necesito superarlo por uno para ganarle en caso de que valiese cada triunfo. Pero si lo que busco es puntos, entonces debería idear una forma de seguir sumando.
Por lo tanto, no publicaré el código de los algoritmos actuales, sino que armaré una nueva versión del torneo para ver cómo varían las estrategias cuando sólo se busca ganar las partidas.

En el próximo post especificaré la modalidad de puntaje usada.

lunes, febrero 25, 2008

Séptima competencia: el Monedero

El Monedero tiene una reminiscencia al juego del Uno, que fue el primer juego que jugamos aquí.
Aunque es bastante más simple, confío en que dé lugar a estrategias interesantes.


Reglas del juego

Se juega de a dos. La cantidad de turnos es limitada. Cada jugador comienza con 0 puntos.

En su turno, cada jugador lanza una moneda. Si sale cara, su puntaje aumenta en 1. Si sale cruz, su puntaje queda dividido por dos (y se redondea hacia abajo).
En lugar de lanzar la moneda, el jugador puede decidir plantarse con el puntaje que tenga; deberá esperar hasta que termine la partida o su oponente también decida plantarse.

El jugador con más puntaje al final de la partida es el ganador.


Reglas de la competencia


En esta competencia, los algoritmos jugarán 10 partidas contra cada uno de sus oponentes, a 1000 turnos cada una.
Los puntajes de cada partida se irán acumulando en un puntaje del torneo; el que sume más puntos en total, será el ganador.

Cada participante podrá presentar hasta 2 algoritmos.

Cada algoritmo usará los siguientes datos referidos a la partida en curso:
  • un entero, con el puntaje propio
  • un entero, con el puntaje del oponente
  • un entero, con la cantidad de turnos que quedan por jugar
  • un booleano, verdadero si su oponente ya se plantó, o falso si aún no se plantó
Y deberá devolver un valor booleano, verdadero si decide plantarse, o falso si decide no plantarse.

Los algoritmos no podrán tener «memoria» de las partidas anteriores ni acceso a los puntajes globales.

Habrá tiempo para enviar algoritmos hasta el 10 de marzo de 2008. Pueden enviarlos a mi dirección.

Mientras más algoritmos haya, será más divertido, así que ¡háganle propaganda al juego!

domingo, febrero 17, 2008

Resultados del torneo de Doble y Nada

¡Tenemos ganador! Aquí está la tabla final de posiciones:

96.8% PE (Pablo Coll)
1.5% J (Jorge Alvaro)
1.5% DoublesMedia (Cynthia Disenfeld)
0.0% Doblerone (Bernard Romera)
0.0% Trentenna (Jean Morales)
0.0% Pequeritmo01 (Markelo)
0.0% Pequeritmo02 (Markelo)
0.0% Pite (Alejandro Donnantuoni)
Cada link lleva al código fuente del algoritmo respectivo.

Aquí pueden ver el código fuente del sistema y de algunas funciones auxiliares.
La partida completa puede verse aquí.

¡Felicitaciones Pablo Coll, y a todos muchas gracias por participar! Ya andamos buscando un juego adecuado para la próxima competencia. No duden en enviar sus ideas.

martes, febrero 12, 2008

Doble y Nada: plazo revisado

No sé qué miré cuando puse la fecha límite para este concurso. No existe tal día.

La fecha final para el Doble y Nada será el sábado 16 de febrero de 2008, que sí existe.

¡Suerte a todos los participantes!

lunes, febrero 11, 2008

Doble y Nada: progreso

Ya tenemos aproximadamente cinco algoritmos en la competencia. Estoy terminando de programar el juez y algunos detalles de los algoritmos. Pronto haré las primeras competencias de prueba...

miércoles, enero 02, 2008

Sexta competencia: Doble y Nada

Bueno, ha pasado algún tiempo y la encuesta no ha dado resultados definidos; así que me tomo la libertad de elegir un juego nuevo para la sexta competencia, mientras pondero los demás juegos y propuestas pendientes.
El juego lo adapté de una discusión en el foro de Little Golem; es de naturaleza numérica.


Reglas del juego


En Doble y Nada juegan todos los participantes simultáneamente. En cada ronda, cada jugador elige un número entero positivo a gusto; el que elige el mayor gana un punto. Pero atención: si dicho número es mayor o igual que el doble del segundo mayor, se lo anula y se vuelve a evaluar el ganador.
Dicho de otro modo: gana el que elige el número más grande que sea menor que el doble del número inmediatamente menor elegido por otro jugador.

En caso de que varios jugadores elijan un mismo número ganador, todos ellos ganan el punto.

Un ejemplo:
  • Los jugadores eligen los números 8, 10, 20 y 1000.
  • Como 1000 es mayor o igual que 20 * 2, se anula el 1000.
  • Como 20 es mayor o igual que 10 * 2, se anula el 20.
  • Queda como ganador el 10, que es menor que 8 * 2.

Cómo participar

Podrán enviarme sus algoritmos en formato verbal, o en forma de código fuente, antes del sábado 12 de febrero de 2008.

El protocolo que deberán cumplir los programas presentados en forma de código es el siguiente:
  1. Escribir la jugada, en formato de número decimal, hacia la salida estándar (incluyendo un carácter de fin de línea).
  2. Leer una línea completa desde la entrada estándar. Si dicha línea es la palabra "fin", terminar normalmente. En caso contrario, dicha línea será el conjunto de números elegidos por todos los jugadores, en formato decimal, separados por un espacio.
    Ejemplo:
    43 8866 300 1 23894 1 44
    El orden de las jugadas siempre será el mismo; vale decir que el primer número de la lista siempre será el correspondiente al jugador A, el segundo al B, etc.
  3. Volver al paso 1.