FC2017 - V Torneo Caribeño de Jugadores Virtuales "ICPChallenge" / 5th Tournament of Virtual Players "ICPChallenge"

The 2017 ACM-ICPC Caribbean Regional Contest.
User avatar
dovier
Posts: 1050
Joined: Fri Nov 11, 2011 9:32 am
Location: Havana, Cuba
Gender: Male

FC2017 - V Torneo Caribeño de Jugadores Virtuales "ICPChallenge" / 5th Tournament of Virtual Players "ICPChallenge"

Postby dovier » Wed Oct 19, 2016 2:21 pm

English version below

CONCURSO INTERNACIONAL UNIVERSITARIO ACM DE PROGRAMACIÓN
CONCURSOS REGIONALES LATINOAMERICANOS 2017 - FINAL CARIBEÑA
V Torneo Caribeño de Jugadores Virtuales "ICPChallenge"

EL TORNEO ICPCHALLENGE

El torneo consiste en la programación de jugadores virtuales capaces de jugar automáticamente, es decir, sin interacción humana. Cada equipo participante de la Final Caribeña 2017 podrá enviar su implementación de jugador virtual. Un jugador virtual debe ser implementado en Java utilizando un único archivo con el código fuente describiendo una sola clase. El código fuente del jugador virtual debe ser enviado antes del 4 de noviembre a la dirección acmicpc@uclv.cu. El mensaje deberá contener el asunto: ICPChallenge2017 "nombre oficial del equipo" (por ejemplo: ICPChallenge2017 "UH++").

El torneo realizará dos rondas de todos contra todos, para quedarse con las 2n implementaciones que más puntos acumulen. Elegidas las 2n implementaciones se realizarán cruces clasificatorios hasta que solo resten los jugadores de la Gran Final. En cada ronda las dimensiones del campo aumentarán hasta llegar a 20x20. Para la partida final se jugarán dos rondas con un terreno de dimensiones 10x10 y una tercera (con dimensiones 20x20) en caso de existir empates.

Empates
Cuando no existen más jugadas en el tablero y ninguno de los jugadores ha conseguido una secuencia, el desempate ocurre por puntos. Los puntos son calculados por la suma de los puntos de cada ficha del jugador. Cada ficha tiene tantos puntos como fichas de su mismo tipo estén en su misma componente conexa.

EL JUEGO

El juego Connect 4 fue concebido para que fuese fácil de usar y con una dinámica general fácil de comprender. En este sentido puede describirse rápidamente como un derivado del juego de lápiz y papel Equis y Ceros. Cada jugador puede realizar una acción por turno (colocar o quitar ficha del tablero), alternando con el jugador contrario. El objetivo final del juego es completar una secuencia de 4 o más fichas en la misma diagonal, fila o columna.

EL TERRENO

El campo de juego es una matriz de celdas con dimensiones variables (X = [7, 20] y Y = [7, 20]); cada celda de la matriz puede poseer o no elementos en ella. La celda [0,0] representa la esquina superior izquierda del tablero.

ICPChallenge2016-Field.png
ICPChallenge2016-Field.png (32.2 KiB) Viewed 409 times
ICPChallenge2016-Field.png
ICPChallenge2016-Field.png (32.2 KiB) Viewed 409 times


LAS REGLAS

El juego no posee un conjunto de reglas complejas. Cada partida es comenzada por un jugador seleccionado de forma aleatoria.

Desarrollo del juego
Este jugador será quien coloque la primera ficha en el tablero; luego se tomarán turnos. Cada jugador en su turno tratará de ir acomodando sus piezas de manera que logre formar una secuencia de cuatro. En los turnos que sean múltiplos de 5 (por ejemplo: 10, 15, 20) el jugador se verá obligado a retirar una pieza del tablero (de las suyas). Si como resultado de esta acción alguno de los jugadores completa la secuencia, tendremos un ganador; si sucediese que ambos resultan ganadores se tomará como ganador al jugador en turno. El jugador pierde de forma automática de existir un error en el código fuente, que como resultado genere una excepción.

