Skip to content
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
Cannot retrieve contributors at this time
"Tux, of Math Command" - an educational math tutorial game starring Tux,
the Linux Penguin
Nov 25, 2011
For Tuxmath-2.0.4
Objective ---------
In "Tux, of Math Command," you play the part of Commander Tux, as he
defends his friends from an attack of math equations. Comets are
crashing towards the friendly penguins in their igloos, and you must
destroy the comets by solving their equations.
As of version 1.7.0, TuxMath also includes a completely new game
activity, "Factoroids", which gives practice in factoring numbers and
simplifying fractions, as well as zapping rocks floating through
For instructions on installing the game on your system, please read
the "INSTALL" file.
If multiple players are using a single account (e.g., a home computer
that is always logged in, or a school setting in which all students
have a single username), you may want to do some additional
configuration---see below under "Configuring Multiple Users."
Running The Program
Your distribution probably already has a
menu entry for Tuxmath under the KDE or GNOME menus. If not,
depending on your graphical interface or window manager, you can
probably also create a clickable icon which will launch the game. See
your interface's documentation or help screens for details.
Alternatively, simply type the command "tuxmath" at a command prompt
(eg, in an xterm). Many command-line options are supported, e.g
"tuxmath -f" for fullscreen or "tuxmath -w" to run in a window.
Just double-click the "TuxMath.exe" icon or select "Tuxmath" in the
Start Menu. The current installer creates menu items to run tuxmath
either in Fullscreen mode or within a 640 x 480 window.
Double-click the "tuxmath" icon.
Program Navigation
Use the [UP] and [DOWN] arrow keys to select what you wish to do, and
then press [ENTER / RETURN / SPACEBAR]. You can also type 'J' to move
down or 'K' to move up, for those accustomed to certain text editors
;). You can also use the mouse to click the menu item.
Pressing [ESCAPE] will "go back" one level in the menus, or quit the program if
pressed at the top level.
Title Screen
Play Alone: single player activities:
Math Command Training Academy: choose this to go to a list of over
fifty prepared lessons, starting with simple typing of single digit
numbers, and progressing to multiplication and division involving
negatives and "missing number" questions (e.g. "-17 x ? = 119"). The
player wins if the question list is completed successfully.
Successfully completed lessons are indicated with a flashing gold
star. From a math drill standpoint, the best way for teachers or
parents to use TuxMath is to have kids work their way through all the
lessons until all of the gold stars are obtained.
Math Command Fleet Missions: choose this to be given a series of
progressively more advanced missions tied together by a fun story
line. The fate of the galaxy is in your hands!
Play Arcade Game: use this to select from one of five open-ended,
"Arcade Style" games, meaning the game play gets faster and faster as
long as the player can keep up, with the goal being to get the highest
score possible. The options include:
Space Cadet - simple addition.
Scout - addition and subtraction to ten.
Ranger - addition, subtraction, multiplication, and
division to ten.
Ace - all four operations with operands to 20, including
negative numbers and "missing number" type questions.
Commando - all of above plus multiple operands - e.g. -3 x ? + 14 = 2
If you make one of the top ten scores for the difficulty level, you
get to enter your name in the TuxMath Hall of Fame!
Play Custom Game: use this to play a game based on the config file in
the player's home directory (see below). At some point, the options
will be settable from within the game.
Network Game:
Tuxmath now provides head-to-head competition over a local area network! All
players see the same questions, and whoever answers first gets the points for
that question. The game play is cooperative, however, in that all participating
players help defend all the igloos. Up to 16 players can participate in a
single game (this can be increased extremely simply with a recompilation, if
To set up network play, the tuxmath server program needs to be started. Simply
go to Network Game->Run Server and follow the directions. You just need to type
in a name to identify the server to players (such as "Tux Server"). If we are
able to use threads on your platform, you will also be prompted to pick the
lesson file to be used by the server.
Once the server is running, players can connect by going to Network Game->Join
Game. TuxMath should automatically detect the server if it is running on the
local network. The player will be asked to enter a nickname, then click an
arrow to indicate that he/she is ready to start. A list of currently connected
players is displayed during this process. When all players have indicated that
they are ready, the game will start.
Note that while network play is functional, it needs more testing, and some
aspects have not yet been addressed:
- While a network game is in progress, do not play a non-network game
on the same computer - this will also confuse TuxMath (because
TuxMath is not yet "thread-safe"). However, it is fine to participate
in the network game from that computer. Also, don't quit the program
with the server while others are still playing a network game!
- It is also possible to run the server as a separate program on Linux
platforms by typing "tuxmathserver" at the command line. This
avoids any issues with thread-safety, but for now the server will only
use the default question list settings if launched this way.
Play With Friends:
Compete with your friends by playing in a turns-based fashion! The math
difficulty levels are the same as for the "Arcade" games. Note that this
involves rotating play at a single computer rather than network play, as
described above.
As of version 2.0.0, the Factoroids game has been extensively revised to make
it much more fun (and less cumbersome) to play, and hopefully more educational
as well. Now, Tux's ship is equipped with a set of six "Prime Number Guns",
for the numbers 2, 3, 5, 7, 11, and 13.
In the first wave, Tux only has the 2 Gun, and all of the asteroids are powers
of 2. For the second wave, the 3 Gun is added, so the targets are powers of 2,
powers of 3, or their multiples. Another Prime Gun is added with each wave.
Factoroids now supports mouse control of Tux's ship:
- lateral mouse movement rotates ship.
- left mouse button: fire
- right mouse button: thrust
- scroll up/down: change Prime Number Gun
As before, the ship can also be steered with the arrow keys. The weapon can be
cycled in either direction with the [D] and [F] keys, and fired with [Space].
Factoroids now has three different powerups:
- Shields: allows ship to smash through rocks like a battering ram for ten
- Stealth: allows ship to pass through rocks unharmed
- Smart Bomb: simultaneously zaps all rocks with the currently selected
Prime Number Gun.
One powerup is awarded at the successful completion of each wave. It can be
activated by pressing [Shift]. You can have only one powerup at a time -
unused powerups are lost.
Help: this offers a short tutorial to teach game play for the main comet game.
More Options:
This will be developed into the menus to set options not directly
related to math questions, such as toggling the music on and off,
playing fullscreen vs. windowed, using cities vs. igloos, and the
like. Now it just has the "Demo" mode, as well as credits and project
How To Play
One of the best ways to get started is by choosing the "Help" option
in the main menu. This offers a tutorial for basic play. There are
some additional features described below.
Destroying Comets
As the comets fall towards your friends, you must solve the equations.
To destroy it:
First, figure out the answer to the equation. For example, "3 x 4 =
?" would be "12"
Second, type in the answer. As you type numbers on the keyboard, they
will appear in the "LED"-style display on Tux's flat-panel monitor.
If negative answers are enabled, there will be a fourth place in the
LED display for the minus sign. The '-' and '+' keys will toggle the
minus sign on and off, respectively.
Finally, press [ENTER / RETURN] or [SPACE].
The comet that has the number you entered as its answer will be shot
down by Tux!
Note: Sometimes more than one comet will have the same answer. In
this case, all the comets having the answer will get destroyed.
Note: After typing [ENTER / RETURN], the "LED"-style display will
automatically reset to "000" for you, so you can answer the next
Correcting Your Answer
If you made a mistake as you typed in your answer, you can press
[BACKSPACE / DELETE] and the "LED"-style display at the top center of
the screen will reset to "000".
Using the On-Screen Keypad
If you launched the program with the "--keypad" (or "-k") option, the
game screen will also have a numeric keypad on the center of the
screen. (It has a similar layout to most keyboard number pads and
Using the mouse pointer to click on the on-screen buttons acts just
like typing numbers on the keyboard.
This feature could be useful for computers with touchscreens, or for
players who cannot use a keyboard.
Advancing Waves
When all the comets are destroyed for one wave, the player advances to
the next. The level of difficulty generally increases with each
level. On Training Academy lessons, the program "learns" from the
player to try to adjust the difficulty, and may decrease if the player
has lost one or more igloos (see below).
Losing An Igloo or City
The default setting is to play with igloo-dwelling penguins. If a
comet reaches the igloo, the igloo is partially melted. A second hit
melts the igloo the rest of the way, and the saddened penguin trudges
off the screen.
If cities are used (by placing "use_igloos = 0" in the config file and
selecting "Play Custom Game"), game play is the same. The first comet
strike deactivates the city's shields, and the second hit destroys the
city. If this seems too scary or violent, please use the penguin/igloo
Regaining Igloos/Cities
When a question is answered correctly, the player earns progress
toward a bonus comet that allows an igloo or city to be rebuilt.
Progress is indicated with a green bar in the upper left corner of the
screen. The bonus comet is red and moves faster than regular comets.
If the player shoots down the bonus comet, a "snowstorm" image appears
in place of the bonus progress bar, and one of the igloos/cities will
be rebuilt after the current wave.
Earning "Smart Bomb" Powerup
In the "Arcade" games, there will occasionally be special yellow comets
that fly rapidly across the screen in a horizontal direction. You have
to be quick to shoot them (and they are admittedly a little hard to
read), but they earn you a powerful weapon that can zap all the comets
on the screen. The "smart bombs" can only be used once (until another
one is earned), so use them wisely.
Ending The Game
The default mode is now to play through a defined list of questions.
This mode is used in the "Training Academy" games. For "Custom"
games, it can be selected by setting the config file
'play_through_list' parameter to 1 ('yes' or 'true'), or via the
"--playthroughlist" command line argument. The list is generated by
TuxMath based on a series of selectable parameters (selected math
operations, number ranges, etc). By default, the questions are asked
in a random order. If answered correctly, they are removed. A
question that is not answered correctly (allowing the comet to destroy
its target) will reappear in random order. If all questions are
successfully answered before the igloos or cities have been destroyed,
the player wins and a "victory" screen is displayed.
Arcade-style play is also supported, in which the game continues until
you lose all of your igloos or cities. A GAME OVER screen is then
displayed. If you use one of the standard Arcade games, you'll have
the opportunity to put your name in a high-score table. For the
"Custom" games, you can select this mode by setting
'play_through_list' to '0' ('no', 'false', 'off').
By pressing Esc or clicking on the red circle in the upper right
corner, you can quit the game.
Shortcut Keys
The following shortcuts are supported during game play:
[F10]: switches between windowed and full-screen display mode.
[P] or [Tab]: pauses the game, if allowed. The included "Math Command
Training Academy" lessons allow pausing, while the "Arcade"
games do not.
[Up Arrow]: increase speed by 20%, if allowed.
[Down Arrow] decrease speed by 20%, if allowed. Speed changes
are allowed when pausing is enabled.
[Esc]: leave current game and display the menu.
[Shift]: (Arcade game only) - activate "Smart Bomb" to zap
everything on the screen. This can only be used once,
until you earn another one by zapping another yellow
"powerup" comet.
Setting Game Options
The "Options" system remains in need of an overhaul. For now, you can
play the pre-packaged "Lesson" or "Arcade" games, or edit the options
file to create a "Custom" game. At some point the "Custom" settings
will be modifiable from within TuxMath.
1. The program reads and writes the settings to disk in a
human-readable fashion, where they can be modified with a text editor.
The file contains extensive comments describing all settings. By
editing and saving this file, very extensive control over the program
is supported, particularly with respect to generation of math
questions. There really is no need to use command-line options any
On Unix/Linux (non-Mac): the file is created in the user's home
directory within a directory called ".tuxmath" and is simply called
"options". As an example, a user "laura" on a Unix/Linux system would
find this at /home/laura/.tuxmath/options.
On Macs: the file can be found under tuxmath/Contents/Resources.
On a Windows XP or Windows 2000 system, the config file is called
"options.txt" and is located at C:\Documents And
Settings\USER\Application Data\TuxMath\options.txt, where USER is the
login of the current user. Note that 'Application Data' is hidden by
default by the operating system.
2. Many command-line options are supported (see below).
Setting Administrative Options
"Tux, of Math Command" allows parents/teachers to control whether the
game options can be changed by the player.
The game options are first read from a master config file in the
program's data directory (/usr/local/share/tuxmath/missions/options on
*nix if installed using "make install"), then overridden by the user's
own /.tuxmath/options file if "per_user_config" is selected in the
master options file. If "per_user_config" is deselected, the game
starts up with the master settings. (This is somewhat under
Game Summary Files: Tracking Players' Performance
"Tux, of Math Command" saves summaries of the last ten games in the
player's .tuxmath directory. The files are named "summary1" through
"summary10", with "summary1" the most recent. The files includes lists
of questions asked and questions missed, along with the numbers of
correct and incorrect answers and the percent correct and information
about how long a given question was typically displayed on the screen
before it was answered.
In addition to these summary files, there is also a log.csv file that
contains a one-line summary of each attempted mission (the user must
have answered at least one question to count as an attempt). This
file can be imported into a spreadsheet program ( calc,
Microsoft Excel, KSpread, Gnumeric, Google Docs, etc.) to examine or
chart child progress.
Using Multi-User Configuration: Some Tips for Teachers
Your school's computer administrator can configure TuxMath so that
students "log in" when they first start playing (see below). Students
will then have their own personalized gold star records, and summary
and log files (described immediately above) will be saved for each
student individually.
If you want to test TuxMath yourself without "contaminating" the
records in a student account, hold down the control key ("Ctrl") when
you click on the menu entry corresponding to you and your classroom.
Then you will be playing "as yourself."
Configuring Multiple Users
In some cases, the user's log-in name is not very informative: an
example is when schools use a single username "student" for all
students in the school. It is possible to set up TuxMath so that it
asks students to "log in" (without any password) when they first start
the game. This will insure that all gold stars, options, and game
summary files will be stored in a location specific to each user.
Setting this up is fairly simple. There are two ways to do it:
manually and using a separate program "tuxmathadmin". The first two
steps are the same either way:
1. Decide where you want this information stored. You might want to
put it on a central server. In the appropriate place (let's say it's
"/servervolume/"), create a directory which for current purposes we'll
call "tuxmath_users".
2. Set it up so that tuxmath automatically finds the user directory
tree. Find the global configuration file (e.g., under Linux it would
usually be /usr/local/share/tuxmath/missions/options; on Mac OSX it is
a file called "options" in the .dmg bundle). Set the "homedir"
property (at the very end of the file) to point to your home directory
tree. Make sure you uncomment (remove the "#" symbol) from that line.
Be aware that you can also employ the command line option "--homedir
/severvolume/tuxmath_users" (along with any other options) upon
launching tuxmath. An individual classroom could make use of this
school-wide service by specifying (in the option-file syntax) homedir
= /servervolume/tuxmath_users/2nd\ grade/Mrs.\ Johnson so that
students in a particular classroom only have to choose among their own
class and not go through the full login "tree".
If you are using tuxmathadmin, here are the remaining steps:
3. Using a spreadsheet program, create a spreadsheet that reflects the
way you want to organize the login system. The following example
should illustrate the syntax (try viewing this with a fixed-width font
if the spacing is unclear):
Col 1 Col 2 Col 3
1st Grade
Mr. Jones
Mrs. Smith
2nd Grade
Mrs. Wilson
Kid a
Kid b
Kid c
Kid d
This indicates that three kids (named "KidA", "KidB", and
"KidC") are in Mr. Jones' 1st grade class; two kids ("Kid1"
and "Kid2") are in Mrs. Smith's 1st grade class, and there are
4 in Mrs. Wilson's 2nd grade class. The school presumably has
more kids and more classrooms than this, but this is a short
example intended to illustrate the organization of the file.
Note that it's flexible: you don't have to divide things by
grade, teacher, and kid; you could just do teacher & kid, or
just kids, or you could do something even more complicated
("East Campus", "1st grade", etc.). If you were just wanting
to set things up for home use with a single login you could
just list the names of your kids in a single column and that
would be it.
Save the spreadsheet as a comma-separated-value file (.csv
file). In case you have to prepare it manually (say, with a
text editor) the resulting CSV file would look like this:
"1st Grade",,
,"Mr. Jones",
,"Mrs. Smith",
"2nd Grade",,
,"Mrs. Wilson",
,,"Kid a"
,,"Kid b"
,,"Kid c"
,,"Kid d"
4. Create the directory hierarchy with the following command (executed
from the command line, aka shell):
tuxmathadmin --createhomedirs userfile.csv
tuxmathadmin --path /servervolume/tuxmath_users --createhomedirs userfile.csv
(use the 2nd syntax if you haven't updated the global configuration
file yet as in step 2 above). Here, "userfile.csv" is the name of the
file that you created in the previous step. It should tell you that
it's creating all the user directories and complete without error.
Note that "tuxmathadmin -h" gives help, including a list of the things
that tuxmathadmin can do.
5. Optionally, in the "tuxmath_users" directory you can also create a
file that poses a question at each step of the hierarchy. For the
example above, it might contain three lines:
Choose your grade:
Choose your teacher:
Who are you?
You need to save this as a raw text file with the name
"user_login_questions" ("user_login_questions.txt" on Windows) in the
top level of the user hierarchy directory
(/servervolume/tuxmath_users). If you omit this file, then students
will simply be presented with the list without any kind of prompt.
6. Decide on how you want users to compete for high scores. For the
example above, suppose you want each student to compete against the
other kids in their same classroom. You would configure this with the
following command:
tuxmathadmin --confighighscores --level 3
"tuxmathadmin -h" gives detail about the meaning of the choices of
different levels.
7. Optionally, at least under Linux (and probably other OSes) you can
also configure certain tasks to run automatically using "cron." For
example, if you want to clear all the students' gold stars on a daily
basis, you can put a script that executes
tuxmathadmin --cleargoldstars
in the /etc/cron.daily directory. See the cron documentation for more
detail. You may also want to run tuxmathadmin with --consolidatelogs
to generate daily reports (see below).
If you instead choose to configure TuxMath manually, these are the steps:
3. In tuxmath_users, create a text file called "user_menu_entries."
This file contains the list of choices that students will be presented
with upon login, one entry per line. For example, a large school with
many classrooms might have choices called "Kindergarten," "1st grade,"
and so on.
4. In the same directory, create sub-directories that have the same
names that appear in user_menu_entries.
5. Create further user_menu_entries and further subdirectories inside
each of these. For example, in "Kindergarten" you might want to
create directories for each classroom, say "Mrs. Smith" and "Mr.
Jones." A smaller school might choose to skip the by-grade
organization and go straight to each classroom; a single computer in a
single classroom might skip these altogether. Always make sure that
the user_menu_entry file matches the directory structure (although
having extra directories will not cause a problem).
You have to make sure that all the write permissions are set correctly
for the students to be able to write to these directories.
6. At the finest level, create a menu item and one subdirectory for
each student.
7. Optionally, perform the tasks described above in step 5 of the
"tuxmathadmin" configuration (creation of the user_login_questions
8. Optionally, you can create an empty file called "highscores"
("highscores.txt" on Windows) at whatever level of the hierarchy you
want users to be competing for the high score. For example, if you
want the high scores to be grade-wide, then put a "highscores" file in
each grade's directory. Alternatively, each classroom could have it's
own, or even each student. If you do nothing, then each student will
have a private high score table. (In case of multiple highscores
files, the one at the lowest level of the hierarchy wins.)
Note there is no security insuring that students select themselves.
Tracking Progress in Multiple-User Configurations
tuxmathadmin contains a feature, "--consolidatelogs", that creates a
consolidated_log.csv file in all directories that are one above the
lowest level. The basic use-case is to combine the reports on all
students in a particular class. Teachers/parents can open this file
with a spreadsheet program as described above under "Game Summary
Command Line Options
NOTE: Tuxmath now has many pre-packaged "missions" (lessons), as well
as four arcade-style open-ended games of progressive difficulty, so
there is much less need to change settings. If desired, editing the
config file is a much better way to control the behavior of TuxMath
than the command-line options, for the most part. However, many
options are still supported.
Tips on running from the command line:
Just open a command prompt.
To be prompted for command line options, run tuxmath
from the "Run" dialog or the "C:> Command Prompt" console. Type
"TuxMath.exe" followed by any desired options (see below). If it does
not run, make sure the full path to the program (e.g. C:\Program
Files\TuxMath\TuxMath.exe) is known to Windows, either through Control
Panel settings or by changing to the directory containing TuxMath.exe
before issuing the command.
[ UNDER CONSTRUCTION ] Just double-click the "tuxmath" icon. ??? To
be prompted for command line options (see below), hold the [OPTION]
key as you double-click the icon.
The following command-line options can be sent to the program:
NEW as of 1.8.0 - run-time debugging output. Tuxmath now has a system
to activate debugging output of various subsystems. Note that the
extent to which the new system is utilized varies a lot - some of
these flags don't do much as of yet. The names are fairly
self-explanatory and generally refer to specific source code files in
--optionfile filename - play game based on settings in the named file (see
below for more on tuxmath config files). Tuxmath will
look for a valid config file with a matching name in
the following locations:
1. current working directory
2. as an absolute pathname
3. in the missions directory with tuxmath's
other data files.
4. in the user's tuxmath options directory
(e.g. /home/laura/.tuxmath/filename
5. in the user's home directory.
--playthroughlist - Game consists of working through a list of questions
-r generated based on the selected options (or defaults).
If a comet strikes a city without being shot down by
the player, the question is reinserted into the list
in a random location. If the player answers all questions
correctly before the cities are destroyed, he/she wins.
If all cities get destroyed, the game ends in defeat.
--answersfirst - to ask questions in format: ? + num2 = num3 instead of
default format: num1 + num2 = ?.
--answersmiddle - to ask questions in format: num1 + ? = num3 instead of
default format: num1 + num2 = ?.
--fullscreen - Run the game in full screen, instead of in a window,
-f if possible.
--windowed - Run the game in a 640 x 480 window.
--nosound - Do not play any sounds or music.
--nobackground - Do not display photographic backgrounds in game.
-b (Useful on slower systems.)
--keypad - Display an on-screen numeric keypad. (Useful
-k for touch screens or in place of a physical keyboard.)
--operator OP - Add an operator to the game (will cause the program
-o OP to ignore saved option screen settings). You can
use this switch multiple times to run the game
with multiple operators.
Valid values for "OP" are:
--demo - Demo mode. The game will cycle back and forth
-d between the title and the game, and it will
auto-play the game. The only user interaction
can be for quitting or pausing.
--allownegatives Allows subtraction answers to be less than zero.
-n When selected, the led numbers at the top of the
screen will include a fourth digit for the '-' sign.
Also, if --keypad is selected, the '-' and '+' may
be grayed-out depending if negatives are allowed.
These command-line options display useful information, but the program
does not attempt to start up in interactive mode.
--help - Display a short help message, explaining how to
-h play the game.
--usage - Display the available command-line options.
--version - Display the version of "tuxmath" you're running.
--copyright - Display copyright information
License ------- "Tux, of Math Command" is Free Software. The compiled
program is distributed under the GNU General Public License (GPL),
Version 3 (or, at your option, any later version). TuxMath's various
source code files are licensed under either GPL2 or greater, GPL 3 or
greater, or non-restrictive licenses similar to the BSD and MIT
licenses. The data files are licensed under non-restrictive Creative
Commons licenses or under the GPL itself. See COPYING for further
Designed by Sam "Criswell" Hart <>
Original software created by Bill Kendrick <>
Current co-maintainers/lead programmers:
David Bruce <>
Tim Holy <>
Please see the game's "Credits" screen for a complete list of
Software Used
GNU C Compiler, GNU Make, GNU Autoconf, GNU Automake, GNU Gettext, GNU
SDL and associated libraries:
Vim (Vi IMproved)
CMake (for Mac OSX build)
Mingw cross-compiler port of GCC and Mingw Cross Environment
(for cross-compiled Windows build) (mingw cross environment project) (mingw tool chain itself)
SDL_rotozoom was copied from the SDL_gfx library and re-licensed (for
the purposes of TuxMath only) to GPL