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
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
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