From 0abb80120354b1ac3644335f56974017d3c80eac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Bri=C3=A8re?= Date: Wed, 29 Mar 2017 13:02:38 -0400 Subject: [PATCH] Define canMoveCards() for Hanafuda sequence stacks Any stack of Hanafuda cards is always deemed movable, even if it is out of sequence. The effect can easily be seen a game such as Firecracker, where: - Any stack can be dragged as a whole (but not released) - "Highlight piles" will highlight everything - Asking for a hint will ignore most valid moves This is due to Hanafuda_SequenceStack lacking a canMoveCards() method. --- pysollib/games/ultra/hanafuda_common.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pysollib/games/ultra/hanafuda_common.py b/pysollib/games/ultra/hanafuda_common.py index 254d15ed..6709c135 100644 --- a/pysollib/games/ultra/hanafuda_common.py +++ b/pysollib/games/ultra/hanafuda_common.py @@ -286,6 +286,9 @@ class Hanafuda_SequenceStack(Flower_OpenStack): return cards[0].rank == 0 or self.cap.base_rank == ANY_RANK return self.isHanafudaSequence([stackcards[-1], cards[0]]) + def canMoveCards(self, cards): + return self.basicCanMoveCards(cards) and self.isHanafudaSequence(cards) + class Oonsoo_SequenceStack(Flower_OpenStack): @@ -298,6 +301,9 @@ class Oonsoo_SequenceStack(Flower_OpenStack): return cards[0].rank == 0 or self.cap.base_rank == ANY_RANK return self.isHanafudaSequence([stackcards[-1], cards[0]], 0) + def canMoveCards(self, cards): + return self.basicCanMoveCards(cards) and self.isHanafudaSequence(cards, 0) + class FlowerClock_RowStack(Flower_OpenStack):