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


What's New


October 19, 2014: 

KenKen is a Sudoku like game with a little math involved, cages instead of 3x3 blocks, and allowing numbers to be repeated within cages so long as no number appears more than once in a column or row. 

While solving a new puzzle the other day, I found a couple of irritating program "features" when the user has filled all cells but errors exist.  First, automatic checking to produce error messages for every change until the errors were corrected was awkward and just a bad idea.  Second, when I tried to fool the program by entering spaces in all of the error locations, I found that space character was not honored as a valid key,   Both of those mistakes are corrected today with the posting of KenKen Version 2,1.

October 11, 2014:  Here is a program posted in our Delphi Techniques section which tests list creation and retrieval speed for standard TStringList  and for  the DFF integer list equivalent, TIntList.  Times and rates can be compared under multiple Delphi versions using the same source code.  My conclusion from testing with Speed Tests for Lists is that integer lists are much preferred if possible when performance is important.      

October 5, 2014:  DFF Newsletter #74 was sent last night to 853 subscribers.  The newsletter is issued quarterly summarizing website postings for the previous quarter and is mainly intended for those who like the website but don't visit regularly.  It is motivated by my personal experience of losing track of many interesting  websites that I like but don't need to visit daily or weekly.    There were only 7 invalid email addresses this time so the list has pretty much settled down to our group of "permanent" subscribers.   

Brute  Force Version 3.2.1 was posted today to fix a small problem when the  image from the previous problem still displays after a new problem is started or an existing problem without an associated image is opened.

October 1, 2014:  A small update the other day created CutList Version 4.01 to help resolve a printing problem when saved manual solutions are reloaded without first loading the case definition file.   The requirement still exists, but I hope it is now better diagnosed for the user.    

September 30, 2014:  Here's a puzzle from Marilyn Vos Savant in this 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 that 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. 



The What's New Archives

(Click to expand)


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