Hydra Slayer is a Roguelike game focused on one thing: slaying Hydras. It is inspired by mathematical puzzles about brave heroes slaying many-headed beasts. Since each weapon can only cut off a specific number of heads (no more, no less), and then the Hydra regrows some of the lost heads, to defeat each Hydra, you need to find the sequence of attacks which kills it in the least number of wounds. Hydra Slayer also features divisor weapons, blunt weapons to stun heads, missiles, and shields, and a number of other magical items which are unique to this game.
Multiplication Station will teach your child to add, subtract, and multiply. It is a multi-user application with a simple admin interface. All parameters are configurable, like grid size and the fonts and colors of number ranges. A countdown timer is used to keep the player's attention focused. A list of high scores is maintained.
Burr Tools is a set of programs for solving some kinds of puzzles, namely puzzles that are made out of square, cube-shaped, spherical, or triangular units, and whose solution also contains only pieces aligned along those grids. The program finds assemblies for the puzzle and animates how you have to assemble for some of them.
Exhaustive Game Solver is a series of Perl scripts in which the computer plays either Coin Strip, Welter's game, or Mancala against the user. In the case of Sudoku, it solves the puzzle. The scripts use a recursive algorithm in which the game tree is searched for sure winners, positions from which the computer cannot lose. Since the search is CPU intensive, lookup tables have been generated.
libkdtree++ is a C++ template container implementation of k-dimensional space sorting, using a kd-tree. It sports a theoretically unlimited number of dimensions, and can store any data structure. Provided the data structure, it provides operator[0 - k-1] to access the individual dimensional components (arrays, std::vector already do) and a std::less implementation for the type of dimensional components. It has support for custom allocators, implements iterators, and provides standard find as well as range queries. It has amortised O(lg n) time (O(n lg n) worst case) on most operations (insert/erase/find optimised) and worst-case O(n) space, and also provides a means to rebalance and thus optimise the tree.