
What's New - March, 2005

March 31, 2005: The site has been reorganized somewhat this week in order to implement a new
DFF Library section of
the website. The library will hold non-visual units that are used in multiple programs here. Finding and updating all of the zipped source files when one of these general usage units changed was getting to be a hassle. We'll be migrating these units to a single library zipped file over time. It will require a separate
one-time download if you want to compile the programs, but I'll
identify those cases clearly. The first unit moved to the
library is TIntList, the
Integer List component.
In another step to simplify maintenance, all
indices of programs are now computer generated. This required
some changes to the navigational structure of the site. Use
the feedback link to let me know if you see any weird pages (one of
the symptoms if I messed up is a missing page title, there is also
the chance that some pages that were never completed have been
indexed).
March 28, 2005: An alert viewer
found that the input integers to Countdown
Plus problems were limited internally to the range of -128 to
+127, although larger values were accepted and displayed in the
result as though everything was OK. It wasn't, but it is
now. Input values can now be in the range -999 to +999
and target values in the range -9999 to +9999, for both to the
user and the program.
March
20, 2005: I spent most of the week working on Project
Euler problems, down to three remaining unsolved. It is
addictive, and somewhat frustrating for a "smart guy" to
see that 20 other people have solved a problem that you haven't
cracked (yet). But oh, what a rush when that
"Congratulations" message pops up! One
by-product of the work is today's posting over in the Math
section; a demo of Dijkstra's
Shortest Path graph searching algorithm. It's a clever
and efficient way to find the cheapest (shortest) way to get from
one place to another if you know the price (distance) between all
of the intermediate way points. It can solve graphs
with several thousand nodes and connections in under a
second! To help understand the algorithm, the demo
even describes the steps as it finds the desired path for a small
randomly generated
graph.
March12, 2005: CutList continues to
increase it's lead as the most popular download from
DFF. Which is good news and bad news, because real users
find real problems (good because they have been found and
fixed, bad because thousands of downloads may exhibit
the problem ). CutList
Version 2.1.2 recently posted finally corrects the decimal
separator problem which appears with European users where our
"decimal point" becomes their "decimal
comma". There was also a problem when items were
added to the material supply list. The origins of the added
pieces were not set properly which messed up the solution
displays. Saving and reloading the project corrected the
display. Now added pieces will display correctly even before
saving the file.
I decided to post the tips and techniques used to
handle the decimal separator problem over in the Decimal
Techniques section.
International Decimal "Points" demonstrates
the techniques and includes a replacement for the
"Val" procedure. Delphi's version is old,
old, old and knows about nothing but a dot "."
as a decimal separator.
 Finally,
today I posted a couple of Beginner's programs in Delphi
Techniques. Over the years, a number of short programs have
been written in response to specific user requests, trying to lead
them in the right direction without doing their homework
assignment for them. Two recent ones illustrate how to
draw on and modify a TImage canvas (a Parking lot in this
case) and how to use TChart to plot a set of function
values. Each program has less than 100 lines of code
and are available from the new Beginner's
page.
March 6, 2005: I have been
recompiling programs that use the "Combo" unit to
synchronize them with a forthcoming new and improved
version. Combo contains the code that generates combinations
and permutations used in many of our puzzle solving
programs. The new version will have many new functions but
the first step was to ensure compatibility with existing
programs. In the process I have uncovered a few bugs
not related to Combo usage. Here is a revised version
of Countdown Plus, a
program that emulates the mathematics of a British TV game show
(Countdown) and which requires players form expressions that
evaluate to a given value. I found many range checks and
overflow errors which have been fixed. As a test of
the fixes, and
"just for fun", I created a few expressions that
evaluate to the current year (2005) using all of the digits from 1
to 9.
|
1+(2+(3+(4+(5*(7*(9+(6*8)))))))
1+(4+(8+(6*(2+(5*(3+(7*9)))))))
1+(3+(6+(7*(2-(5-(4*(8*9)))))))
1+(2+(7+(5*(3-(9*(4-(6*8)))))))
2+(3+(5+(7*(6-(9*(1-(4*8)))))))
2+(5+(6+(4*(3-(9*(1-(7*8)))))))
1+(3+(6+(5*(7*(9+(8*(2+4)))))))
1+(2+(4+(6*(9*(5+(8*(7-3)))))))
1+(2+(4+(6*(9*(5-(8*(3-7)))))))
1+(3+(6-(5+(8*(2-(4*(7*9))))))) |
|
10 Expressions that = 2005 |
March 3, 2005: An international user pointed out that
the Sample projects included in the Cutlist downloads would not load properly because of
the decimal point difference. A fix in January generalized the decimal
separator field so that files created in Europe could be read there.
It never occurred to me that my samples, which already contain the
"proper" decimal point (.), would not read properly in
Europe. Cutlist Version 2.1.1, posted today, corrects this problem by identifying
the decimal separator of the creating system in each project file. All of
the sample project files have been recreated with this
information. I
also corrected a problem which added an extra blank space at the beginning of
each part name each time the project was saved. It is good to have real
users out there helping to make things better!
|