FC2016 - IV Torneo Caribeño de Jugadores Virtuales "ICPChallenge" / 4th Tournament of Virtual Players "ICPChallenge"

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

FC2016 - IV Torneo Caribeño de Jugadores Virtuales "ICPChallenge" / 4th 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 2016 - FINAL CARIBEÑA
IV 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 2016 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 5 de noviembre a la dirección acm-icpc@uci.cu. El mensaje deberá contener el asunto: ICPChallenge2016 "nombre oficial del equipo" (por ejemplo: ICPChallenge2016 "UH++").

El torneo contará con una ronda inicial de todos contra todos para definir las 8 implementaciones con más partidos ganados. Luego se realizarán cruces clasificatorios hasta definir a los dos finalistas. En cada ronda, las dimensiones del campo disminuyen hasta llegar a 20x20.

EL JUEGO

El juego "Battles in the Caribbean" 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 torneo de estrategia, donde cada jugador cuenta con un equipo de tres héroes los cuales tienen recursos y propiedades individuales. Cada héroe posee distintas armas, artículos y su propio oro que pueden disminuir o aumentar atendiendo al desarrollo del juego. Cada equipo puede realizar una acción por turno (atacar, mover, comprar, descansar), alternando con el equipo contrario, el objetivo final del juego es acumular la mayor cantidad posible de oro.

EL TERRENO

El campo de juego es una matriz de celdas con dimensiones variables (X = [20, 60] y Y = [20, 80]), cada celda de la matriz puede poseer o no elementos en ella, y de igual forma puede ejecutar efectos sobre las entidades que sobre ella se encuentren.

ICPChallenge2016-Field.png
ICPChallenge2016-Field.png (97.78 KiB) Viewed 1345 times
ICPChallenge2016-Field.png
ICPChallenge2016-Field.png (97.78 KiB) Viewed 1345 times


LOS EFECTOS Y LAS PROPIEDADES

Antes de adentrarnos en otras características del juego es necesario explicar qué son los efectos, pues están presentes en casi todos los elementos del juego. En el juego se cuenta con dos tipos de efectos:
  • Single: Este tipo de efectos afecta a una propiedad, una única vez en el juego al ser asignado a una entidad (ver sección Entidades).
  • Permanent: Este tipo de efectos afecta a una propiedad, en cada turno del juego al ser asignado a una entidad (ver sección Entidades).

Las propiedades son las características que describen a las entidades ("Life", "Defense", "Attack", "Gold"), cada una de estas posee un valor actual y un máximo que no pueden superar. Así, por ejemplo, el oro de un jugador es la suma de la propiedad "Gold" de todos sus héroes.

LAS CELDAS

Cada celda del juego, o casilla, tiene asociada una posición (X,Y); en ella puede existir o no las entidades. Cada celda del juego tiene la posibilidad de añadir un efecto a las entidades que se muevan hacia ella. Para calcular la distancia entre dos celdas, emplearemos la distancia Euclidiana. De esta forma existen en el juego tres tipos de celdas:
  • Normal.
  • Agua.
  • Fuego.

Ver aquí (753 KB) una mayor descripción de las celdas, los artículos y las entidades del juego.

LOS ARTÍCULOS

Los ítems o artículos del juego son elementos que poseen las entidades, o que pueden comprar con su oro. Existen dos tipos de artículos: las armas y los de efectos; cada ítem tiene un conjunto de efectos que traslada a la entidad que lo adquiere. En el caso específico de las armas son los únicos ítems que pueden emplearse en un ataque, y se distinguen del resto por poseer Alcance (Scope) y Daño (Damage). Una entidad puede tener tantos ítems como pueda comprar.

ICPChallenge2016-Items.png
ICPChallenge2016-Items.png (56.73 KiB) Viewed 1345 times
ICPChallenge2016-Items.png
ICPChallenge2016-Items.png (56.73 KiB) Viewed 1345 times


LAS ENTIDADES

Las entidades son los elementos con "Vida" del juego; existen dos tipos de entidades: los obstáculos u objetos (que se encuentran distribuidos por todo el terreno), y los héroes. Los héroes son los protagonistas del juego y difieren del resto porque pueden ejecutar acciones (Comprar Ítems, Moverse, Atacar o Esperar), además poseen entre sus propiedades el valor de ataque.

ICPChallenge2016-Entities.png
ICPChallenge2016-Entities.png (41.13 KiB) Viewed 1345 times
ICPChallenge2016-Entities.png
ICPChallenge2016-Entities.png (41.13 KiB) Viewed 1345 times


