Compsci 101, Fall 2012, Jotto Assignment

See the howto pages for details on creating projects, files, and so on. The pages here describe in broad strokes what this assignment is about. For details on how the game is played see playing the game.

play card
Jotto is a word game played with five-letter words similar to the colored-peg game Mastermind. The Jotto Wikipedia page has information about Jotto and variations on the game including changing the number of letters and providing different information than the number of letters-in-common. An example of a score/play sheet from the original game is shown on the left and a complete page can be found on the Wikipedia site. For this assignment you'll be writing a computer program to guess a human player's word. The computer program will be really hard to beat even when it's using a straightforward, brute force approach to guessing. It's possible to do more than this brute force approach, but we won't ask for that in this assignment. An example of this increased intelligence is described below with a link to an online version of the game.

Jotto has been given as an assignment irregularly in Duke courses since 1988, but has not been given in Compsci 101 since 2003 until the fall of 2010. A variation of the game called bagel was one of the original Nifty Assignments

What You Do

You write the module jotto_model.py so that a game can be played with either a command-line interface or the GUI interface. This means you implement required functions in the module, develop global state in the module to allow the game to be played, and test your code. Details are in the howto.

The explanation below describes the game of Jotto and shows this Python version in action. You must implement the program that plays the game, details in the howto.


Playing the Game

Details on Playing Jotto.

Submit and Grading

Submit your source code jotto_model.py and a README.txt file: information you should include in the README file is specified in the general assignment page.

You should also include in your README file any bugs or problems you notice in your program.

Your grade will be based on how well your program runs, on how robust it is, and on how well-designed the code is in your jotto_model.py module.

Submit using the submit name jotto.