Draft README, unfinished.
Practical Python - Project 3:
To develop an app similar to the Countdown tv show. In particular, the "word-game" aspect of the show. The app will have the following overall functionality:
- Players can choose up to nine random letters from which to play;
- or they may have nine randomly generated letters chosen by the app.
- If player wishes to choose letters, they will choose a vowel or consonant for each of the nine letters.
- Players enter the largest word (using most amount of nine letters) which they can arrange from the nine letters.
- The app then displays the largest word it can find from the nine letters to user.
Extra functionality to be considered:
- App will give a score to the user based on letters used e.g:
- Each vowel would be worth 20 points and,
- Each consonant would be worth 10 points.
- For example, the user has a word with 3 vowels and 4 consonants:
- Their score would be calculated as follows:
- (3 x 20) + (4 x 10) = 60 + 40 = 100 points
- The users name would be taken and their total score would be kept on a scoreboard for other users to see.
- App should check that username does not already exist and warn user if so.
- The users generated letters and the word they came up with would be displayed along side their score.
The app will:
- Use the Flask Python framework.
- Single page app, must use Flask for routing.
- Use Bootstrap CSS.
- Implement basic unit-tests for each piece of functionality.
- App must use dictionary file to find and compare words.
- As a new user I'd like to see a button/link that would envoke a display modal with the game instructions
- As a new user when I go to the app I will see a layout allowing me to use the app and its functionality:
- As a user I'd like to see an area for Generated/inputed letters,
- As a user I'd like to see an area for Buttons to select: - Vowel or consonant, - Random letters, - Find words/answers, - Clear
- As a user I'd like to see an area for Visual representation of a keyboard
- As a user I'd like to see an area for Returned "best word" which has been found
- As a user I'd like to see an area for List of all words which could be used from Generated/inputed letters.
- As a new user I'd like to see the Generated word be compared against the words contained in the dictionary file.
- As a new user I'd like to see the word that uses most of the letters, and is contained in the dictionary file - displayed to me on screen.
- As a new user I'd like to see all the words which could have been used with the given letters.
- As a new user I'd like to see my username recorded for my game.
- As a new user I'd like to see my score calculated based on use of vowels and consonants in my play.
- As a new user I'd like to see my score recorded.
- As a new user I'd like to see my word and the generated word displayed alongside my game score and username.
- Goto the directory
$ cd WordResolver
- Initialize and activate a virtualenv:
$ virtualenv --no-site-packages env $ source env/bin/activate
- Install the dependencies:
$ pip install -r requirements.txt
- Run the development server:
$ python app.py
Navigate to http://localhost:5000
Run the Test cases:
$ python word_resolver.test.py $ python user_manager.test.py