Giter Club home page Giter Club logo

touchtyping's Introduction

touchtyping

A basic touch typing trainer (for python3). Created for those moments in which ratatype is down or you are offline.

image

I realized later that this was loosely inspired after ratatype (any similarity is purely coincidental, but the default values for minimum wpm and maximum typos offer great learning potential).

basic usage

  • python3 touchtyping.py: loads the welcome exercise.
  • python3 touchtyping.py -u name: loads the last exercise ``name``` was working on (saves sessions automatically when you advance)
  • python3 touchtyping.py -e 1: jumps to exercise number 1

key mapping

Nothing special here. The only things to keep in mind are:

  • ESC: restarts the current exercise (clearing typos and wpm)
  • ESC twice (in less than 1 second): quits the application

tracking your performance a.k.a. --user or -u

If you start the program with python3 touchtyping.py -u name you start as user name. This will:

  • automatically save your progress when you advance lessons
  • save your last exercise
  • display your score upon request: touchtyping.py -u name --score

image

more advanced usage

  • python3 touchtyping.py --filename othername.txt": loads "othername.txt" as the save file for usernames and their exercises
  • python3 touchtyping.py --typos 5: changes the maximum allowed typos to 5 for advancing to next lesson (default is 3)
  • python3 touchtyping.py --wpm 10: changes the minimum allowed wpm to 10 for advancing to next lesson (default is 20)

exercises and saving sessions

exercise files

  1. To create new exercises: simple save them as a numbered .txt file (e.g., 1.txt). Exercise files should only contain the string of characters that you wish to display.
  2. Example of a 1.txt file contents: this is a file for the touchtyping trainner
  3. Put exercise files in the exercises folder (default) or in your own-folder, to read files from a custom folder use python3 touchtyping.py --exercise-folder own-folder instead.

saving sessions for enabling continuous study

  1. There is a directory named saved_state which saves the progress of ver user.
  2. Each user is a file, e.g., the progress of a user called pedro is in saved_state/pedro.txt
  3. To change this directory you can invoke it as such: python3 touchtyping.py --save-dir new_dir"

To do and idea collection

  • alias as command
  • pip install
  • Give hints, use a special symbol on exercise file to mark what is a hint. Then when hint modes are enabled or after the first failure, the user is presented with hint text.
  • colorful mode
  • refresh shell mode (after every exercise or attempt)
  • scores from all users?
  • allow mode to redo exercises

touchtyping's People

Contributors

pedrolopes avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

rahife

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.