Nim
As can be seen below, you start with a random number of
coins. You take turns with the computer in removing 1, 2 or 3
at a time. The player who removes the last coin looses.
Sounds simple until you try it. By the way, before you
reach for your e-mail programs to tell me that it is impossible,
you can always win providing you don't make a mistake.
A Bit of History
Back in the dark and dismal days of 1981 when I started programming
on a Sinclair ZX81, home computers were for hobbyists. They were
often just a circuit board with all the components mounted directly
onto it - no motherboard and peripheral cards like today's PC's.
If you spent a bit more money, you might get a case for the thing!
No one seemed to care that they had so little computational power so as to
be of little practical value. My ZX81 initially had just one kilobyte of memory,
compared to 1,048,576 times that on my current system. It had no hard disk, not
even a floppy, program storage was a standard audio cassette and recorder, however
it was fascinating to watch that tiny machine obey the simple commands that I
gave it.
Before "compatibility" became the big issue, every machine had
its own operating system and all seemed to have their own version
of the BASIC programming language. The hobby magazines would discuss
how to make your own add on hardware and teach different programming
techniques. Often, in the back there would be program listings
to be laboriously typed in. On such listing was for a game called
"Nim". Here is a version I have written in java.