What's New - December, 2016
Time marches on, whether we welcome it or not. With Christmas fast approaching, I decided to get any postings for this month out of the way early. Here's the first/
Several months ago, I posted a program to solve a puzzle type
which requires placing letters in a grid so that no two alphabetically adjacent
letters are in adjacent grid cells, horizontally, vertically, or diagonally.
NoAdjacentNeighbors, V2.0 allows solving the first version of this puzzle
type that I've found that is not based on a 4x4 grid; This one is
5x3 and motivated me to update the program to allow multiple puzzle sizes.
I also added the ability to name, save, and restore puzzles. (After
reentering this one the first dozen or so times while testing, I decided
that saving/restoring was a good feature to have!)
December 12, 2016: TInteger is Delphi class supporting mathematical operations on arbitrarily large integers. Methods were added today to allow these integers to be converted to number bases other than 10. (Remember from middle school that each position in decimal represents a power of 10 -- the 1's column, the 10's column, the 100's column, etc. Binary numbers, base 2, have the 1's, 2',s, 4's, 8''s column, etc.). Any integer , even one with thousands of digits ,can now be converted to or from a string in any base from 2 to 256. More information at this Big Integers page. I have no good reason for doing this except perhaps just for the "fun of it".
December 21, 2016: A recent "simple" logic problem from my trusty Mensa Puzzle calendar caused me fits when tried solving it with my Logic Problem Solver program. The problem "Thanksgiving.prb", contains the clue "Chris ate more turkey than the person who ate the slowest". In my transcription from the calendar, I typed "fastest" instead of "slowest" which made the problem unsolvable. After many hours of looking for the non-existent program bug, I finally went back to the original and discovered the real problem (me!). Logic Problem Solve V5.7 posted today does a better job of diagnosing invalid rules as they are entered. I wouldn't detect my typing errors, but might shorten the time before rechecking inputs,