- About
- User Experience
- Design
- Features
- Technologies Used
- Deployment & Local Development
- Testing
- Credits
Timed Type Test is a typing game, aimed at people that want to improve their typing skills. The game shows the user a sentence, the user then has to input the sentence as accuratley as they can and as quick as possible. The game has different difficulties and will show the users speed and accuracy scores. Timed Type Test also allows users to add their own sentences, to increase replayability.
- I want to be able to add my own questions in the program.
- I want to be shown how close I was to getting the answer right.
- I want to be able to know my score.
A flowchart was created in this project to plan out the possible functions that would be needed. The functions highlighted in blue are the ones utilised in the final project. As shown, some functionaility in the project was not included due to time constraints, for example adding to a highscore sheet. As the highscore system did not impact the primary gameplay loop, it was not a priority.
The project uses a menu system that allows users to select between playing the game, adding a question to the avaible questions or exiting the code.
The user can add a question to the Google Sheet, allowing them to then play that question later in the game. The user will be asked for the difficulty of the question and then asked to input their question. This will then be added to the next row of the difficulty column in the Google Sheet.
When the user plays the game, they are asked which game difficulty they would like to play. This decides which column of questions is taken from the Google Sheets. The game will then start 3 rounds of the game, if there is not enough questions in the selected diffculty, the user will be prompted to add more questions to play.
If there is enough questions, then a sentence will be diplayed to the user, the user will have to input the provided sentence as accuratley and as quick as possible. The score out of 100 is shown for both accuracy and speed on all questions, as well as the time taken and the time left.
- Python
- Git:
- Git commands were used for version control.
- GitHub:
- Project was hosted on GitHub and GitHub Pages hosted the live site.
- Gitpod:
- The project was developed using Gitpod development environment.
- Heroku
- The project was deployed using Heroku.
- Lucidchart
- The flowchart was created using Lucidchart.
- Python difflib
- The Python difflib module was used to calculate similarity between the sentence and user input.
- Python time
- The Python time module was used to calculate the time taken for the user's input.
- gspread API
- The Python gspread API was used to access Google Sheets
- Python Credentials
- Credentials was used to generate a credentials file for Google OAuth
View the project testing document here.
The following code was taken from the difflib Python documentation:
similarity = SequenceMatcher(lambda x: x == " ", question, answer)