Para la creación de un héroe se cuenta con 1600 puntos, que se deben distribuir entre sus cuatro características (Life, Attack, Defense, Gold) de forma que ninguna de ellas tenga 0 como valor inicial. Un héroe cuenta también con dos efectos permanentes, uno para la vida y otro para el oro, que hacen variar el valor actual de estas propiedades en cada iteración; para ello cuentan con 5 puntos a distribuir igual que con las propiedades.

Al comienzo del juego una entidad de tipo objeto se coloca en cada celda, y los héroes de cada jugador son agrupados en las esquinas.

LAS ACCIONES

Cada jugador por iteración puede realizar una única acción sobre un héroe en específico. El tiempo que emplea para dar la respuesta debe ser menor que 1000 ms.

Acción Mover

La acción mover puede ser ejecutada siempre que la celda hacia donde se desea desplazar el héroe exista y no esté ocupada por otra entidad; dicha celda debe ser una de las celdas adyacentes a la posición actual del héroe.

ICPChallenge2016-Movements.png
ICPChallenge2016-Movements.png (66.56 KiB) Viewed 1345 times
ICPChallenge2016-Movements.png
ICPChallenge2016-Movements.png (66.56 KiB) Viewed 1345 times


Acción Comprar

La acción de comprar un ítem conlleva un gasto de oro en la entidad que realiza la acción. Para poder comprar un ítem el héroe debe poseer el monto de oro suficiente, de lo contrario la acción no se ejecutará. Una entidad puede tener asociado tantos ítems como pueda comprar.

Acción Atacar

Un héroe debe seleccionar un ítem (de tipo arma) para realizar el ataque; podrá atacar a cualquier entidad que se encuentre a una distancia igual o menor al alcance del ítem seleccionado. Si como resultado de un ataque una entidad pierde todos sus puntos de vida, el oro de la entidad derrotada pasará a la entidad ganadora.

Importante: Un héroe puede morir como resultado de un ataque a un obstáculo; en este caso se aplicarán las mismas reglas de distribución del oro.

Acción Esperar

Un jugador puede decidir no realizar ninguna acción; en este caso el héroe perderá 50 puntos en oro (si los posee) y 10 puntos de vida.

Importante: Un héroe puede morir como resultado de esta acción.

LA BIBLIOTECA

La biblioteca uci.acm.challenge implementa una variante computacional del juego "Battles in the Caribbean" y es distribuida a través del fichero uci.acm.challenge.jar (7.4 MB). La documentación de la biblioteca (164 KB) también está disponible.

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

ICPChallenge2016-Library.png
ICPChallenge2016-Library.png (36.59 KiB) Viewed 1345 times
ICPChallenge2016-Library.png
ICPChallenge2016-Library.png (36.59 KiB) Viewed 1345 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 oro que el jugador contrario. El API fue diseñado con este objetivo y está compuesto 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 (30.2 MB) que muestra cómo llevar a cabo un proyecto.

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

THE ACM INTERNATIONAL COLLEGIATE PROGRAMMING CONTEST
THE 2016 LATIN-AMERICAN REGIONAL CONTESTS - CARIBBEAN FINALS
4th 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 2016 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. The source code of a virtual player must be sent before November 5th to the address acm-icpc@uci.cu. The message should contain the subject: ICPChallenge2016 "team official name" (for example: ICPChallenge2016 "UH++").

The tournament will have an initial round of all against all to define the 8 implementations with more games won. Later qualifier crosses will be made until define the two finalists. In each round, the field dimensions decrease up to 20x20.

THE GAME

The "Battles in the Caribbean" game was designed to be easy to use and easy to understand overall dynamics. In this sense it can be described quickly as a strategy tournament, where each player has a team of three heroes who have resources and individual properties. Each hero has different weapons, items and his own gold that can decrease or increase in response to game development. Each team may perform one action per turn (attack, move, buy, rest), alternating with the opposing team, the ultimate goal of the game is to accumulate as much gold as possible.

THE FIELD

The playing field is a matrix of cells with varying dimensions (X = [20, 60] and Y = [20, 80]), each cell in the matrix may possess or elements in it, and likewise can run effects on entities that are on it.

ICPChallenge2016-Field.png
ICPChallenge2016-Field.png (97.78 KiB) Viewed 1345 times
ICPChallenge2016-Field.png
ICPChallenge2016-Field.png (97.78 KiB) Viewed 1345 times


