Hi Gary,
On Thu, 29 Nov 2012 10:14:38 -0800
"Gary Campbell" <gary_at_numin8r.us> wrote:
> From: Shlomi Fish
> Sent: Thursday, November 29, 2012 4:02 AM
> To: fc-solve-discuss_at_yahoogroups.com
> Cc: gary_at_numin8r.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.
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.
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).
3. It always displays the initial board as the first board in the solution (at
least if it's not move-only).
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
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...
> 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:
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).
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.
>>>>>
>
> 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.
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 - 11:43:00 IST