Final del juego
La partida será ganada por el primer jugador que logre una secuencia de cuatro fichas. Antes de comenzar otra partida, se reinicia el tablero. En caso de empate se procede a un desempate por puntos acumulados.

LA BIBLIOTECA

La biblioteca uci.acm.challenge implementa una variante computacional del juego Connect 4 y es distribuida a través del fichero uci.acm.challenge.jar (6.4 MB). La documentación de la biblioteca (67.7 KB) también está disponible.

Ejecutando la línea de comando: java –jar uci.acm.challenge.jar
Aparece una ventana donde se pueden escoger 2 estrategias, y jugar.

ICPChallenge2017-Library.png
ICPChallenge2017-Library.png (23.23 KiB) Viewed 407 times
ICPChallenge2017-Library.png
ICPChallenge2017-Library.png (23.23 KiB) Viewed 407 times


LA API

El objetivo principal de los competidores es desarrollar una táctica de juego, en la que deberán especificar y coordinar acciones para obtener más puntos que el jugador contrario. La API fue diseñada con este objetivo y está compuesta por un conjunto de clases que posibilitan el desarrollo de estas soluciones; tales clases pueden ser revisadas con más detalles en la documentación disponible.

IMPLEMENTANDO UN JUGADOR

La biblioteca uci.acm.challenge permite la competición entre jugadores virtuales que pueden ser implementados usando la propia biblioteca.

Para crear una táctica solo es necesario escribir una clase que implemente la interfaz uci.acm.challenge.Player.Player. Esta interfaz contiene los métodos necesarios para la ejecución, que se encuentran identificados en la documentación.

Está disponible un video tutorial que muestra cómo llevar a cabo un proyecto. Se provee además la implementación de una clase demostrativa comentada (1.1 KB). Para facilitar las tareas de implementación, el mapa recibido por cada jugador es personalizado; siempre podrá considerar como suyas a las celdas con valor My.

------------------------------------------------------------------------------------------------------------

THE ACM INTERNATIONAL COLLEGIATE PROGRAMMING CONTEST
THE 2017 LATIN-AMERICAN REGIONAL CONTESTS - CARIBBEAN FINALS
5th Caribbean Tournament of Virtual Players "ICPChallenge"

THE ICPCHALLENGE TOURNAMENT

