CSCI 446
Artificial Intelligence
Fall 2016

Montana Tech
Computer Science & Software Engineering



Intelligent Dueling Creatures

You will be designing an intelligent agent to compete in the Dueling Creatures arena.


Overview. We will be using the Darwin 2.2 game simulator from Williams College. You should start by downloading the zip file. Inside the zip is the player's handbook. You should read the player's handbook and also try out the simulator on some of the provided sample maps and creatures. The online JavaDoc will also be an important resource. Between the player's handbook and the JavaDoc, you should be able to find out whatever you need to know in order to develop your Creature.

If you would like to edit your creature file in Eclipse, you'll want to setup an Eclipse project as normal. But you will need to add the darwin.jar file to your project properties. Right-click on your project name, select project properties, Java Build Path, Libraries tab, Add External JARs, and then navigate to the darwin.jar file.

Details. You can name your creature whatever you like, but add a suffix of your initials (e.g. KillerKV.java). This class will extend the Creature class and you will implement your creature's AI in the run() method. This method should be an infinite loop and will continue to execute as long as that instance of the creature is still alive. The run method will call various methods inherited from the Creature superclass (e.g. moveForward(), turnLeft()). See the JavaDocs for all the things you can make your Creature do.

It is up to you exactly what strategy your Creature will implement, however, your approach must incorporate some type of machine learning. In order to get full credit, you will need to document your agent, either in comments in the code or in a separate document. Included in this write-up should be a description of how your agent was trained prior to the competition, and any lessons learned. Some features you might consider:

Whatever your overall plan, you should start simple and implement various helper methods. For example, a method to walk to a certain location, a method to observe in all directions, etc. Once you have developed and tested such helper methods, you can combine them to help realize your overall strategy. You should not submit one gigantic run() method!


The tournament. The tournament will be conducted during class on Friday Dec. 2nd. Your grade will NOT depend on your creature's performance during the tournament. Rather your submission will be graded on how well your creature demonstrates your command of course material, and in particular, machine learning. Your code should use appropriate data structures and algorithms to achieve its aims. It should be easy to read and understand. Any tricky parts should be well commented It should be easy to maintain or extend.

You must submit your creature by the due date and time (Thursday 12/1, 11:59PM) to be eligible for the tournament. In other words, if you are late on this final assignment, you won't be able to compete.

Tournament specifics: All the icons for the creatures that come in the Darwin jar are also in images.zip.
Submission. Submit a single zip file containing: Be sure your submitted source file has the required header with your name, username, and a description of the program.
This assignment is based on one by Morgan McGuire at Williams College.


Page last updated: November 01, 2016