Capture Programming Challenge for Amiga May 3, 2011
Last year I came upon a programming challenge/contest, run by the
ACM Queue magazine, that seemed like it might be fun.
From their description:
Beginning January 11th, 2010, ACM Queue is offering an online
programming competition based on the 2009 ACM International
Collegiate Programming Competition (ICPC) Challenge problem.
The Game of Capture is played on a [2D] field playing field
populated with many pucks. Each player controlls three playing
pieces, a sled and two bumpers, The point is to use your sled to a
draw closed loop around groups of pucks in an effort to convert as
many as you can to your own color. The player with the most pucks
at the end of a 90-second match is the winner.
There are no mice, joy-sticks, or keystrokes involved, the two
opposing players are entirely controlled by opposing user-written
programs sending control commands to their moving "sleds" and
"bumpers" via the game engine. The game engine in turn supplies
each player to the entire game state - sleds, bumpers, and the
112 movable pucks.
Unfortunately, Amiga programmers were almost locked out of the
game, since
"Participants will get to code a player in C++, C#, or Java
and compete with others in a game called Capture."
Even if you worked in C++, you could not do any testing on the
Amiga since the game engine was a Java program.
Now I've generated an independent implementation of the game
engine to run on AOS 4.1, to see if I could do it, and to see if we could
have some fun programming.
I think it is ready to have a go. The engine does the physics and
graphics, so programming your own player is not beyond a beginning
or a rusty programmer, but programming a really good player is a
challenge for the best programmer.
The players and the engine are separate processes, communicating
via Amiga pipes, so it is open to anyone's favorite Amiga language,
C, C++, E, Modula-2, etc.
Since I used my Aglet Modula-2 compiler to do the engine and also
am supplying sources for some simple example players in Modula-2,
I'm hoping to spark some interest in my favorite language.
I've also included however, as proof of concept, a working C source
version of the RandomPlayer.
| |