/cse210-student-speed

A starting template for the speed program.

Primary LanguagePython

Speed

Think you can type faster than your peers? Start a Speed tournament and you'll know! The rules are simple. Type the words you see as they move across the screen. Press enter to clear the buffer at any time. Type a word correctly and your score goes up.

Getting Started


Make sure you have Python 3.8.0 or newer and asciimatics 1.12.0 or new installed and running on your machine. You can install Asciimatics by opening a terminal and running the following command.

python3 -m pip install asciimatics

After you've installed the required libraries, open a terminal and browse to the project's root folder. Start the program by running the following command.

python3 speed 

You can also run the program from an IDE like Visual Studio Code. Start your IDE and open the project folder. Select the main module inside the hunter folder and click the "run" icon.

Project Structure


The project files and folders are organized as follows:

root                    (project root folder)
+-- speed               (source code for game)
  +-- game              (specific game classes)
  +-- __init__.py       (python package file)
  +-- __main__.py       (entry point for program)
+-- README.md           (general info)

Class Structure

Class Description Stereotypes Public Methods Dependencies
Director Controls play sequences. Controller start_game All Local Classes
Point Holds information for the position of the word. Information Holder x (property)
y (property)
add_point
equals
x_velocity (property)
y_velocity (property)
Word Holds information for a given word on screen. Information Holder (All Point Methods)
compare_word
length
Point (Inherited)
CurWords Contains information for all words on screen. Information Holder check_word_match
add_word
remove_word
WordListService (Inherited?)
Word
InputService Detects player input and translates keypresses. Service Provider get_letter
get_key
OutputService Sends outputs to the console. Service Provider clear_screen
place_word
del_word
flush_buffer
FileService Handles file inputs and outputs. Service Provider read_line
read_file
write_file
content (property)
WordListService Fetches words from given wordlists to put on the screen. Service Provider new_word (property) FileService (Inherited)
SettingsService
(For Stretch Requirements)
Gets persistent user data and settings. Service Provider get_hi_score
get_game_mode
FileService (Inherited)

Required Technologies


  • Python 3.8.0
  • Asciimatics 1.12.0

Authors