Rules for 2016 Competition

These rules were last updated on 2016 September 13. They may be changed at any time prior to the competition.

Objective

The primary objective of this competition is to move your bot so that it enters the goal area in the maze. A bot starts out knowing where the goal is, but nothing about where the walls are. It must explore the maze to determine this and successfully make its way to the goal.

Each bot is considered to have a battery with a certain amount of energy, and every action the bot can take consumes some energy. The secondary objective is to minimize the amount of energy your bot consumes, and those that finish the maze with the most energy left in their batteries win.

To achieve these objectives will require a fair bit of Artificial Intelligence (AI). You may need to program such things as position tracking, exploring and remembering the maze layout, distance estimation, path planning, and many kinds of decision making. There is no single perfect solution, and you must deal with incomplete information.

Entry Requirements

AMazeBot is open to all students currently registered at Mohawk College. All entries must be submitted by either a single student or a team of two students. Larger teams are not permitted.

Mazes for Competition

There are fixed number of rounds rounds in the competition, each with a different maze. All but the last round will each feature one type of procedurally generated maze, and the last will feature a custom hand-drawn maze. Until the competition event starts it will not be known to students which specific mazes will be used! Your bot has to be ready to handle anything.

Programming Tools

All programs submitted must be written purely in Java (no native methods permitted), using the AMazeBot API that is supplied. The AMazeBot Development Kit includes all the files necessary to develop, debug, and test bots. It is easy to get started, as an example program is supplied that illustrates the basics of using the AMazeBot API. This kit is intended for use with NetBeans. Other IDEs or even command line compilers could be used instead, but no support is provided for this.

Students should be able to use the AMazeBot Development Kit to develop bots on many platforms. However the devkit has only been fully tested on Windows, and there may be issues on other platforms. All submitted programs will be compiled using the standard Java compiler and evaluated on Windows.

You can download the Development Kit here, and documentation for the Amazebot API is also available.

Exploring the Maze

In AMazeBot a maze is a grid of cells which can be either a floor or a wall. A bot can travel along the floor but cannot enter a wall cell. To find out if a cell is clear or blocked your program must investigate the maze using only the functions described in the Amazebot API. Any other methods of querying the maze, such as attempting to read pixels on the screen, reading maze files, hacking memory, etc. are prohibited and grounds for disqualification. Although such methods might work to solve the specific problem at hand, the algorithm would be of no use in controlling a real robot in the field. In the programming business we call this the wrong type of clever.

Submissions

Step 1: Obtaining A Submission ID

To enter a bot you must first obtain a Submission ID by emailing . The ID is for the bot, so a team of 2 students needs only 1 ID. Entries will not be accepted without an ID. Also, obtaining an ID implies no obligation; it is acceptable to request an ID and then later decide not to enter for whatever reason.

It is possible to obtain an ID at any time before the submission deadline, but we ask that you do this as early as possible to assist us with planning. Don't leave it until the last day, as we may be delayed in responding to emails!

NOTEPlease include the following items in your request for a submission ID:

  • Student name(s) and number(s)
  • College name, program name, and year of study

Step 2: Submitting Your Entry - SUBMISSION DEADLINE is SAT NOVEMBER 19,2016 11:59 pm (MIDNIGHT)

A submission deadline will be announced once the event date has been finalized. This will be a very strict deadline and no late submissions will be accepted. After submission all bots will be checked and you may be requested to change your bot's name or icon; it is a good idea to have some alternatives in mind.

We are asking that all competitors submit one maze of their own design along with their bot. These mazes will not be used in the competition itself, but sometime afterward we will have a special feature on the website where each week we reveal another submitted maze, run all bots through it and post the results. This does a few things:

  • Gives students a chance to have some fun creating fiendishly difficult mazes to trap their peers.
  • Provides a transparent way of determining to what degree luck is a factor in the fixed round competition.
  • Builds up a library of sample mazes that can be made available for future competitors to test with.

Since these mazes are not part of the competition proper, it's doesn't matter if students add special code to their bots to do well on their own maze. The only requirements for the mazes are:

  • The maze must be solvable by your own bot!

A submission is made via email to and must include the following items:

  • Submission ID
  • Student name(s) and number(s)
  • College name, program name, year of study
  • A single ZIP file containing your bot's package folder (which includes all source code and the icon.png file) and your maze file.
    • The folder name must be the same as your submission ID.
    • The maze name is not as important, but for consistency making it the same as your submission ID (plus the ".maze" extension of course) is recommended.