CLI Magic: Typespeed the fun typing tutor


Author: Joe Barr

This week’s focal point on CLI Magic fits the topic like butter on a biscuit. Typespeed is a fun, educational game that you or your children can use to improve their typing skills. And what does the CLI require from that Old Mister Easy the GUI doesn’t? That’s right. Typing skills. Let’s build this thing and give it a spin.
UpdatedDownload the latest tarball (0.4.4 is the one I got) from the Typespeed homepage and decompress it. Then enter the typespeed-0.4.4 directory and type make. You may need to add the development version of ncurses to compile typespeed. I did, but that was the only thing I needed.

You can run typespeed from within its build directory simply by entering ./typespeed, or you can make it accessible from any directory by moving or copying the executable to one of your pathed directories. I put it in /usr/local/bin. Since there is no install option with the Makefile, it’s a manual process.

This may be a good time to point out that docs of any kind are rather sparse with typespeed. Glean what you can from the README, because that’s about all there is.

Correction: As a reader pointed out, there is both an install option in the Makefile and a man page which gets installed when it’s run. My bad.

The README states that typespeed is a clone of an earlier game, written for DOS, called Ztspeed. If you are familar with that game, you’re in luck. If not, struggle along with me and we’ll puzzle it out.

After starting the game, a menu screen appears which offers you the following choices:

1. Test Your Speed
2. Network Head2Head
3. Story/Credits/RTFM!
4. Show Highscores
5. Options
6. Quit

I threw caution to the wind and chose option 1. I was then informed that no wordfile had been found, and when I tried to proceed from there a segfault occurred.

I returned to the directory where I built typespeed, and tried it from there. It worked. Then I noticed the supporting files in that same directory, apparently the very ones typespeed complained about not finding when I ran the program from my home directory.

After copying the word files to my home directory, it worked. No more Mister Segfault. I got to pick from the following after selecting option 1:

Unix commands
Spanish words
Programming functions
Portuguese words
Finnish words
English words
Nederlandse zut
Dos commands

I used the up and down arrows to highlight my choice — English words — and then pressed Enter. The game began with a blank screen. Then the first word began to crawl across the screen, left to right. I typed it, pressed enter, and it disappeared. Another word appeared, then another, and then another. Finally, I couldn’t keep up and hit the ESC key. That stopped the action on the screen, but the game wanted to get in one more final shot, so it shared the following with me:

Your score was:

Rank: NoGood Score: 207 10MRS: 1677 Total CPS: 3.109 Correct CPS: 2.795 Typo ratio: 10.1% Typorank: Monkey

Press any key to continue...

I might have ranked NoGood, but my score was good enough to be included in the Top Ten list, which displayed immediately after I pressed the infamous Any Key.

If you have poor color vision — like I do — you might want to start typespeed with the --nocolor option. It makes it a little easier to read the words as they go floating by.

Typespeed also has a Network mode that allows you to play in client server mode. Set up a typespeed server — from the easy to follow menu — and then you and your friends can compete against each other on that Top Ten list. Provided, of course, each of you has a copy of of typespeed to use for the client.

A Word of Caution: I said at the beginning of the column that this might be a good game for your children. You might want to load the word list or lists that you’ll be using into a text editor and scanning them for possibly offensive words before letting your children play the game.

Typespeed is a quick, fun way to improve typing skills. What it lacks up for in terms of documentation and help, it makes up for in sheer fun. Give it a try!