Bug 200201

Summary: Simple Simon doesn’t support moving of card sequences using intermediate cards
Product: [Applications] kpat Reporter: Karl Ove Hufthammer <karl>
Component: generalAssignee: Stephan Kulow <coolo>
Status: RESOLVED WORKSFORME    
Severity: wishlist CC: coates, kde-games-bugs
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Image showing example decribed in the bug report

Description Karl Ove Hufthammer 2009-07-14 18:39:41 UTC
Version:           3.2 (using 4.3.60 (KDE 4.3.60 (KDE 4.4 >= 20090706)), compiled sources)
Compiler:          gcc
OS:                Linux (i686) release 2.6.27.25-170.2.72.fc10.i686

Simple Simon doesn’t support moving of sequences of cards that are not all in the same suit by using intermediate cards or empty columns. See the attached image for an example.

Here it should be possible to move the sequence ‘8 of hearts to 3 of diamonds’ onto the ‘9 of diamonds’ card directly. Instead one much manually move the ’7 of diamonds to 3 of diamonds’ to the empty column, move the ‘8 of hearts’ to the ’9 of diamonds’, and then move the ’7 of diamonds to 3 of diamonds’ to the ‘8 of hearts’.

Having support for such a convenience feature makes the game more fun for the user, who doesn’t have to do the obvious moves himself/herself.

See FreeCell in Kpat for an example of how this works.
Comment 1 Karl Ove Hufthammer 2009-07-14 18:45:38 UTC
Created attachment 35318 [details]
Image showing example decribed in the bug report
Comment 2 Parker Coates 2009-10-19 19:59:22 UTC
Freecell isn't a perfect example of what you're looking for. Like Simple Simon, Freecell only allows the player to pick up continuous series of cards. 

Internally, KPat performs two checks when the user tries to move a card. First it checks whether the rules allow removing the card(s) from the source pile. Then when the user drags the cards over the destination pile, it checks whether the rules allow adding the card(s) there.

To implement what you request we would have to check for all possible combinations of moves to every other pile before we can even let the player pick up a card. The algorithm to find the simplest route to move cards from pile A to pile B is also going to be pretty complex.

I guess in summary, this is an interesting idea, but I'm doubtful that anyone will jump on it. However, if someone does come up with a patch implementing this cleanly, there probably wouldn't be much resistance to it going in.
Comment 3 Karl Ove Hufthammer 2010-04-01 00:32:07 UTC
Just like to add that I don’t think it’s necessary for the *simplest* route to be used; it would be OK as long as just one *possible* route is used. (Of course, it starts to do very dumb moves, e.g., move a single card from A to B, and then from B to C, instead of moving it directly from A to C, then that would look very bad.)

(Similarly, using the demo mode, I sometimes see it doing things in what looks like not the optimal/shortest way, which can feel annoying, but isn’t really a *big* problem.)
Comment 4 Stephan Kulow 2011-01-26 15:43:52 UTC
moving single cards in freecell and moving complex structures like this are really two pair. I don't want kpat to be that kind of smart ass
Comment 5 Stephan Kulow 2011-01-28 15:30:01 UTC
now that someone else suggested it: what I reacted allergic against was "by using intermediate cards" - using empty piles is most likely fine and I actually would like to see the same for fortyandeight where I implemented it as rule without animation.
Comment 6 Stephan Kulow 2023-06-10 12:14:56 UTC
still no one wanting to implement this. Empty piles are used though