shlomif / PySolFC

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

Playing cards back from foundation to tableau #199

Open cardset opened 3 years ago

cardset commented 3 years ago

Freecell, King Albert, Queen Victoria and maybe some other games.

It is possible to play cards back from foundation to tableau.

In my opinion this is not a legal move for this games.

Is this a bug or intention to make the game easier?

joeraz commented 3 years ago

I'm not sure what the original developers' intentions were. Those games were added long before I was involved in the project.

Regarding moving cards from the foundation, I've personally seen this rule go both ways between different solitaire apps and collections. Some always allow moving foundation cards, others never allow it unless it's a key part of the game (i.e. Aces and Kings), and other collections have different rules per game. Looking at written game rules, it's the same way - some say you can, others say you can't, most don't even mention it. I feel like people could argue either way on this, and if I was to change this, somebody reasonably could feel the change is the bug.

PySol sets the rules per game. For example, in PySol, you can move foundation cards in Klondike and FreeCell, but not Yukon. So if I wanted to change this, it would have to be game by game. I mean, it would be easy to change, but I'd to know all of the games that would need to be changed and change them individually.

From looking at the game library and commit history, I find that usually, when game rules are changed, the old version is either kept under a different name (often a "Relaxed" variant - I previously did this with the game Exit), or is otherwise updated to reset statistics.

My concern is basically that this could be a bit more of a can of worms than it might sound for a change that some people could object to. I'm hesitant to make changes to existing game rules, except to fix major bugs.