THE 2018 LATIN-AMERICAN REGIONAL CONTESTS - CARIBBEAN FINALS
The 6th 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. Each 2018 ACM-ICPC Caribbean finalist team, may submit a 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 to firstname.lastname@example.org before November 8th. The message should contain the subject: ICPChallenge <team official name> (for example: ICPChallenge UH++). In paralel an open tournament (The ICPChallenge OPEN) will be held. On this modality of participation will be included the players sent by other competitors, even if they are not officially enrolled with the Caribbean Finals. The results on this open competition will not be considered to define the winners of the official ICPChallenge Tournament.
The tournament will make a set of round of all against all, in order to define the 8 implementations with more games won. The qualified players will have crosses, until we get the champion team. Each round, the field's dimensions will decrease down to 20x20.
The “Battles in the Caribbean II” game, 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 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, which can decrease or increase according to the 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 game consists of an improved version, with new players and items, from the previous edition.
The playing field, is a matrix of cells with varying dimensions (X = [20, 60] and X = [20, 80]), each cell in the matrix may or may not have elements on it, and it can run effects over the entities that are on it.
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 effect, affects a property only once in the game when it is assigned to an entity (see ENTITIES section).
- Permanent: This type of effect, affects a property each turn of the game, when it is assigned to an entity (see ENTITIES section) The properties, on the other hand, are the characteristics that describe entities (“Life”, “Defense”, “Attack”, “Gold”). Each of these, has a current value and a maximum value that can not be exceed. For example, player's gold is the sum of the “Gold” property of all its heroes.
Each cell of the game, also known as boxes, has a position (X, Y) associated, in which can exist or not entities. Each cell in the game has the ability to add an effect to the entities that moves to it. To calculate the distance between two cells, we use the Euclidean distance. Three types of cells exist in the game:
The Items, or articles, of the game are elements owned by the entities, which can be bought with its gold. There are two types of items: weapons and effects, each item has a set of effects that transform the entity that owns it. In the specific case of weapons, it is the unique item that can be used on an attack, and are distinguished from the rest because they have Scope (Scope) and Damage (Damage). An entity can have as many items as it can buy.
The entities are the elements with “Life” in 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 main characters of the game and differ from the rest because they can perform actions (Buy Items, Move, Attack or Wait), also the value of attack is included among its properties.
To create a hero there are 1600 available points, which must be distributed between its four characteristics (Life, Attack, Defense, Gold) so that none of them have 0 as initial value. A hero has also two permanent effects, one for life and one for gold, that change the current value of these properties at each iteration; there are 5 available points to distribute, the same as with properties.
At the beginning of the game an entity of object type is placed on each cell, and the heroes of each player are clustered in the corners.
Each player can make a single action per iteration, over a specific hero. The time taken to give the answer must be lower than 1000 ms.
The action Move can be executed whenever the cell to where you want to move the hero exists and is not be occupied by another entity; the cell must be one of the adjacent cells to the current position of the hero.
The action of buying an item carries a gold expense at the entity performing the action. To buy an item, the hero must have enough gold, otherwise the action will not be executed. An entity can be associated to as many items as it can buy.
A hero must select an item (of weapon type) to perform the attack; he may attack any entity which is at a distance equal or less than the range (scope) 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 result of attacking an obstacle; in this case will apply the same allocation rules of the gold.
A player can decide not to take any action; in this case the hero will lose 50 points of gold (if available) and 10 points of life.
Important: A hero can die as a result of this action.
The uci.acm.challenge library implements a computational variant of the game "Battles in the Caribbean II" and is distributed through a .jar file (8.3 MB). The library documentation (406 KB) is also available.
Running the command line java -jar uci.acm.challenge.jar will show a window where you can choose two strategies and play.
IMPLEMENTING A PLAYER
The uci.acm.challenge library allows to set up a competition of virtual players, that can be implemented using the library itself.
To create a strategy it is required 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.
The is video tutorial available showing how to carry out a project. Also, you can check the following demos (real players from the first version): TAKE PART OF THE ACTION
Every team participating in the tournament has the option of sending a custom hero and a custom item. In both cases, should follow a similar format description, and must send each suggested image, preferably with a transparent background. The deadline for sending the new heroes and items is November 1st. An updated library will be published on November 2nd.