The tournament consists on programming virtual players capable of automatic game playing, i.e. without human interaction. Every 2017 ACM-ICPC Caribbean finalist team may submit one virtual player implementation. A virtual player must be implemented in Java using a single file containing the source code describing a single class. To submit a virtual player, the source code must be sent before November 4th at the address acmicpc@uclv.cu. The message should contain the subject: ICPChallenge2017 "team official name" (for example: ICPChallenge2'17 "UH++").

The tournament will make two rounds of all against all, to stay with the 2n implementations that accumulate more points. Once the 2n implementations have been chosen, qualifying crosses will be held until only the players of Grand Final are subtracted. The dimensions of the field in each round will increase until 20x20. For the final match two rounds will be played with a 10x10 pitch and a third (with dimensions 20x20) if there are draws.

Draw
When there are no more plays on the board and none of the players has achieved a sequence, the tiebreaker occurs by points. The points are calculated by the sum of the points of each player's chip. Each chip has as many points as chips of the same type are in the same connected component.

THE GAME

The game Connect 4 was designed to be easy to use and with a general dynamic easy to understand. In this sense it can be quickly described as a derivative of the Equis and Zeros pencil and paper game. Each player can perform an action per turn, alternating with the opposing player. The final goal of the game is to complete a sequence of 4 or more tiles on the same diagonal, row or column.

THE FIELD

The playing field is a matrix of cells with varying dimensions (X = [7, 20] and Y = [7, 20]); each cell in the matrix may possess or not elements in it. Cell [0,0] represents the top left corner of the board.

ICPChallenge2016-Field.png
ICPChallenge2016-Field.png (32.2 KiB) Viewed 409 times
ICPChallenge2016-Field.png
ICPChallenge2016-Field.png (32.2 KiB) Viewed 409 times


THE RULES

The game doesn't have a complex set of rules. Each game is started by a randomly selected player.

Game's development
This player will be the one who places the first chip on the board; then take turns. Each player in his turn will try to accommodate his pieces so that he can form a sequence of four. In turns that are multiples of 5 (for example: 10, 15, 20) the player will be forced to remove a piece from the board (of his own pieces). If as a result of this action any of the players completes the sequence, we will have a winner; if happens that both are winners, then winner will be the player in turn. The player automatically loses in case of an error in the source code, which results in an exception.

Game over
The game will be won by the first player to achieve a four-chip sequence. Before starting another game, the board is restarted. In case of a tie, we proceed to broke the tie by accumulated points.

THE LIBRARY

The uci.acm.challenge library implements a computational variant of the game Connect 4 and is distributed through the uci.acm.challenge.jar (6.4 MB) file. The library documentation (67.7 KB) is also available.

Running the command line: java -jar uci.acm.challenge.jar
Appears a window where you can choose two strategies, and play.

ICPChallenge2017-Library.png
ICPChallenge2017-Library.png (23.23 KiB) Viewed 407 times
ICPChallenge2017-Library.png
ICPChallenge2017-Library.png (23.23 KiB) Viewed 407 times


THE API

The main objective of the competitors is to develop a tactical game, which should specify and coordinate actions to get more gold than the opposing player. The API was designed with this objective and is composed of a set of classes that enable the development of these solutions; such classes can be reviewed in more details in the available documentation.

IMPLEMENTING A PLAYER

The uci.acm.challenge library allows the competition of virtual players that can be implemented using the library itself.

To create a tactic is only necessary to write a class that implements the interface uci.acm.challenge.Player.Player. This interface contains the methods needed for the execution, which are identified in the documentation.

Available is a tutorial video showing how to carry out a project. The implementation of a demonstration commented-class (1.1 KB) is also provided. To facilitate the implementation tasks, the map received by each player is customized; you can always consider as yours the cells with My value.



MarX
Posts: 1
Joined: Fri Apr 25, 2014 10:15 am
Gender: None specified

Re: FC2017 - V Torneo Caribeño de Jugadores Virtuales "ICPChallenge" / 5th Tournament of Virtual Players "ICPChallenge"

Postby MarX » Thu Oct 12, 2017 3:11 pm

El link a la documentación no funciona, hay algún link alternativo?

http://coj.uci.cu/downloads/final-carib ... avadoc.zip

User avatar
dovier
Posts: 1050
Joined: Fri Nov 11, 2011 9:32 am
Location: Havana, Cuba
Gender: Male

Re: FC2017 - V Torneo Caribeño de Jugadores Virtuales "ICPChallenge" / 5th Tournament of Virtual Players "ICPChallenge"

Postby dovier » Sun Oct 22, 2017 1:49 am

MarX wrote:El link a la documentación no funciona, hay algún link alternativo?

http://coj.uci.cu/downloads/final-carib ... avadoc.zip


Hola Marcelo,
Acabo de probar y me funciona perfectamente. Favor escribir a la dirección acmicpc@uclv.cu si persiste el problema.
Saludos.

reinier
Posts: 1
Joined: Fri Sep 22, 2017 11:30 pm
Gender: Male

Re: FC2017 - V Torneo Caribeño de Jugadores Virtuales "ICPChallenge" / 5th Tournament of Virtual Players "ICPChallenge"

Postby reinier » Sat Oct 28, 2017 6:12 pm

Después de correr el .jar de ejemplo y ver algunos juegos, además luego de buscar en Internet sobre el juego, creo que debería especificarse que las fichas se colocan en la fila más baja de una columna.

Además tengo algunas dudas sobre las reglas del juego:
1. En cada turno un jugador puede colocar o quitar una ficha del tablero.
Duda (esta es casi tonta pero quiero estar seguro): La ficha a quitar puede ser del adversario, verdad?

2. En los turnos que sean múltiplos de 5 (i.e: 10, 15, 20) el jugador se verá obligado a retirar una ficha del tablero (de las suyas).
Duda: La ficha a quitar tiene que ser necesariamente de la fila inferior, o puede ser retirada de cualquier fila?


Return to “2017”

Who is online

Users browsing this forum: No registered users and 1 guest