Mostrando las entradas con la etiqueta Ignotum. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Ignotum. Mostrar todas las entradas

sábado, septiembre 28, 2013

Ignotum: resultados

He aquí los resultados de la competencia de Ignotum tras 1000 rondas con cada combinación de N y K:


puestoestrategiapuntaje
1AlexRodrigo53132
2MarioAdriV52869
3danihpAtStackOveflow52679
4vitopuji51288
5JuliBrahim39746
6DavidLlop17989


Esta planilla contiene todos los detalles, incluyendo los puntjes segregados por valores de N y K.

Este archivo contiene el código de la competencia, incluyendo todas las estrategias enviadas.

¡Felicitaciones a Álex y Rodrigo, los ganadores!

jueves, agosto 08, 2013

Ignotum: código para probar estrategias


Hay otros sitios de competencias entre algoritmos que publican el código del «referí» para que los participantes puedan probar sus ideas antes de la competencia final; me pareció buena idea y la usaré en esta y también en futuras competencias.

En este archivo (update: corregí un sutil bug en el código, bajen el nuevo archivo) está el código básico del torneo. Los que sepan programar en Python podrán aprovecharlo para probar sus estrategias y elegir la mejor para enviar, y los que no quizá puedan usarlo igualmente para mirar la lógica y despejar dudas y, quién sabe, animarse y aprender a programar en Python :)


Aclaraciones:
El script necesita la versión 3 del lenguaje. Pueden usar el script especificando la cantidad de rondas a correr, así como los valores de N y K, en la línea de comandos.

Ante cualquier duda pueden comentar aquí o enviarme un mensaje.

lunes, agosto 05, 2013

Nueva competencia: Ignotum


Para esta competencia he elegido una variante del Datum que surgió conversando con algunos participantes.

Las reglas del Ignotum son básicamente las mismas que las del Datum, excepto por algunas diferencias cruciales. Veamos:

Reglas del juego


Juegan dos jugadores, usando un dado de N caras. Los jugadores no saben cuánto vale N.

En cada turno, un jugador toma el dado, lo arroja, y decide cuál de estas dos cosas hacer:

  • Pasar el turno al otro jugador, anotándose los puntos que indica el dado.
  • Mantener el turno, pero anotarle al otro jugador los puntos que indica el dado.

Esto se repite una y otra vez (cambiando o no de turno, según las decisiones de los jugadores), hasta que se cumplen K turnos. Los jugadores no saben cuánto vale K.


Reglas de la competencia


Para participar, deben enviarme una estrategia (una sola por participante) en forma de algoritmo que indique si pasa o no el turno, en función de estos datos:

  • una lista de los números que ha mostrado el dado en sus turnos (el último será el del turno actual)
  • los puntajes actuales (propio y del oponente)

No olviden que los algoritmos no conocen los valores de N y K.
Aclaración importante: implementaré todo en Python 3, que no tiene límites en el tamaño de los enteros que maneja.

Se agradecerá (aunque no es obligatorio) que envíen código en algún lenguaje de programación real, preferentemente Python 3. A veces es complicado interpretar pseudocódigo.

Cada par de estrategias jugará al menos 1000 partidas para cada combinación de N y K, alternando quién tiene el turno inicial.

La estrategia ganadora será la que gane más partidas en total.

Recibiré estrategias y/o comentarios hasta el 27 de septiembre. ¡Anímense!