(formerly known as RatBots)

A java programming project and competition.


What is BotWorld? 

What is BotWorld?  BotWorld is a computer programming challenge.  You will use your programming skills to write the code to control a Bot that will be placed in a computer-generated arena (the BotWorld).  This year the goal for your Bot is to acquire the most Prizes (details about this are shown in the guide.)  You will need to apply all of your Java programming skills to design (and redesign, and redesign…) a Bot that can achieve the goals within an arena as efficiently as possible. 

This is the 16th year of BotWorld competitions (although for the previous fifteen it was called RatBots, since it began as an escape from the maze competition.) While the competition was first created for use in high school programming classes we have found that alumni and other programmers have wanted to compete also so anyone may enter! There are no prizes (yet) other than the fame, pride and experience that comes from being a champion or just trying your best.


Download the complete RULES and INSTRUCTIONS

Download the BotWorld16 as a BlueJ project - as a NetBeans project - or just the source files and images.

(Most recent version is 16.01 released on 1/20/16 includes a few small bug fixes and upgrades.)

Download the RUNNABLE .jar FILE for BotWorld16 (useful as a demo, but won't let you add your own Bots.)

The GUI for BotWorld is based off of the AP Computer Science GridWorld platform. No prior experience with this platform is necessary to succeed. Also thanks to Patrick Angle and Chris Von Hoene who have contributed large components to this project in past years.



There will be three categories of competition again this year.  Every Bot will automatically be entered in every event (maybe one Bot could sweep them all!)  Each participant may enter up to three different BotBrains into the competitions.  If you choose to submit multiple entries, please make sure that they are substantially different from each other. 

  1. The Bot League – Each Bot will compete against each of the other Bots in a head to head competition of 100 rounds.  The Bot that wins the most rounds will win the match.  The Bot with the best overall win-loss record will win the tournament.  (If there are enough entries, the tourney will be multi-staged.) 
  1. The Singles Competition – Each Bot will be individually placed in the maze for 100 rounds.  The Bot that acquires the highest average score will win this competition.  A scoreboard will be updated regularly throughout the submission process for this competition.

  2. The Battle Royale – By random draw, the Bots in groups of up to eight will be placed in the maze for 100 round competitions.  The top three Bots in wins in each match will advance to the next matches.  Once the field has been narrowed to nine or fewer finalists, a 100 round live computer-cast final will decide the winner! (The exact structure of this competition will be decided once the number of entrants is known.)

How to enter:

To submit a Bot (actually a BotBrain), email your BotBrain's .java file to . In your email please include your name and school or specify OPEN division. Include "BotWorld" in the message title. No other competitors will have any access to your code.

All Bots must be submitted by midnight on April 15th.

You may replace a submission prior to the deadline, however it is preferred that you do not overuse this priveledge since receipt of submissions is not automated. An unofficial leaderboard will be posted for results in the Singles Competition.

Each person may submit up to three BotBrains, provided that they are substantially different.

Results of the competitions will be posted on this website.

Good Luck!


Please email any questions you have, bugs you find, or suggestions for improvement to


Using BotWorld as a class project:

For many years my classes have spent 3-4 weeks each year using RatBots (now BotWorld) as part of our curriculum in my A.P. Computer Science classroom. I use the project after students have spent a semester with 'the basics' and need another fun application. (We also do a couple of the A.P. labs too. I love the Picture and ChatBot labs.) It allow students to improve their understanding of working with methods and objects, use iteration and conditional logic, work with 2-D arrays and really apply what they're learning to an interesting challenge. If you want more details on how I structure my use of this in the classroom please email me.

Teacher Guide (not including solutions.)

Please email any questions you have, bugs you find, or suggestions for improvement to Mike Spock at: