You might peek at my library HCard (it's on Hackage), it uses associated datatypes to allow for a very general playing-card interface. It was only ever a toy to play w/ Assoc. types for me, but I imagine it could be a decent starting point for someone interested in turning it into a real EDSL. It's got a
cribbage counter example program bundled with it.

/Joe



On Nov 7, 2009, at 5:54 AM, Felipe Lessa wrote:

Hi!

I would like to know if anybody has already thought of or tried
to code an EDSL for card games.  Ideally you should be able to
write the rules the games and get "for free":

- Game generator: given an input deck, construct the initial
  state of the game.

- Random game generator: besides just creating a random deck and
  using the item above, it should be nice to be able to randomly
  construct the game from the final positions.  This should
  guarantee that all random games are solvable.

- "Hints" generator: IOW list possible moves given a game state.

- Playable game: probably the EDSL should include at least some
  information to be able to properly place the cards on the
  screen.

- Game solver: this is somewhat harder to do efficiently, but an
  inneficient one should be doable.

- Demo mode: related to the above, an auto-play distract-me mode.

- Tutorial mode: show a screen for each of the rules written?

- ...anything more?

Just curious, this looks like a perfect job for an EDSL.  Also, I
guess anybody trying to do something like this should read
PySol's code to have some ideas.

--
Felipe.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to