Home  |  Introduction  |  Newsletters  |  Programs  |  Feedback






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

Anything else?





Search WWW

Search DelphiForFun.org


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


January 5, 2013

Delphi For Fun Newsletter #66

Home safely from our 2-week September "scouting" trip to Switzerland. The wife and I had a great trip but didn't find anywhere that beats the Bernese Overland which we have visited as often as finances allowed for the past 40 years.  If the idiots in Washington don't push us off of the fiscal cliff, we hope to return with the family next June.  Here at home, winter has been slow in coming.  I haven't shot this year's deer yet, at least partially because the warm temperatures wouldn't let it hang for more than a day or two.  But the silver lining is that the winter firewood supply is holding up well.  

Since I wrote the previous paragraph in November, we've moved on  to 2013 and Congress has "kicked the can" again because the majority do not have to courage to stop spending more taxpayer money than they collect.   On the positive side, this year's deer is in the freezer and plans for our family trip in June now include a week on the NCL Epic for a Mediterranean cruise followed by  a week in Lauterbrunnen Switzerland.   

The usual wide range of topics were visited in this quarter including a new release of our library file of common unit, DFFLIBV14, consolidating a number of unit changes since the previous release.  Also , a new  program that knows how to break words into syllables, one that calculates "Blue Moon" dates,  and one that replays Chess games recorded in PGN notation.   An update to help a fellow verify the accuracy of a "gun" used by law enforcement to shoot cutting slugs at potentially explosive devices was developed.  That sounds like a worthwhile project!  A couple of week's "work" in December with a "Geocacher" from Germany resulted in significant improvements to our Logic Puzzler Solver program as we tackled the toughest problem I've seen to date.  Apparently there is an organization that combines combines physical Geocaching with logic puzzles providing clues.  Fun for him and fun for me!

 Here's the entire project list:


September 4, 2012: 

PGN (Portable Game Notation) is a widely used format for recording chess games for historical or study purposes.  There are many playback programs available and the world does not need another.  However a DFF viewer requested it, and  I could not locate an existing one written in Delphi, and it sounded like  (and was) an interesting and challenging project.  So here's the DFF  version of Chess  PGN Player.

September 11, 2012:  The first bug fix for Chess PGN was posted today.  Chess PGN Player Version 5.1  fixes a couple of significant errors related to embedded comments in PGN files and the handling of the button which sets the default initial file and game when the program starts.

October 5, 2012:  Home again after a 3 week trip to our 2nd favorite place on earth, (after our mountain home), Lauterbrunnen, Switzerland.   We've been visiting every few years since discovering it  in 1967.  This time we added a few of the rail excursions (over-rated), Jungfraujoch "Top of Europe" rail trip to 11,000 feet (over-rated), and 3 days in Lucerne (view from Rigi Kulm is impressive).

Only 2 bug reports while we were gone and it turns out that both had already been fixed.  But I did polish up an Intersecting  Circle Centers program I had been working on before we left  in response to a user's request.  A previous version had explored the derivation of the math to determine the intersection points and the  intersection area for two circles.  This one solves the inverse problem;. given two circles and the area of their intersection, how far apart are the centers? 

October 8, 2012:   Oops!  For Delphi programmers: On August 29 I announced a fix for a rounding error in our big floating point arithmetic unit.  I had identified, fixed, and tested the changes.  However, I forgot to  upload the DFFLibV14 library unit which contained the fix!   Library unit DFFLibV14 has been really re-posted today with the revised UBigFloatV3 unit.  

October 15, 2012:   Many integer arithmetic problems and puzzles require that the individual decimal digits be separated from or combined into multi-digit numbers. Here is a Digits and Numbers program in our Delphi Techniques section which  illustrates the technique using a few problems adapted from the latest addition to my library,  Challenging Mathematical Teasers (Dover Recreational Math)  by J.A.H. Hunter. 

October 22, 2012:

A user wrote a few weeks ago asking how to rotate JPEG clock hand images to simulate an analog clock.   That triggered another learning/relearning experience figuring out how to do it.  Delphi Techniques program JPG Clock  is the result. Not that the world needs another analog clock but it did make an interesting programming project with plenty of room left for future improvement.

October 27, 2012:  Most of this week was in winter preparation mode; topping off the fire-wood piles, checking deer trails, harvesting apples that stubbornly hang on, setting up feeders to help our wild turkeys through the hard times ahead, etc.  It looks like we may get our first real frost with "Sandy" tomorrow, the tropical storm the that decided to head north. 

