If you benefit from the website, in terms of
knowledge, entertainment value, or something otherwise useful,
consider making a donation via PayPal to help defray the
costs. (No PayPal account necessary to donate via credit
card.) Transaction is secure.
If you shop at Amazon anyway,
consider using this link.
We receive a few cents from each
The index page for all
Programs on the site?
The DFF Play CD?
CD.zip contains executable version of about 75 of
the 200+ programs from the site, mostly those I particularly liked
or thought would be of widest interest for non-programmers.
The file is rather large, about 20mb..
Not a programmer (yet)?
That's OK - the executable
version for any puzzle or game you find here is available for
download. Just scroll down to the bottom of most any
description page and you'll find a "Download executable"
link. Downloaded programs are in "zipped" format to reduce size and
may require an "unzipper" program unless you are running Win XP or
link to a free one.
Check out the
Most Popular Downloads from
DFF (updated weekly)
First time visitor?
Take a look at the
page to see what this site is about
Notes for Teachers
June 12. 2017:
Brute Force is my "go-to" puzzle solver for an amazing number of puzzle
types (50 sample puzzles included in the downloads). It solves by
exhaustive search ("trial and error") if they can be described with a
set of integer equations with a limited range of solution values.
I recently checked to see if it could solve the
puzzle for which I posted a user-play version a couple of years ago.
It turns that it could, even though I had to add two additional
operators to describe partially burned matchsticks.
Brute Force Version 3.5 has the
details and download links.
June 8, 2017: FrontPage, the website builder used
here at DFF is on life-support and options for recovery seem to be
limited. Long time viewers have heard this song before; the basic
problem is that there is no easy way to convert to any other product.
Best advice seems to be "save the text and convert each page manually";
a job that sounds like weeks or months of "not-so-fun" time to get
back to what I have now. Currently, the only way
to update the site use to edit a local copy and upload the revisions via
the FTP transfer protocol which has introduced a whole new set of
problems for a newbie like me.
In any event, these are my problems, not yours - just be
patient while I learn and search for solutions. I do have a couple
of changes to post - the first is an expansion of our Latitude-Longitude
Distance unit and the test program for it, If you're interested in
that sort of thing, here's the link to the
page with more information.
May 23 2017: I recently needed to
extract information about a particular location collected over time and
buried in many large files. This was a one-time study, not worth
writing a separate program. In order to assemble the needed
data from several files, I modified our Text Search program to
append selected records into an single text file
Text Search 2.2 posted
today, now allows appending as an alternative to overwriting an
existing file with the same name.
May 14, 2017: Here's a puzzle that required a
25 line program to solve (at least for me). If you want to try it on you
own, here it is:
We have two normal 12 hour clocks
that start running at 12:00. One loses two minutes every hour and the
other gains two minutes every hour. How many hours will elapse before
both clocks again show the same time?
FastSlowClocks simulates the two clocks by incrementing the times by
62 minutes (Clock 1) or 58 minutes (Clock 2) for each real hour
interval. Starting at time 12:00 (00:00 really), clock times are
displayed for every "real" hour until they again match. The link above
points to a Beginners page with 2 dozen simple programs described for
beginning Delphi programmers, so scroll to the bottom of the page to see
the entry for this one. Viewing the program results showed that I
should have been able to reason my way to the solution, (but I didn'tL).
If you just want to download the executable file to check your answer,
clicking this link is a simpler way.
April 21, 2017: Here's a Delphi demo,
HeapsPermute, of an
algorithm developed by J.R. Heap in 1963 which generates permutations of
arbitrary data items. It is quite efficient because it swaps only 2 elements for
each permutation generated. The disadvantage may be that that there is no
apparent order in the generated permutations. Search "Heap's algorithm" on
Wikipedia for more information. I plan to use the algorithm in a future
"Made from scratch" puzzle solver which doesn't use the existing DFF Library.
March 28, 2017: We're back!. If you received a
"Service Unavailable" message in the past two days, no worries. The host
site maintenance guys mess up and cause this about once a month.
It's usually only a couple of hours, but this time it was 2 daysL.
I'm guessing that the root cause is that the DFF site runs under FrontPage, a
terrific website builder abandoned by Microsoft years ago with no suitable
conversion aids or equivalent replacement available. Manual conversion to
something less usable is an easy task to defer, so I'm limping along with the
old, unsupported builder program and not many choices for finding another host.
After careful cost/benefit analysis, my conclusion is that what happens in the
future is a problem to be addressed in the future.
In the meantime, I discovered a small bug in an old beginner's
level program which generates odd order "magic squares" up to 51x51 using an
ancient algorithm. Magic Squares
V1.1 corrects a grid sizing problem for the 3x3 square.
March 19, 2017: CutList
Version 4.05 posted today corrects a few misspelling and truncated
text errors caught by a couple of sharp eyed users. Thanks to Karson
and Anthony for taking the time to let ne know.
March 6, 2017:
Several years ago, a buddy of mine took on the design and
implementation of a children's water fountain with multiple nozzles
squirting at random intervals and durations. I created an animated
simulation to illustrate what it might look like. The result was
posted here in the "Delphi Techniques" section as an example of how to draw
on a graphic control. (a "TNozzle" in thus case). You can view a
picture of the resulting real "Splash Pad"
A Delphi programmer recently sent me
his attempt to move the TNozzle class to a separate unit and found
that the his drawing attempts were displayed in the wrong place. The
solution was to draw on the canvas of the TNozzle Parent
ShapePaint Version 2.0 demonstrates how to do this.
The What's New Archives
July 7, 2014: Note:
this "Collapsible" month by month list of postings since year
2000 is not collapsing for some reason, making this a very large
home page. Until it gets fixed, you can reference the complete
quarter by quarter list of postings on the