Since this came through in HTML, I’ll use red for my comments.
-Gary
> From: Shlomi Fish
> Sent: Thursday, November 29, 2012 4:02 AM
> To: mailto:fc-solve-discuss%40yahoogroups.com
> Cc: mailto:gary%40numin8r.us
> Subject: Re: Usable Solution vs. Any Solution
>
> Hi Gary,
>
> Freecell Solver has an option to display the cards inside each Freecell stack
> properly aligned inside columns instead of text lines. This is the default
> behaviour in order to maintain backwards compatibility. Here is an example
> position from «pi-make-microsoft-freecell-board -t 24 | fc-solve -t»:
>
> <<<<<<
> 3D 8H JH 9H H-5 C-A D-A S-4
> --- --- --- ---
>
> -- -- -- -- -- -- -- --
> 4C KS QC 2D 7H 9D 7S
> 2C QH 9S KD JS 8S 6C
> 9C 6H TH KH 7D
> 8C 5C TC TS 6S
> QS TD KC 5D
> JD 8D QD
> 7C JC
> 6D
> 5S
> 4D
> 3C
>
> >>>>
>
> The reason what I prefer adding the optional (but recommended) -p flag (for
> "Parseable" or "Perl" or whatever) is because Freecell stacks that are placed
> in lines are much easier to parse, and to search for using other UNIX (or
> UNIX-originated) text-processing tools, that make use of regular expressions:
>
> http://en.wikipedia.org/wiki/Regular_expression
>
> Another advantage is that those positions can be input as is to the solver,
> which accepts input with stacks represented as lines.
>
> While they may be a little harder for a human to read, I got used to that very
> quickly, and I think they outweigh the disadvantages.
> -----------------------
> RESPONSE: Your example above would be more understandable if along
> with the layout, there were some indication of the Game # and the moves
> that got to that position.
As noted in the pipeline the game number is 24, and I omitted the rest of the
solution, to reduce the length of the message, which is expected to remain the
same for the version of fc-solve.
I tried #24, but I must have been fooled by the fact that your layout is missing
column 4, originally headed by the 5D. I guess you squeeze out any empty
columns, but I wasn’t ready for that. Mine leaves empty columns and freecells
blank to avoid confusion.
Otherwise, I should note that:
1. fc-solve accepts any arbitrary layout as input, including those not in the
Microsoft Freecell deals, and those in mid-play.
Yes, of course, so does FFA and my Solver.
2. It does not have a built-in way to generate the MS Freecell deals on its own
(some of the freecell-solver-* range solvers do, however).
Including FFA and my Solver.
3. It always displays the initial board as the first board in the solution (at
least if it's not move-only).
FFA and my Solver can input or display any position (+a move in brackets)
and either step forward or backward from that position.
4. Displaying that will be against the UNIX Philosophy (see
http://www.catb.org/esr/writings/taoup/ ) which specifies that "a program
should do one thing and do it well". It won't be hard to create a program that
I’m not sure what you are referring to here, but I don’t see a Freecell Solver as
being like a Unix utility. It’s more like a word processor, it has to do a lot of
things and integrate them well.
will combine all the information in the deal number and the parseable solution
in a good way, but what do you do if you don't know the deal number or it
isn't valid (like if it's a PySol deal , a PySolFC deal or something else
entirely?) ? Oops... If there’s no deal number, you use a layout to begin with.
> My philosophy has always been that a little extra effort should be made by
> the software engineer to accommodate the user. That’s why I advocate
> columns rather than rows.
Well, I believe in that too, but you're essentially describing the contrast
between the UNIX culture and the Windows culture: I think I’m referring
to the Freecell culture, which I don’t think should be married to either of
the computers (although it does seem the more natural platform is Windows,
since that’s where it grew up).
http://www.joelonsoftware.com/articles/Biculturalism.html
That put aside, as an experienced user of the UNIX command-line, I found your
solver to be quite counter intuitive and user hostile. I could not even figure
it out from the documentation without your help (it just told me to use the
GUI, which I wanted to avoid). Sorry about that. Others have had a lot more
success, and without specifics, I’m not sure where your problem is coming from.
In any case, regarding the "putting stacks in columns" representation - this is
easy to generate using a short Perl / Python / etc. program based on a
representation that is easy to parse.
> ------------------------
> >
> > 7H 6H 9C TH 6C TC 2H 9D 3D 3C 2S AH
> > 6S 5S QS JH KS QC KC QH KD QD
> > 7D JC 4H 8C 6D 5D
> > 4C JD KH 5H 8D
> > 4D TS 4S 5C 7S
> > 3S 9H 3H JS
> > 8S TD
> > 9S
> > 8H
> > 7C
> > GAME #6276 is solved partially as follows: {17 1 1 0 3 4 1252 1253 2 2 0 0
> > 62 62 2000 110} 32 35 15 67 47 1a 13 1h 1b 21
> > 24 27 24 a2 8h 8a 87[27]14 b1
> > 71 72 72 7b 5c 5d 87 32 65 47
> > 45 Solved
>
> I don't understand the notation. Why do you have so many Freecell stacks?
> There should only be 8. What are the numbers inside the curly braces
> ({ .... }). What is the [27] inside the square brackets?
> -----------------------
> RESPONSE:
> The extra columns (I thought my explanation made it clear, but I guess not)
> are for the top cards of the home cells (first row) and the cards in the
> freecells (second row). These two sets of 4 cards are appended to the first
> to rows of cards in the 8 stacks. A better notation might be like yours, to
> put them onto an initial line of their own.
True.
Well, I have not read the entire explanation. Mea Culpa. Another Joel on
Software link of relevance is:
http://www.joelonsoftware.com/uibook/chapters/fog0000000062.html
Namely:
<<<<<
When you design user interfaces, it's a good idea to keep two principles in
mind:
1. Users don't have the manual, and if they did, they wouldn't read it.
2. In fact, users can't read anything, and if they could, they wouldn't want
to.
>>>>> FFA is my user interface, and since it’s the GUI, you won’t use it.
However, a software engineer always has to read the API manual, and
my interface was designed for communication with something like FFA.
It is also easy to invoke manually from a DOS window, as I designed it.
Since I’ve used quite a few command line interfaces, and don’t think
Unix is very user friendly compared to the wider world, I don’t think it’s
the best thing to base a standard on.
>
> The curly braces (see original text, just below) enclose parameters
> to FFA to allow it to reset some needed internal variables. They are not
> part of the notation, and do not need to be included for my Solver to parse
> the layout.
I see.
>
> The [27] is simply one of the moves of the solution. It is the next move.
> The move that continues from the given layout.
OK.
> ---------------------
> Well, it still suffers from several of the faults I noted in my original rant
> against the standard notation, and requires an explanation for laymen
> (including me) to parse.
> -------------------------
> RESPONSE: Everything requires an explanation to parse. Are the faults
> it suffers from related to ease of parsing? If not, perhaps you could use
> the example and indicate its faults explicitly.
Read my original reply. Some of the faults involve implicit automoves, and
"supermoves"/column-moves without an indication of the number of cards.
Read the other thread (Danny J & Michael K). I think with only one acceptable
definition of a Super Move and only two types of Automoves, you can probably
adjust. Clearly, move notation needs to know which type of Automove is used.
Any Supermove targeting an occupied column is unambiguous if it doesn’t
exceed the legal move length. If it targets an empty column, it has two forms:
Move a single card, or move the maximum legal number of cards. The
version involving a single card is only necessary when all the free cells are
full and there are two or more columns. Such instances are extremely rare,
but the zero-freecell version of game #1003256 does require this to solve it.
I don’t think any of the 4-freecell games in the 1st 100 million do, however.
Regards,
Shlomi Fish
--
----------------------------------------------------------
Shlomi Fish http://www.shlomifish.org/
UNIX Fortune Cookies - http://www.shlomifish.org/humour/fortunes/
mplayer 0.9.999.2010.03.11-rc5-adc83b19e793491b1c6ea0fd8b46cd9f32e592fc is
now available for download.
— Shlomi Fish and d3x.
Please reply to list if it's a mailing list post - http://shlom.in/reply .
Received on Thu Nov 29 2012 - 13:58:16 IST