Programming assignment 3
In this assignment, you will complete the implementation an AI for the game of Clue. The implementation uses propositional logic and theorem proving. The main resources you will need are:
- Background information and explanation of code framework:
This document, available here as clue.pdf, is written by Todd Neller, Zdravko
Markov, and Ingrid Russell. You will need to read and
understand the whole document, but for our purposes, the only
graded portions of the assignment are the implementation
exercises in Section 8.
- Code framework: The code
framework is also written by Todd Neller, Zdravko Markov,
and Ingrid Russell.
- The theorem prover zChaff: zChaff is a theorem prover
developed by the Boolean Satisfiability Research Group at
Princeton University. For further details, check out the zChaff
website. For this assignment, however, all you need is the
zChaff program itself. Download either the Mac version of
zChaff, or the Windows version of
zChaff as appropriate. Extract the contents of the
downloaded zip file, and copy
the file "zChaff" into the directory containing your Java .class files
for this assignment. (By default, Eclipse puts these files in a
directory called bin, so that is where you should put
the zChaff
executable.) Note: The Windows version of zChaff is provided
for
convenience, but I can't devote resources to supporting it. If
in doubt, please use the Macs in the lab.
Some other important points include:
- You may find that you are unable to run your program from within Eclipse, due to the need for running the separate executable zChaff from within the Java program. However, running from the command line should work fine.
- Practice! It will be much easier
to implement your Clue player if you have experience at playing
the game. Please take advantage of the Clue set in the majors'
room. A game requires a minimum of three and a maximum of six
players.
To turn in this assignment, submit the single file
ClueReasoner.java to Moodle. Grading will be based on the
standard criteria for grading code in this course, as listed on the
main assignments page.