shlomif / PySolFC

A comprehensive, feature-rich, open source, and portable, collection of Solitaire games.
http://pysolfc.sourceforge.net/
GNU General Public License v3.0
445 stars 97 forks source link

[Feature Request] Add mahjong (not solitaire), domino, Chinese domino, etc. #280

Open GrimPixel opened 1 year ago

GrimPixel commented 1 year ago

There are still more games available. Here are what I have gathered (together with board games): https://polyglotclub.com/wiki/Language/Multiple-languages/Culture/Tabletop-Games

joeraz commented 1 year ago

Most of the games you describe are multi-person games. As PySolFC is a solitaire collection, the engine isn't really suited for building multi-player games. A lot of the options are very solitaire-specific, and to add multi-person games at all, we'd either need to add some sort of AI, an ability to play with others online, or ideally both. Either one of those would be an enormous undertaking, so I don't personally anticipate being able to add multi-person games anytime soon (personally, I think multi-player games would be better in a fork).

But if you know some single player games that would be a good fit, let me know, and I can add them to my list.

hajo4 commented 1 year ago

Well, some of those games are simple enough to do in pysol, without major changes:

joeraz commented 1 year ago

I'm afraid I have to disagree on that. The issue is not so much writing the AI as it is adjusting the engine to support the AI, and the fact that PySolFC's assist features are heavily geared towards solitaire games - the game needs a clear "win" and "perfect" condition for the statistics, and must rely largely on just a few types of moves.

I've been working with PySol long enough to be familiar with a lot of the engine's limitations - what I described above are just the issues I can think of off the top of my head. But I still think adding any of these games would be quite the project.

hajo4 commented 1 year ago

Thanks for the explainations !

So it looks like my idea for a game about pancake-sorting has better chances... It could be based on the matrix-games (or maybe lights-out):

The player is given a row of numbers to sort. Each move consists of selecting one of those numbers, and the order of all numbers to its right (or left) is reversed.

Btw. hints and demo don't work in matrix-games.

joeraz commented 1 year ago

Yes, something like that would probably be manageable.

I wouldn't be opposed to adding the word games or some sort of domino solitaire, but unless I get lots of extra help, I don't see those getting added anytime soon. I personally think games that use AI or a second player are better suited for a fork.

So I don't come off as too much of a pessimist here, there are some non-solitaire games that I identified that would be a good fit for PySol's engine, such as:

And a few others.