Hi Danny,
sorry for the late response.
On Wed, 02 Jan 2013 23:08:49 -0000
"dannyjones183" <dannyjones183_at_yahoo.com> wrote:
> Hello Shlomi,
>
> It doesn't appear that we have a consensus.
By consensus do you mean between Gary, you and I?
> That may not be a big loss
> because I doubt if any of us will be sharing solutions ... or discussing
> them, which was the reason for my participation.
Actually, I was hoping that we will have one *exchange* (or maybe
*interchange*) format, which will be used to convert between solutions and have
several converters from and to the solution formats. This way, I can use it to
convert to Freecell Solver's "-sam -p -t"-like solutions, input them into
PySolFC (or in the future possibly also my own
enhanced version of
https://github.com/pharrington/Solitairey ) for animation,
and be able to present the solution in something that everyone is comfortable
with. My original plans for it were not that it would necessarily be very human
readable, but rather than it could serve as a useful backend for the converters.
I think this is a noble goal, because I often find solutions in the so-called
standard notation hard to decipher and follow, and think that the format you
proposed is quite adequate.
What I dislike about Gary's format is that the Freecell stacks, freecells and
foundations are notated in columns without a distinguishing mark, which is:
1. Hard to read at first (it gave me quite a few WTF? moments).
2. Requires a lot of training.
3. Will not be very compatible with other variants of Solitaire similar to
Freecell, which our solvers or other present and future solvers support (see:
“Game Types” here -
http://fc-solve.shlomifish.org/features.html ).
As a result, I don't think it is adequate, whether for humans and computers,
and am opposed to adopting it as a standard.
> I'm limited by the use
> of FcPro for playing back solutions -- partial or full. My plans were to
> use my proposed Exchange Format as a template that I'd manually fill
> with my solver's results ... and manually extract reformat other's
> results.
Manually? That sounds unnecessary. See
http://www.catb.org/esr/faqs/hacker-howto.html namely the part about “Boredom
and drudgery being evil”. Doing such stuff manually is not only time consuming,
but error prone. I suggest you look at
https://metacpan.org/release/Games-Solitaire-Verify (or a similar solution in a
different higher level language) that in the future allow us to easily
and quickly convert between the various formats of solutions and their
different representations in a non-error prone way. In case you don't know
Perl or similar languages that are higher level than C, I can suggest this link
-
http://code.wikia.com/wiki/Freenode_programming_channel_FAQ#I_want_to_learn_programming.3F_Which_language_should_I_start_with.3F
..
>
> Since I don't wish to consider my effort to date a total loss, I'm
> appending my latest version of the exchange format for possible future
> use. I wasn't happy with the previous qualifiers for the tableau:
> record. The best alternatives that came to mind were column_per_record
> and row_per_record. In addition, I've added a Comment block that allows
> user-to-user communication. See below.
>
Let me see…
>
> #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 // unrestricted/maximal multi-card moves allowed
> #Option WorryingBack // moves from foundation to tableau allowed
>
> #Begin Layout
> freecells: -- -- -- --
> foundation: -C -D -S -H
> tableau: column_per_record -or-
> tableau: row_per_record
> 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: column_per_record -or-
> tableau: row_per_record
> 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 Comment
> 73 5d KC fc the next move (is followed by)
> ___ 5h AC -C Horne automove
> ___ 4h 2C AC Horne automove
> ___ 6h 3C 2C Horne automove
> ___ 2h 4C 3C Horne automove
> #End Comment
>
> #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
>
Looks fine (mostly). I'm a bit hesistant of using "#" for something significant
instead of comments (because they are used as comments in most modern dynamic
languages, and Vim and other text editors also display them as comments by
default ), but this is bikeshedding (see
http://bikeshed.com/ ) and easy to
workaround, and I don't mind accepting it it.
>
> 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.
>
Sounds good.
Regards,
Shlomi Fish
--
-----------------------------------------------------------------
Shlomi Fish http://www.shlomifish.org/
Interview with Ben Collins-Sussman - http://shlom.in/sussman
“My only boss is God. And Chuck Norris who is his boss.”
Please reply to list if it's a mailing list post - http://shlom.in/reply .
Received on Sat Jan 12 2013 - 23:31:17 IST