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



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

February 18, 2015:  Several years ago I was attracted to the problem of locating objects from sensors which could measure distance to a target but had no idea about its direction.   Your GPS is an example of such a target which does the calculation by reading satellite signals containing timestamps allowing the device to calculate how far it is from each satellite.  It takes 4 such satellite signals to determine a location using mathematics similar to those contained in my program, Point from 4 Sensors.   A viewer recently reported an error in a sample sensor equation in the web page description, although the implementation in the program was correct.  In the process of verifying (and correcting) the web page error, I cleaned up a couple problems with  program displays caused by my use of text scaling on my monitor. Since I had the program open anyway, I fixed those and posted the update today as Version 5.1.

February 15, 2015:  Having survived Friday the 13th, I resurrected this Friday the 13th program  to check for other occurrences this year and discovered that we have two more (in March and November).  That's the maximum that can occur in a year and we won't see three in a year again until 2026, then 2037.   It's an interesting mental exercise to understand why there are 11 year gaps going forward but only 6 years since the last occurrence when I first posted this program in in 2009.  The program is also useful for finding  occurrences of specific days and dates, e.g. when is the next time your birthday falls on your birth day?  

 February 10:  The RSA Key algorithm is well known to those involved with securely exchanging data electronically.  I implemented my demo version because I wanted to see how it worked and "just for fun".  RSA  Public Key Demo V2.1 was posted today fixing a subtle bug which occasionally generated RSA keys so secure that the encrypted data could never be decrypted!   I had never encountered the error myself, but a sharp user did and even provided a program to replicate the error.      

February 2, 2015:  Two small updates this week.  If you already have these programs but haven't seen the problems fixed, it's probably not worth the time to download. 

Logic Problem Solver  V5.5 fixes a problem a user was having saving a new logic case.  Making the automatic backup copy of the existing file with that name failed under some conditions.           

The Unscramble V2.2, program, part of our Wordstuff collection, corrects range of maximum and minimum word lengths to find.  It now keeps them within the valid range based on the length of the current scrambled word. 

January 26, 2015:

A start at finding word for "dart-shooting" tube

Here's a "Word Search" puzzle solver motivated  by a Mensa Puzzle Calendar entry which asks viewers to find five 7-letter words in the given grid by following "crooked" paths. The search rules require moving  from each letter to an adjacent letter horizontally, vertically, or diagonally to the next letter and no letter may be revisited within a single word.  The puzzle is one of several included in the program downloads.

Users may play by clicking cells to form words.  They may also  change size, contents, target words, search style, etc.  and save/reload modified or new puzzles. 


January 18, 2015:  

Last month's update to our Brute Force program stopped automatically displaying the equations and parameters I used to solve each puzzle.  It accidentally flagged the puzzle as changed when the button to display that information was clicked.  As a result, when the puzzle was closed users were always asked if they wanted to save changes.  Brute Force Version 3.4 corrects that problem.  It also corrects a scaling problem which occurred in the "Change Title" dialogs for lower resolution screens. Finally, the program also now allows removing images associated with puzzles if no longer wanted. Formerly, they could be added or changed but not removed. 

These problems were found when I was solving yesterday's Mensa Calendar puzzle displayed at right.  It is included with the current downloads and, surprisingly, can be solved with only two equations! 

By the way,  the 2015 Mensa Puzzle Calendar is now on sale at Amazon for 1/2 price ($6.99).  If you enjoy puzzles, check it out.

December 23, 2014:  
I have often wondered how license keys are generated to incorporate data unique to a particular transaction.   A user recently requested a model to include licensee's name, licensing date, and license period.   Here's first cut at a method to accomplish this.  I have generalized the program to include multiple fields of fixed or variable length by including a field definition table.  License Key Generator has demo code to create License Keys and to decode the keys back to the original input fields for verification. 

December 3, 2014: Brute Force solves a class of problems that can be represented as equations with integer solutions.  The solution must be from a predefined set of integers.  As restrictive as that sounds, there a many problems that qualify.  It recently occurred to me that not everyone will be entering new puzzles to Brute Force, but might want to solve some of the 42 sample problems included with the downloads.   Brute Force Version 3.3 no longer displays the solution  parameters and equations when a problem is  loaded. Try to solve it on your own first!   A new button allows saved solution stuff to be displayed if you need help or just want to see how I solved the problem.

November 24, 2014:  Our popular CutList program  underwent a fairly major update a month or two ago.  A minor bug caused zoomed  cutting diagrams to display across multiple screens but without a scrollbar to allow access.  CutList Version 4.02 posted today fixes the problem.     

November 22, 2014:  It's been a busy month here on the mountain.   The 1st deer is in the freezer but, as usual, the smart ones quickly become nocturnal when the shooting starts so hunting becomes a matter of waiting for "dummy" to show up.  We do have "mama and the twins"  visit us daily to pick at the turkey corn  or whatever apple peelings we throw out, but she's been visiting us for so many years that she is like a family member and strictly off limits.    I just finished a big woodworking project as a Christmas present for a daughter (photo coming soon), and I'm restocking the wood pile to replace the extra wood used during the recent cold snap.  It is nice to keep our living space between 74 and 78 degrees with the only cost being gas and oil for the chainsaws and wood splitter with the added advantage of getting some daily exercise.

With family coming for Thanksgiving next week, today's posting of our Word Stuff program with one bug fix and one enhancement will likely be the only DFF change this month.  Both changes were triggered while using the program to help solve Mensa daily calendar puzzles.  See Word Stuff #2 page for details.       

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.