I did update to JPG Clock Version 2 which reduces processor time and improves accuracy.  I have a "atomic" watch which synchronizes itself every night with the NIST (National Institute of Standards and Technology) radio signal.  Most Windows systems synchronize their times weekly with the NIST time-server website.  It still surprises me to see the wristwatch and computer clock second hands within a second of each other.

November 4, 2012: 

I ran across a Simple Slot Machine program in my Future Projects folder the other day.  It was submitted by a viewer several years ago but got lost in the shuffle.  The code uses some Delphi features that I haven't used much and it gave me a chance to practice my probability skills by calculating the theoretical odds compared to simulation results, so I cleaned it up and posted it today. 

November 8, 2012: I found another reason to modify Clear Blanks recently which led to posting Clear Blanks Version 4 today.  One of the minor irritations  of using Delphi 7 has been  their final Help file update  which included Kylix (a Delphi 7 Linux version) help items in the help table of contents file. This typically added extra time and an extra click to look up a Windows version VCL control.  But every Kylix help entry in the table of contents contains and identifying string which Clear Blank Lines can now use to remove.  Like magic, my Delphi help search no longer knows that Kylix ever existed and is much friendlier to use!

 November 15, 2012: Probability Calculator was an attempt to present solutions for some basic and more advanced probability problems like coin tossing, dice throwing, drawing balls from bags or cords from decks, etc.  The original version had a dozen or so sample problems for which one could determine the probability of single trial and for expected if an experiment is repeated multiple times  (e.g. chance of 3 heads if 10 coins are tossed).  Probability Calculator, Version 2, allows users to define, solve, and save additional problems. 

November 23, 2012:  I was bragging to my granddaughter today about hard problems I had solved.   One of the hardest was Kirkman's Schoolgirl Problem; taking 4 years to develop a version which could find all 7 unique solutions. Today's review resulted in a small cosmetic upgrade to Version 3.2 of Kirkman's Schoolgirl Problem program in order to improve view-ability of the pages.

December 2, 2012:  A viewer uncovered an infrequent error in our slot machine program when the results the program sees as the dials stop spinning doesn't match what the user sees.  It turns out that it only happened  when the third dial's run time expired during the few milliseconds that it was being updated.  That has been corrected and a second slot machine with three payout conditions was added in Slot Machine, Version 2 posted today.   

December 16, 2012:  It has been a busy two weeks between deer hunting, family vacation planning for next June, and working on a problem that my Logic Solver program hasn't cracked yet.  The deer is in the freezer, and the planning is down to filling in a few details so two out of three isn't bad.  Logic Solver Version 5 posted today  moves a step closer to solving a really hard "Geocaching" puzzle submitted by viewer Martin several weeks ago.  Follow the link for more details but I'll probably post another update  in January.  For now, Christmas season has bubbled its way to the top of my  "ToDo" list.    

December 19, 2012:  It didn't take long for user Martin, (known as xMRi to the GeoCaching world), to point out what wasn't working in my program.  Logic Solver Version 5.1  has the fix that allows the program to  solve the  "Mystery Könige" puzzle previously described and fixes several additional problems.  All in all, the hours  spent by Martin finding and me fixing and enhancing the program has made a much improved product.  Thanks for all your help Martin.  It's been fun!

December 22, 2012:      Merry Christmas!

Time for one more small update before heading out to spend Christmas with a daughter and her family.   Nine year old Nathan is the youngest of our grandchildren, so Christmas at his house provides the best toys to play with!  In the meantime Clear Blank Lines Version 4.1 fixes a couple of small issues when removing blank lines which have embedded Tab characters and also not saving removed blank lines to the "Deleted lines" file.


December 30, 2012:  And a Happy New Year!

The flat tire is fixed, we have power back after a 4-day outage caused by a major ice storm here along the Blue Ridge, and Congress is pretending to avoid falling off the "fiscal cliff".  All is almost right with the world again.  Here's wishing that all of your (and my) problems in 2013 be no worse than these.

Quotes with advice for Congress

  • Courage

    • "There are no easy answers' but there are simple answers. We must have the courage to do what we know is morally right." ~ Ronald Reagan

    • "A nation which has forgotten the quality of courage, which in the past has been brought to public life, is not as likely to insist upon or regard that quality in its chosen leaders today - and in fact we have forgotten." ~ John F. Kennedy

  • Procrastination

    • "My evil genius Procrastination has whispered me to tarry 'til a more convenient season." ~ Mary Todd Lincoln

    • "Procrastination makes easy things hard, hard things harder." ~ Mason Cooley

  • Integrity

    • "Always do right! This will gratify some people and astonish the rest." ~ Mark Twain

To subscribe or unsubscribe from this newsletter, visit http://delphiforfun.org/newsletter.htm

372,000 site visits and 328,300 program downloads in the past 12 months!