joshuaauerbachwatson / anyCards

Multi-person card game with no built-in rules
Apache License 2.0
0 stars 0 forks source link

Add auto-yield property to boxes #48

Closed joshuaauerbachwatson closed 1 month ago

joshuaauerbachwatson commented 2 months ago

When playing many card games, there is a natural indication of when a turn is over. For example, in Gin Rummy a turn ends when a card is placed in the discard pile. It would be nice to be able to specify some "auto-yield" rules.

In the absence of this, players tend to forget to press the yield button (it's a seemingly unnecessary step) and play can get disordered.

It's tricky to do this without getting too specific. The specific rule for Gin Rummy could be covered by having an extra property of discard boxes (that they cause yields). But, is that too specific?

joshuaauerbachwatson commented 1 month ago

The specific rule for Gin Rummy could be covered by having an extra property of discard boxes (that they cause yields). But, is that too specific?

There's no good way to answer that question directly . We need a good representative set of games that we make "easy to play" in hopes that other games resemble those sufficiently to benefit.

So, I will add the specific "auto-yield" feature to discard boxes and probably call it sufficient for the moment.

joshuaauerbachwatson commented 1 month ago

Auto-yield does appear to be working. However, it takes a second movement of a card that was in the private area before it will snap in to the discard box. That's probably because the card remains labelled private until after the drop action is completed.

joshuaauerbachwatson commented 1 month ago

it takes a second movement of a card that was in the private area before it will snap in to the discard box. That's probably because the card remains labelled private until after the drop action is completed.

Yes, and it's fixed now. I would almost be ready to declare victory except that there's a usability issue when a player wants to both discard and do other things (like meld or knock in Rummy-like games). If the player discards first, he is stuck because he can no longer make the additional moves required. I could decide that's just the way it is but would like to think about it some more. I am committing progress to date.

joshuaauerbachwatson commented 1 month ago

I think there are a number of workarounds for the limitations of the current auto-yield (using Gin Rummy example).

  1. Don't use it, and yield manually instead.
  2. Discard the last card to the side of the pile instead of on the pile, allowing you to lay out your melds before moving the card onto the pile.
  3. Keep the last card in your hand until all the melds are laid out.

These are far from ideal. But, I am starting to find that there are many usability issues in the game, including the fact that strict alternation of turns is not good for some games (e.g. Go Fish). So, let's call this change good enough for the moment as I think about what changes to the game will make it more usable.