DelphiForFun Home

Home  |  Introduction  |  Newsletters  |  Programs  |  Feedback


Search WWW



Support DFF

 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 purchase.   Thanks.

In Association with


The index page for all Programs on the site?

The DFF Play CD?

Zipped file DFF Play 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..

Anything else?




Search WWW



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 later.  Here's a link to a free one. 

Check  out  the Most Popular  Downloads from DFF   (updated weekly)

First time visitor?

Take a look at the Introduction page to see what this site is about

Notes for Teachers


September 30, 2014:  Here's a puzzle from Marilyn Vos Savant in the thi week's edition of Parade magazine,
We have three pancake types

  •  Burned on both sides

  •  Burned on one side and OK on the other side, and

  •  OK on both sides.

Assume you pick a pancake at random, and it is OK on the side you can see.  What are the odds that it
is also OK on the other side?  Marilyn says that the other side is also good 2/3 of the time, but I wrote this simple Beginner's level program  to simulate a million trials to prove it to myself.  You can find the downloads of source and executable at the bottom of our Beginner's Page.

September 28, 2014:  We're back from a two week visit to four of the six countries which make up the former country of Yugoslavia: Croatia, Slovenia, Montenegro and Bosnia-Herzegovina.  Beautiful country with reasonable prices, an interesting but complicated history, and more tourist crowds (and rain) than one would expect in September. We're glad we went, but also glad to be home.  

I created Brute Force Version 3.2 today to let it successfully solve this Sept. 26 puzzle from our Mensa Day-by-day calendar.

September 6, 2014:  

A "Cut List" shows woodworkers how to cut a set of parts from a set of available stock.  This program creates a diagram showing the stock pieces and how the required parts may be cut from them.  The original program was posted in 2003 and has been the most downloaded program on DFF for many years. It is a bit complex so I have avoided making changes, but recently added support for Unicode characters in project files names at a user's request.  He says it is working for him, so here is CutList Version 4.0 with the Unicode feature and a new feature which will display multiple solutions, not just the one that the program thinks is the "best".     Program changes required the use of a much newer version of Delphi than my old favorite, which may have introduced undetected errors.  As always, please use the feedback link to report problems. 

August 30, 2014:  I just renewed the DelphiForFun domain names for another year, but this may be the last.  The clock keeps ticking and, as I get older (and slower), it seems as if  it is ticking faster.  At 75 years of age, my "Bucket List" has more items on it than I can realistically expect to satisfy.   Next week is the 14th anniversary of the website started in September, 2000, so fifteen is a good target.  I'm lowering my program posting objective  from one a week to two a month to ease the transition. 

Here's a simple Beginner's level program I wrote this week in response to a user's email asking how to remove lines shorter than 199 characters and truncate lines longer than 199 in a text file. The barebones program CopyTruncateStrings uses about 15 lines of code to accomplish this and a few more lines to display the counts.  Lots of room for adding features, but hopefully it does the job for him.  The link above is to our "Beginner's" webpage; scroll to the bottom to find and download the program if you are interested. 

August 15, 2014:  Sometimes the "never give up" attitude is more curse than blessing.  The current puzzle is an example.  This recent Mensa calendar puzzle is the 2nd example of this puzzle type and prompted me to create Square Word Grids, Version 2.0.   allowing puzzles to be manually entered.  (The original puzzle was hard coded to produce the default puzzle.)  Version 2 of the program also adds the ability to save and restore puzzles.

However integrating creation of puzzles with the original solving functions turned out be much harder than I anticipated.  I fought with it all week and I'm still not happy with the result.  The puzzles are not likely to be very popular and I'm ready to move on to other projects.  

The "PuzzleFile.ini" file included with the downloads contains this puzzle for loading and solving yourself or letting program  find the solution.  To add to the disappointment, it turns out that there are no solutions using words in the included medium size dictionary but two solutions using the large dictionary!  "C'est la vie", I guess.       

July 29, 2014: 

Expressions From Integers Version 2  adds an extended version of the original puzzle.  This one has multiple completed input figures and a single target figure with one value missing.   The strategy for this one is to find  an single expression template which will evaluate to the number position containing the  "?".  The same value positions and operations applied in the same order for each figure must equal the value in the "?" position for that figure.  The successful template when applied to the incomplete figure will provide the required value. 

Another puzzle programming exercise from my favorite source: the   Mensa Puzzle-A-Day Calendar.

