Martin's programs: Games, Gadgets and Labview

I learned programming when I was about 13 or 14 years old, with an Atari Mega ST and GFA Basic. I must have written hundreds of programs since then, some of the better ones are available for download here. They come in 3 categories: First, there are the board games (chess, checkers, connect 4), all written in C for speed; and a puzzle: Sudoku Champion, written in C#. Next, there are the gadgets: Two small programs to display the current air quality in Switzerland in the windows system tray. I wrote these in C#, which is much easier to use for rapid application development than pure C. Finally, I have some LabView code here for download to compute Mie scattering efficiencies and to solve non-negative least squares (NNLS).

Games and Puzzles

CheckerBoard and Cake

CheckerBoard is an open checkers interface for windows - it can load and save games and offers lots of other features. Cake is a checkers engine for CheckerBoard, i.e. this is the part which can think about the current position and produce a move. Together they form one of the finest checkers programs available for windows. Both are written in C. I started working on checkers programming in 1996, the first versions of CheckerBoard and Cake were written in early 2000. Go to my checkers pages.

4 in a row

4 in a row is the first strategy game program I ever wrote. I wrote the first version in 1992, during my first year at ETH. It started out as a programming contest between me and a fellow student (Andri Schaufelbühl), and I've been improving it from time to time since then. The latest version can play 4 in a row perfectly if it is given enough time to think. 4 in a row has given me a nice illustration of Moore's Law: the first version of this program ran on an Atari Mega ST (my first computer) with a 8MHz Motorola 68000 processor. It could compute 300 positions per second. The latest version computes 3 million positions per second on a modern PC! Go to my 4 in a row page.


Muse is my chess engine. It is UCI and Winboard compatible, which means that like in the case of CheckerBoard and Cake, Muse needs an interface to actually use it. It is the newest of my strategy game programs. As far as I know, it is the best Swiss chess engine, but that doesn't mean much. It is a decent amateur program, but not more. I started writing it in Summer 2003, and stopped again in about Fall 2004. It is just too much work to write a really good chess program - and even though I'm a bit of a nerd, I do have some other hobbies besides programming :-) Go to the Muse page.

Sudoku Champion

new! Sudoku Champion is a powerful Sudoku generator and solver. It is written in C# which means that you must have the .NET framework 2.0 installed on your machine, else Sudoku Champion won't run. Find out all about Sudoku Champion on my Sudoku page.

PAD files

For all games except for Muse, I have PAD files describing them: CheckerBoard PAD file, 4 in a row PAD file, Sudoku PAD file.

LabView Code

Mie scattering code for LabView

Stefan, my PhD student, was doing some work with light scattering so I wrote a small dll in C which can be called from LabView to compute Mie scattering in LabView. You can download it on my physics page.

NNLS code for LabView

I wrote a data inversion to determine aerosol size distributions from diffusion battery data - for this, I needed a non-negative least squares algorithm (NNLS). NNLS is available in lots of places, but usually the algorithm is written in fortran, so I rewrote it in G. You can also download it on my physics page.

This page was last updated on June 27, 2009 using arachnoid