Hangman is a traditional children's game, typically played with words. It's possible, however, to play Category Hangman --- rather than guessing words the player might guess names of cities, or athletes, or fictional characters, names of lego minifigures or top forty song titles --- the list is endless. According to this article the hardest words to guess in hangman are jazz, buzz, and jazzed if you lose with 8 misses though with 11 misses allowed jazzed is apparently harder to guess than buzz.
There are three parts to this programming assignment:
Hangman.py
that allows someone to repeatedly play a game of
hangman using Eclipse's Console until they decide to stop.
StockTrader.py
that allows someone to repeatedly trade a portfolio of stocks using Eclipse's Console until they decide to stop.
UtilityFunctions.py
that contains general functions for processing data files and user input. This module should be imported into the two modules above to simplify their writing by letting them focus just on the specific code that differentiates them (i.e., the rules of hangman or the rules of stock trading). You must create this module, create at least one general purpose function, and import it into your other modules; however, the more functions you can put in this module because they are generalized enough to be used in both modules can push your grade into the range of A-credit. See the HOWTO page for more details on how the interaction for each part should look. Note, for this project we will not provide you with any starter code to snarf, only data files.
Submit your source code: Hangman.py
, StockTrader.py
, and UtilityFunctions.py
; as well as a README file and an ANALYSIS file using the submit name hangman.
In your ANALYSIS file, discuss the steps you took to generalize three functions from your FileUtilities
module so they could be used by both other modules (i.e., how they are different than if you had just written them for one or the other specifically). You should also include the output from running each program so we can see what data you prompt for and in what order. Additionally, document
any bugs or problems in your program that you were not able to resolve (i.e., there may be certain kinds of input that you know are not handled properly). If you document bugs that you cannot fix, and how you tried to fix them, they will affect your grade far less than bugs we
discover in running your program.
Your grade will be based on how well your programs function especially with regards to their robustness (how well they respond when the user messes up their input) and whether you have included appropriate README and ANALYSIS files.