[Mono-list] dotfield, a cross-platform minesweeper clone with mono and managed forms

Thomas E. Vaughan tevaugha@ball.com, tevaughan@comcast.net
Thu, 10 Mar 2005 11:08:54 -0700

I have written a minesweeper clone called dotfield.  I know,
not a very imaginative name.  :^)

Anyone interested may grab it from

The source code is included.  (GPL)  If you look at the
source, then please don't laugh.  I don't really know what
I'm doing yet in csharp.  I just used my C++ experience
together with a perusal of the basic language overview and
the class documentation on MSDN.  So I'm certainly doing
many a thing "wrongly", at least so far as the right csharp
way is concerned.

I have tested it on Mac OS X, on Debian GNU/Linux, and,
briefly in a previous version, on MS Windows.  Each of the
non-MS-Windows platforms had mono-1.1.4 installed, though I
had to compile mono-1.1.4 from source on Debian.

Below are some of my observations.  Note that I am a newbie
to Mac OS X *and* a newbie to mono/csharp/dotnet.

(1) Although the game runs well enough on Debian when
displayed on the local X-windows screen, it locked up
whenever I tried to display it across the network on the
Mac's X server (the X server from Apple)..

(2) I couldn't figure out how to make a main menu work.  The
application kept crashing.  The source code for my menu
skeleton is commented out in the source.

(2a) It's unfortunate, though I suspect probably necessary,
that although managed forms on Mac OS are rendered via
Quartz, the main menu is drawn inside the window.  It would
be really cool, from a cross-platform development point of
view, for the main menu to show up in the OS X menu bar at
the top of the screen.

(3) Drawing is *really* slow on Mac OS X.

(4) Right clicking doesn't work on Mac OS X (even with a
two-button mouse :^).

(4a) Shift-clicking doesn't work on Mac OS X.
(4b) Control-clicking doesn't work on Mac OS X.

There are other strange things that I noticed, but these are
the ones that I remember right now.  Sorry if these are all
well known.

Thomas E. Vaughan <tevaughan@comcast.net>