Well, I like Danny's notation for Worrying Back moves. Seems quite natural.
I don’t like a notation that looks like a programming language, however. I’m
not sure how much need there is for a standard when only a few people are
involved and when we already have a consensus for the moves of a solution
(at least for the most part). I think the rules for Horne and WKR automoves,
and the association between game #'s and card layouts, are well defined.
As for the notation for a layout and the extensions for uncommon moves,
we all seem to like our own and don’t appear likely to change. In the future,
I’ll probably modify my notation to add Danny’s Worry Back and put my home
and free cells on a line above the rest of the layout rather than extending them
to the right of the first two rows. I think a standard should present information
from our solvers to the rest of the world, and the world would probably like to
see it in a form that is most natural to them, which may not be the most natural
from the point of view of an LALR parser. At least that's my opinion. -Gary
By the way: That FreeCell site that gives very short solutions to the first million
games? The Player that ties into my solver, the "Faslo Freecell Autoplayer,”
takes those solutions and inputs them without any changes. So, they represent
a standard of sorts (that happens to agree with my "standard"). Likewise for
the solutions that are on Michael's website. So, there is a good start.
From: Shlomi Fish
Sent: Monday, December 31, 2012 12:50 AM
To: fc-solve-discuss_at_yahoogroups.com ; Gary Campbell
Cc: dannyjones183_at_yahoo.com
Subject: Re: Monologue: FreeCell Exchange Format
Hi Gary, Danny, and Michael,
is there a consensus among you that what Danny and I described below can be used
as a common exchange / interchange solution format for Freecell and similar
games? If so, I would like to start coding a converter to/from it to Freecell
Solver's solutions format. But I'd like to make sure there is a consensus.
Regards,
Shlomi Fish
On Mon, 24 Dec 2012 22:17:00 +0200
Shlomi Fish <mailto:shlomif%40shlomifish.org> wrote:
> Hi Danny (and all),
>
> sorry for the rather late response and happy Holidays. I hope you are not
> disappointed that the world did not end on the Winter Solstice, which means
> this will give us some more time (hopefully not too little) to improve our
> Patience-solvers and play Patience.
>
> On Sat, 22 Dec 2012 19:26:16 -0000
> "dannyjones183" <mailto:dannyjones183%40yahoo.com> wrote:
>
> > Hmmm. I'm going to reply to specific issues, and then append an update
> > to my suggested FreeCell exchange format. An important point to remember
> > is that I'm describing information about a single game over the process
> > of a single solution.
>
> OK.
>
> >
> > --- In mailto:fc-solve-discuss%40yahoogroups.com, Shlomi Fish wrote:
> > >
> > > Hi Danny,
> > >
> > > some comments about your proposal.
> > >
> > > On Sun, 16 Dec 2012 21:25:09 -0000
> > > "dannyjones183" dannyjones183_at_... wrote:
> > >
> > > > Just talking to myself about what I might use as a FreeCell exchange
> > > > format. Blank lines are optional.
> > > >
> > > >
> > > > #Begin FreeCell
> > > >
> > > > #Freecells 4
> > >
> > > Perhaps specify some other parameters such as the number of
> > columns/stacks ,
> > > the allowed move types / etc.
> > >
> >
> > Okay. Updated to:
> >
> > #Begin FreeCell 8x4e0 // 8-columns, 4-freecells, 0-ephemeral
> >
> > #Identity FcPro Game #6240 // strictly informational
> >
> > #Option KingOnly // only kings can be moved to empty columns
> > #Option NoHome // no manual moves to foundation/home cells
> > #Option Relaxed // I don't recall Michael Keller's definition
> > #Option ??? // accepting suggestions for other options
> >
>
> Sounds good.
>
> > > >
> > > > #Game 6240 -or-
> > >
> > > Well, there are other deal sets besides the Microsoft Windows deals
> > (e.g: Old
> > > PySol, PySolFC, etc.) and so I suggest you give a way to specify them.
> > >
> > > I also suggest you always give the initial layout.
> > >
> >
> > I have dropped the #Game record and added the #Identify record. The
> > initial layout is now required instead of being optional. You'll notice
> > that I didn't include #Option FourCell. That's because the initial
> > layout would indicate if the last four cards are dealt to the freecells
> > instead of row seven of the tableau.
>
> OK.
>
> >
> >
> > > >
> > > > #Begin Layout
> > > > freecells: ** ** ** **
> > > > foundation: *C *D *S *H
> > >
> > > I think doing something like Freecell Solver's
> > >
> > >
> > > Foundations: H-0 C-0 D-0 S-0
> > > >>>
> > >
> > > or:
> > >
> > >
> > > Foundations: H-6 C-4 D-A S-7
> > > >>>
> > >
> >
> > I've replaced { ** } with { -- } for empty cells. I've replaced { *C *D
> > *S *H } with { -C -D -S -H } in the foundation. The order doesn't matter
> > since each suit is represented.
>
> I personally don't mind "**" instead of "--", but "--" is also good.
>
> >
> > As for your suggested notation for the foundation, I find it
> > unacceptable. H-6 is not used in the tableau, and I don't think the
> > foundation warrants a separate designation for cards there. Here's an
> > updated example:
> >
> > foundation: -C 3D -S 4H
> >
>
> OK, I'm not fanatical about it. You can also do "0C" instead of "-C".
>
> >
> > > would be preferable. I think it's a good idea to mark empty Freecells
> > as "**"
> > > or "-" or whatever instead of Freecell Solver "-p -t sam"'s empty
> > space in the
> > > middle, which is harder to parse.
> > >
> > > > tableau: column-wise -or- row-wise
> > >
> > > column-wise or row-wise? Which one? Is it specified in the format?
> >
> > I meant that either tableau: column-wise or tableau: row-wise would be
> > used to define the subsequent placement of the cards in the tableau.
> > Gary and I tend to use column-wise, while you tend to use row-wise.
>
> OK. Having it either way will add some complexity to an implementation of a
> parser (that will have to parse it, instead of emit it, which is
> easier). But it may be a good idea.
>
> >
> > I think that Horne automoves are a defacto property of FreeCell and are
> > not listed by many solvers. It would probably place an extra burden on
> > most users to include them. However, if you find them to be necessary,
> > then the standard can be expanded so they are designated by appending an
> > { _at_ } character to the move.
>
> OK. I think they should be possibly available for verification. PySol /
> PySolFC, for example, do not do automoves unless you tell it to, and then it
> will move stuff without respecting Horne's Play.
>
> >
> >
> >
> > #Begin FreeCell 8x4e0 // 8-columns, 4-freecells, 0-ephemeral
> >
> > #Identity FcPro Game #6240
> >
> > #Option KingOnly // only kings can be moved to empty columns
> > #Option NoHome // no manual moves to foundation/home cells
> > #Option Relaxed // I don't recall Michael Keller's definition
> > #Option ??? // accepting suggestions for other options
> >
> > #Begin Layout
> > freecells: -- -- -- --
> > foundation: -C -D -S -H
> > tableau: row-wise -or-
> > tableau: column-wise
> > 8S QS 9C 9H TS TH KS AD
> > 8D 7H AS 2C 2S 3D 6S 3S
> > JH JC JS 9D AC 5H 4H 3C
> > 6C 6D 8H 7S KC 5D 4S 2H
> > TC 6H 8C 5C 7D 9S QD QC
> > 4D QH KH 7C 5S JD AH TD
> > 4C 3H KD 2D -- -- -- --
> > #End Layout
> >
> > #Begin Moves
> > 4a 4b 1c 14 45 8d 83 2h 63 a8
> > 54 13 6a c6 45 61_ 85_ 58 54_ 6c
> > 61 84 a6 8a 1h d8 68 6d 45_ b6
> > 2b 26 42 64 24 26 d2 27_ 46 56_
> > 87 8d c8 18 12_ 1c 17 54 82 51
> > b5 64_ 8b d8 78_ 75_ 85_ 8d b8 7b
> > 78 7h 71 b7 46_ 81_ d8 58_ 48_ 43
> > 57_ 5b
> > #End Moves
> >
> > #Begin Layout
> > freecells: 3S QH JH --
> > foundation: -C 3D -S 4H
> > tableau: row-wise -or-
> > tableau: column-wise
> > 8S QS 9C 9H TS 7C KS TD
> > 7D 7H AS 2C 2S 6D QD 9S
> > 6S 6C JS -- AC 5C JC 8D
> > 5H 5D 8H -- KC 4D TH 7S
> > 4S 4C 8C -- -- 3C -- 6H
> > -- -- KH -- -- -- -- 5S
> > -- -- KD -- -- -- -- --
> > -- -- QC -- -- -- -- --
> > -- -- JD -- -- -- -- --
> > -- -- TC -- -- -- -- --
> > -- -- 9D -- -- -- -- --
> > #End Layout
> >
> > #Begin Moves
> > 5d 6h 2h 6h 2h 6h 56 45
> > c4 34_ 6c 16 1h 12 1h 15 43_ d1
> > b1 53 8d 8h 71_ 54_ a5 17_ 1b 1a
> > d1 23_ 2d b2 1b d1 72_ 6d a6 27_
> > 26 c2 34_ 6a 6c a6 2a c2 8c 8h
> > 3h 87 8h c8 31_ 5c 62 b5 a6 13_
> > 72_ 7b 31_ 8a b7 c8 13_ 1b 27_ a1
> > 5c 72_ d5 6a 43_ b6 5d 46_ c5 36_
> > d4 1b 3c 3h 7h 27_ b1 4d 72_ 3b
> > 3h c4 1c 31 3h c3 4c b1 6b 6h
> > c4 32_ 3c
> > #End Moves
> >
> > #End FreeCell
> >
> >
> > In the foundation, cards { -C -D -S -H } are placeholders and have a
> > rank of zero. In all other instances, { -- } represents an empty cell.
> >
> > For Moves, the underscore { _ } character signifies a multi-card move
> > using the maximum number of cards possible. Substituting vN for the
> > underscore character signifies moving only N cards. If neither of the
> > aforementioned extensions occur, then a single-card move is assumed.
> >
> > Only Horne automoves are allowed to occur outside the moves listed.
> >
> >
>
> OK, sounds good. We may be violating what Aesop described in
> http://www.bartleby.com/17/1/62.html (executive summary: “PLEASE ALL,
> AND YOU WILL PLEASE NONE.”) or it may be a “design by committee”, but I think
> there's progress. Anyway, like I said, the aim is to create an interchange
> format to convert from and to the solvers’s proprietary/custom solution
> formats.
>
> Regards,
>
> Shlomi Fish
>
--
----------------------------------------------------------
Shlomi Fish http://www.shlomifish.org/
Apple Inc. is Evil - http://www.shlomifish.org/open-source/anti/apple/
I also have versions of this code in COBOL.NET, Intercal, PDP‐10 Assembly, J,
APL, Windows NT 4.0 Batch script and Autocad Lisp — I’m sure you can handle
all of them because none of them is Perl. ;-).
Please reply to list if it's a mailing list post - http://shlom.in/reply .
Received on Mon Dec 31 2012 - 07:20:48 IST