THE EFFECTS AND PROPERTIES

Before getting into other features of the game it is necessary to explain what are the effects because they are present in almost all elements of the game. In the game there are two types of effects:
  • Single: This type of effects affects a property only once in the game to be assigned to an entity (see Entities section).
  • Permanent: This type of effects affects a property, each turn of the game to be assigned to an entity (see Entities section).

The properties are the characteristics that describe entities ("Life", "Defense", "Attack", "Gold"), each of these has a current value and a maximum that can not exceed. Then, for example, the player's gold is the sum of the "Gold" property of all its heroes.

THE CELLS

Each cell of the game, or box, has associated a position (X, Y); in it can exist or not the entities. Each cell in the game has the ability to add an effect to the entities to move toward it. To calculate the distance between two cells, we use the Euclidean distance. Thus three types of cells exist in the game:
  • Normal.
  • Water.
  • Fire.

See here (753 KB) for further description of the cells, items and entities of the game.

THE ITEMS

Items or articles of the game are elements having the entities, or they can buy with its gold. There are two types of articles: weapons and effects; each item has a set of effects that moves to the entity that acquires. In the specific case of weapons are the only items that can be used in an attack, and are distinguished from the rest by having Scope (Scope) and Damage (Damage). An entity can have as many items as you can buy.

ICPChallenge2016-Items.png
ICPChallenge2016-Items.png (56.73 KiB) Viewed 1345 times
ICPChallenge2016-Items.png
ICPChallenge2016-Items.png (56.73 KiB) Viewed 1345 times


THE ENTITIES

The entities are the elements with "Life" on the game; there are two types of entities: the obstacles or objects (that are distributed all over the field), and the heroes. The heroes are the protagonists of the game and differ from the rest because they can perform actions (Buy Items, Move, Attack or Wait), also have between its properties the value of attack.

ICPChallenge2016-Entities.png
ICPChallenge2016-Entities.png (41.13 KiB) Viewed 1345 times
ICPChallenge2016-Entities.png
ICPChallenge2016-Entities.png (41.13 KiB) Viewed 1345 times


To create a hero there is 1600 points, which must be distributed on its four characteristics (Life, Attack, Defense, Gold) so that none of them have 0 as initial value. A hero also has two permanent effects, one for life and one for gold, that change the current value of these properties at each iteration; for it they have 5 points to distribute same as the properties.

At the beginning of the game an entity of object type is placed in each cell, and the heroes of each player are clustered in the corners.

THE ACTIONS

Each player by iteration can make a single action on a specific hero. The time it takes to give the answer must be less than 1000 ms.

Action Move

The move action can be executed whenever the cell to where you want to move the hero exists and not be occupied by another entity; the cell must be one of the cells adjacent to the current position of the hero.

ICPChallenge2016-Movements.png
ICPChallenge2016-Movements.png (66.56 KiB) Viewed 1345 times
ICPChallenge2016-Movements.png
ICPChallenge2016-Movements.png (66.56 KiB) Viewed 1345 times


Action Buy

The action of buying an item carries a gold expense at the entity performing the action. To buy an item the hero must be possess sufficient amount of gold, otherwise the action will not run. An entity can be have associated many items as it can buy.

Action Attack

A hero must select an item (weapon type) to perform the attack; he may attack any entity which is at a distance equal or less than the range of the selected item. If as a result of an attack an entity loses all his life points, the gold of the defeated entity will pass to the winning entity.

Important: A hero can die as a result of an attack on an obstacle; in this case will apply the same allocation rules of the gold.

Action Wait

A player can decide not to take any action; in this case the hero will lose 50 points in gold (if available) and 10 points of life.

Important: A hero can die as a result of this action.

THE LIBRARY

The uci.acm.challenge library implements a computational variant of the game "Battles in the Caribbean" and is distributed through the uci.acm.challenge.jar (7.4 MB) file. The library documentation (164 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.

ICPChallenge2016-Library.png
ICPChallenge2016-Library.png (36.59 KiB) Viewed 1345 times
ICPChallenge2016-Library.png
ICPChallenge2016-Library.png (36.59 KiB) Viewed 1345 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 necessary for the execution, which are identified in the documentation.

Available is a tutorial video (30.2 MB) showing how to carry out a project.



Return to “2016”

Who is online

Users browsing this forum: No registered users and 1 guest