Contest cancelled
It's an unfortunate announcement, but the contest has been cancelled due to insufficient entries. The website and its downloads will remain accessible for future reference.
Reminder: August 14th deadline
The deadline for submissions is August 14th, less than a week away. Follow the submission instructions and expect a confirmation that it was received within a day. Due to time constraints we may be unable to tell you if your submission fails to compile or other problems.
Remember, we do allow re-submissions up to the deadline.
One month left
You might notice that today, July 14th, is exactly one month before the contest deadline, August 14th (at midnight). Starting today, you can begin submitting your bot to make sure that you have a valid submission. Simply follow the instructions for submitting a bot, and we will let you know whether your bot compiles and runs properly and whether your submission is in the proper format. If you don't want a submission to be considered an official contest submission, write that it's only a "test submission" in the email. Otherwise, you can always resubmit up until the deadline without penalty.
A month is still plenty of time to do great things! If you haven't started yet, you have more than enough time to produce a strong bot. We know that procrastination is trendy and all, but it's hardly a winning strategy.
Errors when running bots
I've found out that there have been a few oversights in the "writing a bot" instructions.
Java's classpath
First and foremost, the instructions neglected the importance of setting Java's classpath. As you might already know, Java searches all of the paths in the $CLASSPATH variable for the classes you reference via "import" statements. Importing com.indianapokerbot.bot.PokerClient in NetBeans without also referencing IndianaPokerBot.jar at runtime would cause Java to fail with a message like
bash-3.2$ java -cp MyBot.jar MyBot 127.0.0.1 9001
Exception in thread "main" java.lang.NoClassDefFoundError: com/indianapokerbot/bot/PokerClient
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
...
Unfortunately, for every level of abstraction beyond that, you'd get less and less helpful messages. Running startme.sh might only give Exception in thread "main" java.lang.NoClassDefFoundError: MyBot. If you ran a match using matchConstructor.py, you might only see this in GlassFrog's log:
user@indiana$ ./run.sh ... Executing bot command: "/path/to/startme.bat 127.0.0.1 9001" from /path/to/ AAAIPPlayer PLAYERONE hit timeout Removing Room: MYROOM from active list
which is utterly unhelpful.
We have three solutions:
- The simplest thing to do is to add IndianaPokerBot.jar to the classpath at runtime by changing startme.sh to say
java -cp "/path/to/IndianaPokerBot.jar;MyBot.jar" MyBot $1 $2. - A potentially more convenient method but more invasive method is to permanently set your system $CLASSPATH variable to include IndianaPokerBot.jar, saving you the effort of adding it to every startme.sh script you write. Adding the line
CLASSPATH=$CLASSPATH:/path/to/IndianaPokerBot.jarto ~/.bash_profile would do the trick. - The easiest solution would be to skip the classpath madness altogether and copy the contents of IndianaPokerBot/src/ to your own project's src directory. If you do, you also won't need to set external libraries for your project.
Executable permissions
The instructions also neglected to mention that scripts need to, by nature, be marked as executable or else Unix will refuse to run it. If you see errors like java.io.IOException: Cannot run program ...: error=13, Permission denied, run chmod +x startme.sh on the script and it should work.
The instructions have been updated. If you still have issues, please contact us.
Participants, how’s it going?
There are 66 days until August 14th, the deadline, and we hope things are going well. If you haven't started yet, download the code and get started. The sooner the better---you know how these things just take time to sink in. If you have, please let us know how it's going. If you're having issues with the code, shoot us an email and we'll try to get it sorted out. Also, we'd like to release additional template code soon to get some of the more tedious tasks out of the way, so why don't you take a few seconds to let us know what you'd like to see?
2010 Contest Information Now Online
It's here! The rules, software, and documentation you'll need for the 2010 Indiana Poker Programming Contest are now online. You should probably read the rules first, and then read each of the three parts of the documentation. The documentation will get you started with using ACPC's poker server and writing your own poker bots.
The Annual Computer Poker Competition server was released only days ago, so it's been a challenge to get it customized and documented for you. We'll be expanding the amount of sample code and documentation in the next few weeks so that it'll be easier to hit the ground running. The ACPC software is also very new, so we'll notify you of updates upstream as we hear about them.
We hope that you can get comfortable with the software fairly quickly, leaving you the rest of the summer until August 14 to focus on the logic of the bot itself. As always, if you have any questions or find any mistakes in our code or documentation, contact us using the contact form and we'll reply quickly. If you haven't already, sign up for email updates of these announcements using the form on the right-hand menu.
Good luck!
Contest Prizes Adjustment
It's not the kind of announcement we like to make, but due to circumstances beyond our control, we have had to lower the prize amounts for this contest. The new prizes are $200 for first place and $100 for second place. This website has been updated to reflect the new amounts, but emails and posters already sent out will have incorrect numbers. Sorry that this didn't get sorted out earlier. Regardless, we look forward to releasing the contest materials on May 22!
Introduction
What is the Indiana Poker Programming Contest?
This is a programming contest in which participants write their own Texas Hold'em poker AI. The AIs, or poker bots,
then compete with each other in a computerized poker tournament.
Who is running this?
We are a group of Indiana University students sponsored by Indiana University's School of Informatics and Computing.
Who is eligible?
All full-time high-school and undergraduate students studying in the state of Indiana are eligible to participate. You do not have to be a computer science major to participate. Graduate students and students studying in places other than Indiana are not eligible, sorry. (Student status is determined based on your Fall 2010 status.)
What is the time frame?
The pilot 2010 contest is scheduled to start on May 22, 2010. The deadline for submissions will be August 14, 2010. Rules, documentation, etc. will be released on May 22.
Will there be prizes?
Of course. Besides honor and glory, the first place winner in the tournament will win $200 and second place will win $100.
How does this tournament work, anyways?
The programming language for this contest is Java. We'll give you the API and rules to work with, and you have all summer to write a poker bot. You will submit your source code by the deadline, after which we will compile all of the bots and run the tournament on our own server. The results will then be posted and the winners contacted.
How do I sign up?
There is no formal sign-up required, but do subscribe for email updates so that you get the announcements as they come out. Simply submit by the contest deadline to be eligible.
Is it hard?
Fundamentally, the poker bot needs to make very simple decisions. In the limits hold'em variant we're using for this tournament, the poker bot only needs to decide between three moves—call, fold, and raise—so programming a working bot is very, very easy. You can make the AI as advanced or as simple as you want.
Are teams allowed?
Sure. Teams can only have eligible members (eligibility defined in the official rules), and they should, when submitting, list all of their members.
Are multiple submissions allowed?
No. Each person or team can only submit one poker bot, so pick your best one. We will, however, allow resubmissions up to the deadline, in case you find bugs in your code.

