diff --git a/pysollib/games/acesup.py b/pysollib/games/acesup.py index 3ddaa15f..e513061c 100644 --- a/pysollib/games/acesup.py +++ b/pysollib/games/acesup.py @@ -26,6 +26,7 @@ from pysollib.games.montecarlo import MonteCarlo_RowStack from pysollib.layout import Layout from pysollib.stack import \ AbstractFoundationStack, \ + AutoDealTalonStack, \ BasicRowStack, \ DealRowTalonStack, \ OpenStack, \ @@ -34,7 +35,6 @@ from pysollib.stack import \ Spider_RK_Foundation, \ Stack, \ StackWrapper, \ - TalonStack, \ isRankSequence from pysollib.util import ACE, ANY_RANK, ANY_SUIT, NO_RANK, \ UNLIMITED_ACCEPTS, \ @@ -280,7 +280,7 @@ class Cover_RowStack(MonteCarlo_RowStack): class Cover(AcesUp): Foundation_Class = StackWrapper(AbstractFoundationStack, max_accept=0) - Talon_Class = TalonStack + Talon_Class = AutoDealTalonStack RowStack_Class = StackWrapper(Cover_RowStack, max_accept=1) FILL_STACKS_AFTER_DROP = 0 # for MonteCarlo_RowStack diff --git a/pysollib/games/curdsandwhey.py b/pysollib/games/curdsandwhey.py index 3459387d..ab5a095b 100644 --- a/pysollib/games/curdsandwhey.py +++ b/pysollib/games/curdsandwhey.py @@ -31,6 +31,7 @@ from pysollib.mygettext import _ from pysollib.stack import \ AC_RowStack, \ AbstractFoundationStack, \ + AutoDealTalonStack, \ BasicRowStack, \ DealRowTalonStack, \ InitialDealTalonStack, \ @@ -373,7 +374,7 @@ class TrustyTwelve_Hint(AbstractHint): class TrustyTwelve(Game): Hint_Class = TrustyTwelve_Hint - TALON_CLASS = TalonStack + TALON_CLASS = AutoDealTalonStack ROWSTACK_CLASS = RK_RowStack def createGame(self, rows=12): diff --git a/pysollib/games/golf.py b/pysollib/games/golf.py index a26d0d6b..c5afe296 100644 --- a/pysollib/games/golf.py +++ b/pysollib/games/golf.py @@ -33,6 +33,7 @@ from pysollib.mygettext import _ from pysollib.pysoltk import MfxCanvasText from pysollib.stack import \ AbstractFoundationStack, \ + AutoDealTalonStack, \ BasicRowStack, \ DealRowTalonStack, \ InitialDealTalonStack, \ @@ -810,7 +811,7 @@ class Vague(Game): self.setSize(layout.XM+maxrows*layout.XS, layout.YM+(rows+1)*layout.YS) x, y = layout.XM, layout.YM - s.talon = TalonStack(x, y, self) + s.talon = AutoDealTalonStack(x, y, self) layout.createText(s.talon, 'ne') x, y = layout.XM+2*layout.XS, layout.YM diff --git a/pysollib/games/montecarlo.py b/pysollib/games/montecarlo.py index cb15215c..f875a328 100644 --- a/pysollib/games/montecarlo.py +++ b/pysollib/games/montecarlo.py @@ -27,6 +27,7 @@ from pysollib.hint import DefaultHint from pysollib.layout import Layout from pysollib.stack import \ AbstractFoundationStack, \ + AutoDealTalonStack, \ BasicRowStack, \ DealRowRedealTalonStack, \ InitialDealTalonStack, \ @@ -316,7 +317,7 @@ class SimplePairs(MonteCarlo): max_accept=1, max_cards=2, dir=0, base_rank=NO_RANK)) x, y = l.XM, l.YM + 3*l.YS//2 - s.talon = TalonStack(x, y, self, max_rounds=1) + s.talon = AutoDealTalonStack(x, y, self, max_rounds=1) l.createText(s.talon, "s") x = x + 5*l.XS s.foundations.append(self.Foundation_Class(x, y, self, suit=ANY_SUIT, @@ -851,7 +852,7 @@ class DerLetzteMonarch(Game): class TheLastMonarchII(DerLetzteMonarch): - Talon_Class = TalonStack + Talon_Class = AutoDealTalonStack def createGame(self): DerLetzteMonarch.createGame(self, texts=True) @@ -883,7 +884,7 @@ class DoubletsII(Game): dir=0, base_rank=NO_RANK)) x += l.XS x, y = l.XM, self.height-l.YS - s.talon = TalonStack(x, y, self) + s.talon = AutoDealTalonStack(x, y, self) l.createText(s.talon, 'n') x, y = self.width-l.XS, self.height-l.YS diff --git a/pysollib/games/pyramid.py b/pysollib/games/pyramid.py index 0278357e..90df5d2d 100644 --- a/pysollib/games/pyramid.py +++ b/pysollib/games/pyramid.py @@ -28,6 +28,7 @@ from pysollib.layout import Layout from pysollib.pysoltk import MfxCanvasText from pysollib.stack import \ AbstractFoundationStack, \ + AutoDealTalonStack, \ BasicRowStack, \ DealReserveRedealTalonStack, \ DealRowTalonStack, \ @@ -37,7 +38,6 @@ from pysollib.stack import \ ReserveStack, \ Stack, \ StackWrapper, \ - TalonStack, \ WasteStack, \ WasteTalonStack, \ getNumberOfFreeStacks @@ -458,7 +458,7 @@ class Thirteens(Pyramid): x += layout.XS y += layout.YS x, y = layout.XM, self.height-layout.YS - s.talon = TalonStack(x, y, self) + s.talon = AutoDealTalonStack(x, y, self) layout.createText(s.talon, 'n') x, y = self.width-layout.XS, self.height-layout.YS s.foundations.append(Pyramid_Foundation(x, y, self, @@ -543,7 +543,7 @@ class Elevens(Pyramid): layout.YM + (rows + rp) * layout.YS) x, y = self.width-layout.XS, layout.YM - s.talon = TalonStack(x, y, self) + s.talon = AutoDealTalonStack(x, y, self) layout.createText(s.talon, 's') x, y = self.width-layout.XS, self.height-layout.YS s.foundations.append(AbstractFoundationStack(x, y, self, @@ -1420,7 +1420,7 @@ class Hurricane(Pyramid): x += layout.XS x, y = layout.XM, layout.YM - s.talon = TalonStack(x, y, self) + s.talon = AutoDealTalonStack(x, y, self) layout.createText(s.talon, 'ne') y += 2*layout.YS s.foundations.append(AbstractFoundationStack(x, y, self, diff --git a/pysollib/games/spider.py b/pysollib/games/spider.py index f1cae684..eacc97da 100644 --- a/pysollib/games/spider.py +++ b/pysollib/games/spider.py @@ -34,6 +34,7 @@ from pysollib.stack import \ AC_FoundationStack, \ AC_RowStack, \ AbstractFoundationStack, \ + AutoDealTalonStack, \ BasicRowStack, \ DealRowTalonStack, \ InitialDealTalonStack, \ @@ -1222,7 +1223,7 @@ class Bebop(Game): s.rows.append(RK_RowStack(x, y, self)) x += l.XS x, y = l.XM, l.YM - s.talon = TalonStack(x, y, self) + s.talon = AutoDealTalonStack(x, y, self) l.createText(s.talon, 'ne') l.defaultStackGroups() diff --git a/pysollib/games/sultan.py b/pysollib/games/sultan.py index 7a37be21..b8c66d3c 100644 --- a/pysollib/games/sultan.py +++ b/pysollib/games/sultan.py @@ -28,6 +28,7 @@ from pysollib.layout import Layout from pysollib.stack import \ AC_FoundationStack, \ AbstractFoundationStack, \ + AutoDealTalonStack, \ BasicRowStack, \ DealRowRedealTalonStack, \ DealRowTalonStack, \ @@ -41,7 +42,6 @@ from pysollib.stack import \ SS_RowStack, \ Stack, \ StackWrapper, \ - TalonStack, \ UD_AC_RowStack, \ UD_SS_RowStack, \ WasteStack, \ @@ -1219,7 +1219,7 @@ class Grandee(Game): class Turncoats(Grandee): - Talon_Class = TalonStack + Talon_Class = AutoDealTalonStack RowStack_Class = StackWrapper(UD_AC_RowStack, base_rank=NO_RANK) def createGame(self): diff --git a/pysollib/stack.py b/pysollib/stack.py index da045b05..5e0dd2bf 100644 --- a/pysollib/stack.py +++ b/pysollib/stack.py @@ -1976,6 +1976,12 @@ class TalonStack(Stack, Stack.resize(self, xf, yf, widthpad=widthpad, heightpad=heightpad) +# Use for games that do not allow manual dealing from the talon. +class AutoDealTalonStack(TalonStack): + def canDealCards(self): + return False + + # A single click deals one card to each of the RowStacks. class DealRowTalonStack(TalonStack): def dealCards(self, sound=False):