The ICPC Challenge is an effort to continue to offer the kinds of visual, interactive, competitive programming problems popularized by previous offerings of the Java Challenge. Teams implement player code that competes with other teams' players in a game-like simulation. A tournament among the players determines the winner.
The ICPC Challenge gives programming teams and their coaches a chance to work on a different kind of problem. Working with their coach, teams implement a player and compete against other teams' players in a new game called Coercion. Preliminary matches during the coding phase let teams know how well their players are doing. A final double-elimination competition among all the submitted players decides which team has the best player.
At the 2011 ICPC World Finals, we presented a tournament among the submitted players for 24 world finalist teams. The following image shows how the tournament played out. Click on the little blue dots to view or download a video of the match.
At the 2011 world finals, we ran two tournaments, one among all teams' final player submissions, and an extra tournament among just the players submitted during the original two-week coding phase. We wanted to recognize the hard work of world finalist teams who came up with great players during the original two-week coding phase. The following is a tournament among the best players submitted during this portion of the competition. Click on the little blue dots to view or download a video of each match.
The ICPC Challenge game, Coercion, is played in an environment that looks something like the following figure. A red player and a blue player compete to coerce regions of the playing field to their own color. Each player directly controls three playing pieces called pushers. These pieces can't directly change colors on the field, but, they can be used to push other playing pieces called markers around the field. If enough markers touch a region of the field for long enough, they can coerce it to their own color. If a marker is trapped for long enough in a region of a different color, it may be coerced to that region's color. The game rules describe how to play the game, how to score points and how to win.
Your player will be implemented as a stand-alone program, in C++ or Java. You will interact with the game by reading information about the game world from standard input and writing your next move to standard output. The sample players can be a quick way for you to get started writing your player and interacting with the game. A more detailed description of the execution environment explains the input and output format for your player as well as other rules for what your player can do.
Once you have a player written, you can run it by starting up the game and pointing it to your player's executable. If you have written a player in C++, you can run it against the sample Java player using a command like:
java -jar coercion.jar -player cpp myPlayer -player java -cp java_example Hunter
If your player is implemented in Java, you can run it against the example player using a command like:
java -jar coercion.jar -player java -cp java_example Planter -player java MyPlayer
The more detailed usage instructions describe more options for starting up the game, including how to run the 3D visualization, how to capture a match as a trace file and how to debug your player during execution.
During the coding phase of the competition, players can access the competition through the ICPC Challenge site at: http://icpc.baylor.edu/challenge/ From this page, participants will be able to login to the submission system, submit player code, and see how they are doing in preliminary matches. The latest working submission is considered the participant's current player. The final tournament and the nightly preliminary matches will use the most recently submitted player code that successfully builds.
All source code and supporting files for a player must be submitted at the same time. From the submission interface, select each source file that's part of your player, and then press the "Upload Files" button to upload the whole thing. If you forget to submit an important file, you will need to re-submit everything to have a working player.
In addition to the ICPC challenge at the world finals, we run challenge competitions that are open to anyone who's interested. Hundreds of developers from around the world have signed up to compete. Visit the Queue ICPC Challenge site to find out more about this competition and to plan for the next one.
If you like the challenge, join our community on Facebook. Visit our fanpage and become a fan.
Working together, the ICPC and
The 2010 ICPC finals featured an ICPC Challenge problem appropriate to the February weather in Harbin, China. Teams developed a program to control a group of children in a snow-covered field. See the 2010 ICPC Challenge Page for a description of the problem and the winners. You can also check out preliminary standings from the coding phase of the competition and see the results of the final tournament. You can even watch videos of the matches. If you want to try the problem for yourself, you can download the game binary and write your own player.
The 2009 ICPC finals featured an offering of the ICPC Challenge. The 2009 ICPC Challenge Page describes the challenge problem from that year and gives the preliminary standings from the coding phase of the competition. You can also see the results of the final tournament and even watch videos of the matches. If you want to try the problem for yourself, you can download the game binary and write your own player.
If you are excited about helping out with the ICPC Challenge, or if you have questions, please contact the ICPC Challenge director, David Sturgill ().