July 23, 2014: Feedback from the May posting of our Logic Solver program and an unsolved Geocaching problem led to Logic Version 5.4 posted today.  Bug fixes include:

  1. The "Edit" feature to change variable value names lost rules and facts from the save cases file if they had not been viewed before the changes were made.
  2. Rules generated by "Order" rules were not displayed in the  Generated Rules display form.
  3. Some text of the Reasons for assigned values to truth truth table entries had column and row references reversed.
  4. The big one that took a week to find:  The program implements a syllogism called "Disjunction Elimination" which says that if A implies B,  and B implies C,  and we know that A and C cannot both be true then we can conclude that A is not True.   When applied to "If" statements generated by "Order" and "If"  rules generated a bad fact if the "If" was assign a False value (i.e. "If A then Not B" instead of  "If A then B").  



July 13, 2014:

Well begun is half done!,

StarsOnAGrid implements solving and allowing users to create, modify and  solve puzzles of the  type defined as follows::

Given a square N x N grid divided into N sections, place a star in each section with no two stars in the same column or row, and no two  stars diagonally adjacent to each other.

The program allows grid sizes from 2x2 through 10x10, although no solutions exist for sizes less than 5x5. 

June 21, 2014:  Self Describing Sentences, Version 2.2, posted today, adds a few extra examples of self-describing sentences or "Autograms" as Wikipedia calls them.   I also added some run statistics and the ability to interrupt long running cases.  Got to run.  We're off to Kitty hawk and the beach today to spend a few days with daughter and family.

June14, 2014:  Here's a Fill the Blanks Puzzle worth a few idle minutes of your time.  The program makes it easy to validate that your choices are valid words and to explore alternatives.  Another extract from the 2014 Mensa Puzzle-A-Day Calendar.

Many of the 10 given three-letter partial words have more than one choice of final letter to form a common four-letter English word. Use all of the supplied letters exactly once to fill the blanks and complete all these words. 
There is only one solution.

Partial words AHE_  BEE_ CHU_ DOR_ GAV_ KIT_ MIN_ REA_ SIG_ TEA_
Final letters D E F G H K L M N X


May 28, 2014:  

"Alphabet Long Division" is the 40th sample problem added to the our Brute Force solver download since the original posting in 2001.  It is the perhaps the first problem to extensively test the shorthand feature that treats character strings in equations as multi-digit integers so we can define this problem with equations like BRINK / RIB = RUN,  RIB * R= OAR, etc.   Click the here if you have the April program update and just want this new problem to play with.

May 24, 2014: 

Bug Time Trials Version 2 was posted today after scanning to see what robot related programs I have posted.   This is not a very good example but, as usual, playing with it brought a few changes to mind.  The "bug" needs to be maneuvered around a "track" and through some gates in your best time.  Version 2 allows bug size to be adjusted (smaller bug makes it easier and faster to complete the circuit).  I can just break 20 seconds now J.   

May 15, 2014:


 We've been busy this month with spring chores (driveway reconditioning, garden preparation, waking up motorized stuff that slept all winter, etc.). 

Tromino Puzzle Solver V1.0 is  a  medium size solver implemented on rainy days and evenings this month: 

One or more copies of the  6 given shapes have been used to tile the grid and then the outlines were removed.  Can you fill them in again? 

May 2, 2014:  Another "geocacher" sent me a problem that my Logic Solver program is not solving so far. Several other Geocaching heavy-weights have apparently solved it however.  The problem (in German) can be found at  The current Logic Solver update to Version 5.3 has minor updates but the primary reason for the update  to get more eyes to look at the problem to see of there are facts and rules in the description which I haven't picked up on or which the program fails to derive.  A translation of the problem is included in the download files.

April 28, 2014: It has been a productive month for getting spring duties accomplished but not so productive programming-wise.  I spent more hours than care to admit on two programs.  Oscilloscope Version 4.2.4 was posted today with some cleanup of the diagnostics when an input device fails to open for display.  I'll post our Logic problem solver tomorrow along with a problem which the program cannot solve and a request for help. 

April 12, 2014:  Here's another problem solvable by by our Brute Force program which applies exhaustive search matching possible values with variables in a set of equations.   Brute Force Version 3.1 adds the absolute value function, "abs", to equation formats to enable solving the "Billiard Balls" problem.  The problem is to arrange 10 billiard balls into a triangle meeting a set of rules about the balls numbered 1 through 10.  One of the constraints is that the balls in a particular row all have numbers more than 1 away from their neighbors.  This constraint for balls with numbers "a" and "b" can be expressed with the equation "abs(a-b)>1".  Sample problem BilliardBalls.prb is included with the download and is solved in about one second.  


The What's New Archives

(Click to expand)


  [Feedback]   [Newsletters (subscribe/view)] [About me]
Copyright 2000-2014 , Gary Darby    All rights reserved.