Welcome to a tutorial site guaranteed to teach you something about programming, algorithms, math, puzzles, and problem-solving. The basic premise here is that “by example” is an effective way to learn to programme. There’s a growing amount of sample code here to download and run.
The examples range from simple (less than 50 lines of user code) to a few that have several thousand lines. Some were written because I wasn’t smart enough, or too lazy, to solve them by hand. Some probably can only be solved by computer. And there are one or two that I believe are unsolvable, even with a computer. The programs all have several things in common…
- Estimate the value of pi by shooting cannonballs into a pond or dropping needles on a sheet of paper.
- Duplicate the hidden mathematics of sunflowers.
- Solve those arithmetic word problems (BONG + BONG + BONG = GONGS).
- Solve chessboard problems like The Knights Tour and Eight Queens.
- A logic problem solver – at least help solve those logic story problems that are published monthly in logic magazines.
- Lots of number problems involving integers, powers, primes, factors, etc. (Find the largest and smallest non-prime numbers whose prime factors sum to 100).
- A maze generator.
- Palindromic number problems – palindromes read the same from the left or right. (What’s the smallest Palindromic number that’s a perfect square and has an even number of digits?)
- Simple animated physics programs – bouncing ball, cannon firing.
- And much more…They solve interesting puzzles or problems that I’ve discovered over the years. Examples (these may not all be posted yet):
- They are all implemented in DelphiTM, the modern object-oriented implementation of the Pascal programming language with a visual development environment. If you already own Delphi, you know what a great language it is. If not, check the About Delphi page to learn more about getting it. Delphi is a registered trademark of Borland Inprise Corporation
- The problems can be explored at different levels depending on your interest: Read about the problem, browse the source, or download the source or executable code and then modify and explore.
- Almost none are original. Actually, most all of the code is original, but the problems are generally not. I’ve cited sources where I could locate them. Many are classical problems and puzzles that can be found in books and many places on the Internet.
I’ve assigned a degree of difficulty to each program based on lines of user-written source code. That’s not entirely accurate but provides a rough guide. Programs with less than100 user-written source code lines are Beginner level, 100-300 are Intermediate and over 300 lines are Advanced. About Delphi also has some links to first programs and tutorials for true beginners.
OK, learning comes from doing – so let’s go!