martes, septiembre 11, 2007

Intervalo: detalles para programadores

Para la competencia de Intervalo, los jugadores que quieran escribir su propio código podrán hacerlo.
Obviamente, los que no sepan o no quieran programar pueden enviarme simplemente la idea del algoritmo, y yo la implementaré.

Las reglas para presentar código serán las siguientes:

Se aceptará sólo código fuente, con instrucciones precisas sobre cómo compilarlo/interpretarlo.

El lenguaje que usen deberá disponer de un compilador o intérprete gratuito que corra bajo Linux de 64 bits (mi sistema es un Ubuntu 7.04, versión para amd64).

El programa será llamado con un argumento de 64 caracteres, con el siguiente formato:

. = casilla vacía
n = casilla ocupada por una ficha neutral
p = casilla ocupada por una ficha propia
a = casilla ocupada por una ficha ajena

Ejemplo de la línea de comandos usada:

prog ...na..p...a..p..a.np....a...npn...a.nn.p....p.......a..........

Los caracteres del argumento serán el contenido de la casilla 1 a la 64, respectivamente.

El programa calculará su movida, la imprimirá en la salida estándar como número decimal entre 1 y 64 inclusive, y terminará. La salida deberá ser terminada con un carácter de fin de línea.

Ejemplo en C/C++:
printf("%d\n", casilla_elegida);

Ejemplo en Python:
print casilla_elegida

Los programas que devuelvan el número de una casilla ocupada, o un número fuera del rango, serán descalificados. Por supuesto, antes de hacer la competencia definitiva haré algunas pruebas y avisaré a los autores sobre posibles problemas.

domingo, septiembre 09, 2007

Cuarta competencia: Intervalo


Intervalo es un juego bipersonal de movimientos simultáneos (es la versión unidimensional del Frames, juego que diseñé hace unos años).

Reglas del juego

Intervalo se juega en un tablero con forma de tira de 64 casillas, numeradas del 1 al 64. Al comienzo todas las casillas están vacías.
Cada jugador usa fichas de un color que lo represente. Se usan también algunas fichas de color neutral.
En cada turno, ambos jugadores eligen simultáneamente una de las casillas libres de la tira. (Si los que juegan son personas, pueden escibir en secreto el número de la casilla en un papel y luego mostrarlos al mismo tiempo).
Pueden darse dos casos:
  • Que elijan la misma casilla. En este caso, se coloca en la casilla una ficha neutral y termina el turno.
  • Que elijan casillas distintas. En este caso, se coloca en cada casilla una ficha del color correspondiente al jugador que la eligió, y se cuentan las fichas de cada jugador que estén entre las dos casillas recién elegidas. El que tenga más fichas propias entre ambas casillas obtiene un punto.
La partida termina cuando ya no hay casillas libres. El que tenga más puntos es el ganador.

Reglas para el torneo

En esta versión de la competencia, los algoritmos deberán ser estáticos. Es decir, deberán calcular su jugada teniendo en cuenta exclusivamente el contenido de la tira de casillas. No tendrán «memoria» del orden de las movidas de la partida.
Dependiendo de las ideas, sugerencias y vicisitudes que surjan en este torneo, decidiremos si hacemos la versión dinámica.

Cada algoritmo se enfrentará N veces con cada uno de sus oponentes. N dependerá de cuestiones técnicas, pero supongo que será al menos 100.

El ránking final se armará usando la cantidad total de partidas ganadas. Las partidas empatadas no se tendrán en cuenta.

El plazo de entrega de algoritmos será de un mes a partir de la fecha de este post.

¡Espero sus algoritmos!

lunes, septiembre 03, 2007

Juego se busca

Hola a todos, aquí estoy intentando revivir este proyecto. Además de terminar de programar lo que falta del minoría, que ya es poquito, ando con ganas de seleccionar un juego nuevo para la próxima competencia, porque el juego Demofobia no resultó ser tan interesante como esperaba.

Así que si alguno conoce un juego simple pero no trivial, ingenioso y no azaroso, que lo comente aquí así vamos preparando el próximo torneo.

domingo, abril 15, 2007

Resultados parciales del torneo de Minoría

He dejado pasar demasiado tiempo sin poder terminar de programar el torneo de Minoría, así que he decidido publicar los resultados parciales con los algoritmos que he podido programar hasta ahora.

Mis disculpas a los que han quedado fuera. Eventualmente iré programando los algoritmos que queden y actualizando la tabla de puntajes. Si algún participante se ofrece para terminar los demás algoritmos, será más que bienvenido. Este torneo lo he programado en Python.

La partida fue a 500000 turnos. La tabla de posiciones quedó como sigue:

104922 100.0 J (Jorge Alvaro)
104838 99.9 Nash (Luis Silvestre)
104322 99.4 Salva (Salvador Cases)
95621 91.1 El Contra (German Zorba)
93663 89.3 Psicologico (Ivan Skvarca)
48442 46.2 Segundo Plato (Guido Bernardo)
24194 23.1 A por el Crater (Carlos Luna Mota)
24194 23.1 Julian (Julian Antonacci)

lunes, marzo 05, 2007

Señales de vida

Este post es sólo para aclarar que estoy vivo, aunque sigo sin poder dedicar todo el tiempo que quisiera a programar.
Eventualmente lograré hacerlo; hasta entonces gracias por la paciencia...

viernes, enero 05, 2007

Resurrección

Hola a todos. Ahora que he usado algunos días de mis vacaciones para dormir, estoy mejor capacitado para terminar por fin de escribir lo que falta del código para el torneo de Minoría.

En unas horas, algunos de los participantes recibirán un mensaje pidiendo algunos detalles de sus algoritmos.

Desde ya pido disculpas por mi cuelgue involuntario; mi vida laboral se había extendido un tanto últimamente. No es una excusa, sino una aclaración para tranquilizar a algunas gentes que temían por mi integridad física.

martes, noviembre 07, 2006

Más demoras

Me he demorado más de lo habitual con el Minoría. Quizá no esté de más una pequeña explicación/excusa.

Sucede que había empezado a programar todo en javascript (para que todos pudieran probar el código sin tener que usar nada más que un navegador), pero me encontré con sutiles (y no tan sutiles) dificultades en ese lenguaje y en mi conocimiento de ese lenguaje.

Por lo tanto comencé a reprogramar todo en Unicon, donde me manejo mejor.

Pido una vez más disculpas por la demora. Pero para que no sientan ansiedad alguna, decidí inaugurar la cuarta competencia mientras termino la tercera. En el próximo post pondré las reglas del Demofobia, el nuevo juego.

jueves, noviembre 02, 2006

Complejidades

He recibido bastantes participaciones para el Minoría; unos 16 algoritmos hasta ahora. Algunos son bastante complejos, y espero recibir algunos más entre hoy y mañana, así que seguramente me lleve unos días más preparar todo.

¡Paciencia y suerte para todos!