From e1bc7906641f84d5327078b554fb91c19841a0fd Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Tue, 18 Apr 2017 10:45:10 +0300 Subject: [PATCH] flake8 - games/s* --- pysollib/games/takeaway.py | 31 +++++++++++++------- pysollib/games/terrace.py | 57 ++++++++++++++++++++++++------------ pysollib/games/threepeaks.py | 32 ++++++++++---------- pysollib/games/tournament.py | 40 +++++++++++++++---------- tests/style/py-flake8.t | 2 +- 5 files changed, 100 insertions(+), 62 deletions(-) diff --git a/pysollib/games/takeaway.py b/pysollib/games/takeaway.py index d32fde55..424164cb 100644 --- a/pysollib/games/takeaway.py +++ b/pysollib/games/takeaway.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- mode: python; coding: utf-8; -*- -# ---------------------------------------------------------------------------## +# --------------------------------------------------------------------------- # # Copyright (C) 1998-2003 Markus Franz Xaver Johannes Oberhumer # Copyright (C) 2003 Mt. Hood Playing Card Co. @@ -19,22 +19,31 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . # -# ---------------------------------------------------------------------------## +# --------------------------------------------------------------------------- __all__ = [] # imports -import sys # PySol imports -from pysollib.mygettext import _, n_ +from pysollib.mygettext import _ from pysollib.gamedb import registerGame, GameInfo, GI -from pysollib.util import * -from pysollib.mfxutil import kwdefault -from pysollib.stack import * from pysollib.game import Game from pysollib.layout import Layout -from pysollib.hint import AbstractHint, DefaultHint, CautiousDefaultHint + +from pysollib.util import ANY_RANK, ANY_SUIT, JACK, KING, QUEEN + +from pysollib.stack import \ + AC_RowStack, \ + AbstractFoundationStack, \ + BasicRowStack, \ + InitialDealTalonStack, \ + OpenStack, \ + Stack, \ + UD_RK_RowStack, \ + isAlternateColorSequence, \ + StackWrapper + # ************************************************************************ # * Take Away @@ -110,6 +119,7 @@ class TakeAway(Game): class FourStacks_RowStack(AC_RowStack): getBottomImage = Stack._getReserveBottomImage + class FourStacks(Game): def createGame(self): # create layout @@ -159,7 +169,7 @@ class Striptease_RowStack(UD_RK_RowStack): return True r1, r2 = self.cards[-1].rank, cards[0].rank if ((r1 == JACK and r2 == KING) or - (r2 == JACK and r1 == KING)): + (r2 == JACK and r1 == KING)): return True return ((r1+1) % 13 == r2 or (r2+1) % 13 == r1) @@ -224,7 +234,7 @@ class Striptease(TakeAway): if r1 == QUEEN or r2 == QUEEN: return False if ((r1 == JACK and r2 == KING) or - (r2 == JACK and r1 == KING)): + (r2 == JACK and r1 == KING)): return True return ((r1+1) % 13 == r2 or (r2+1) % 13 == r1) @@ -236,4 +246,3 @@ registerGame(GameInfo(335, FourStacks, "Four Stacks", GI.GT_1DECK_TYPE | GI.GT_OPEN, 1, 0, GI.SL_MOSTLY_SKILL)) registerGame(GameInfo(654, Striptease, "Striptease", GI.GT_1DECK_TYPE, 1, 0, GI.SL_MOSTLY_SKILL)) - diff --git a/pysollib/games/terrace.py b/pysollib/games/terrace.py index c3a1d038..1d088b00 100644 --- a/pysollib/games/terrace.py +++ b/pysollib/games/terrace.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- mode: python; coding: utf-8; -*- -# ---------------------------------------------------------------------------## +# --------------------------------------------------------------------------- # # Copyright (C) 1998-2003 Markus Franz Xaver Johannes Oberhumer # Copyright (C) 2003 Mt. Hood Playing Card Co. @@ -19,27 +19,37 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . # -# ---------------------------------------------------------------------------## +# --------------------------------------------------------------------------- __all__ = [] # imports -import sys # PySol imports -from pysollib.mygettext import _, n_ +from pysollib.mygettext import _ from pysollib.gamedb import registerGame, GameInfo, GI -from pysollib.util import * from pysollib.mfxutil import kwdefault -from pysollib.stack import * from pysollib.game import Game from pysollib.layout import Layout -from pysollib.hint import AbstractHint, DefaultHint, CautiousDefaultHint +from pysollib.hint import CautiousDefaultHint + +from pysollib.util import KING, NO_RANK + +from pysollib.stack import \ + AC_FoundationStack, \ + AC_RowStack, \ + OpenStack, \ + SS_FoundationStack, \ + Stack, \ + StackWrapper, \ + WasteStack, \ + WasteTalonStack # ************************************************************************ # * # ************************************************************************ + class Terrace_Talon(WasteTalonStack): def canDealCards(self): if self.game.getState() == 0: @@ -102,12 +112,14 @@ class Terrace_RowStack(AC_RowStack): def moveMove(self, ncards, to_stack, frames=-1, shadow=-1): state = self.game.getState() if state > 0: - AC_RowStack.moveMove(self, ncards, to_stack, frames=frames, shadow=shadow) + AC_RowStack.moveMove( + self, ncards, to_stack, frames=frames, shadow=shadow) return assert to_stack in self.game.s.foundations assert ncards == 1 assert not self.game.s.waste.cards - self.game.moveMove(ncards, self, to_stack, frames=frames, shadow=shadow) + self.game.moveMove( + ncards, self, to_stack, frames=frames, shadow=shadow) for s in self.game.s.foundations: s.cap.base_rank = to_stack.cards[0].rank freerows = [s for s in self.game.s.rows if not s.cards] @@ -151,7 +163,8 @@ class Terrace(Game): # create stacks x, y = l.XM + w1, l.YM - s.talon = self.Talon_Class(x, y, self, max_rounds=max_rounds, num_deal=num_deal) + s.talon = self.Talon_Class( + x, y, self, max_rounds=max_rounds, num_deal=num_deal) l.createText(s.talon, "sw") x = x + l.XS s.waste = WasteStack(x, y, self) @@ -227,6 +240,7 @@ class Terrace(Game): class QueenOfItaly(Terrace): Foundation_Class = StackWrapper(Terrace_AC_Foundation, max_move=1) + def fillStack(self, stack): pass @@ -277,8 +291,10 @@ class Wood_RowStack(AC_RowStack): return from_stack is self.game.s.waste return from_stack not in self.game.s.reserves + class Wood(BlondesAndBrunettes): RowStack_Class = StackWrapper(Wood_RowStack, mod=13, max_move=1) + def fillStack(self, stack): pass @@ -298,8 +314,10 @@ class Signora(Terrace): class Madame(Terrace): INITIAL_RESERVE_CARDS = 15 + def createGame(self): Terrace.createGame(self, rows=10, playcards=20) + def startGame(self): Terrace.startGame(self, nrows=10) @@ -336,10 +354,13 @@ class MamySusan(Terrace): def fillStack(self, stack): pass + def _restoreGameHook(self, game): pass + def _loadGameHook(self, p): pass + def _saveGameHook(self, p): pass @@ -372,7 +393,7 @@ class BastilleDay_BastilleStack(Stack): return 1 def getHelp(self): - return '' # FIXME + return '' # FIXME class BastilleDay(Game): @@ -399,7 +420,7 @@ class BastilleDay(Game): x, y = l.XM, l.YM+l.YS+l.TEXT_HEIGHT for i in range(8): - s.foundations.append(SS_FoundationStack(x, y, self, suit=i%4)) + s.foundations.append(SS_FoundationStack(x, y, self, suit=i % 4)) x = x + l.XS x, y = l.XM, l.YM+2*l.YS+l.TEXT_HEIGHT for i in range(8): @@ -408,17 +429,17 @@ class BastilleDay(Game): l.defaultStackGroups() - def _shuffleHook(self, cards): # move Kings to top - cards = self._shuffleHookMoveToTop(cards, - lambda c: (c.rank == KING, None)) + cards = self._shuffleHookMoveToTop( + cards, + lambda c: (c.rank == KING, None)) # move any 4 cards to top cards = cards[4:]+cards[:4] return cards def startGame(self, nrows=4): - for i in range(12): # deal to Bastille + for i in range(12): # deal to Bastille self.s.talon.dealRow(flip=0, rows=[self.s.reserves[0]], frames=0) for i in range(9): self.s.talon.dealRow(rows=[self.s.reserves[-1]], frames=0) @@ -433,14 +454,13 @@ class BastilleDay(Game): if self.demo: r = self.s.reserves[0] if r.canDealCards(): - ##self.demo.last_deal = [] # don't check last deal + # self.demo.last_deal = [] # don't check last deal return r.dealCards(sound=sound) return Game.dealCards(self, sound=sound) shallHighlightMatch = Game._shallHighlightMatch_AC - # register the game registerGame(GameInfo(135, Terrace, "Terrace", GI.GT_TERRACE, 2, 0, GI.SL_MOSTLY_SKILL)) @@ -462,4 +482,3 @@ registerGame(GameInfo(582, Wood, "Wood", GI.GT_TERRACE, 2, 0, GI.SL_BALANCED)) registerGame(GameInfo(637, BastilleDay, "Bastille Day", GI.GT_TERRACE, 2, 0, GI.SL_BALANCED)) - diff --git a/pysollib/games/threepeaks.py b/pysollib/games/threepeaks.py index d5ee6987..f3aca782 100644 --- a/pysollib/games/threepeaks.py +++ b/pysollib/games/threepeaks.py @@ -26,23 +26,27 @@ __all__ = [] # Imports # PySol imports -from pysollib.mygettext import _, n_ +from pysollib.mygettext import _ from pysollib.gamedb import registerGame, GameInfo, GI -from pysollib.util import * from pysollib.mfxutil import kwdefault -from pysollib.stack import * from pysollib.game import Game from pysollib.layout import Layout -from pysollib.hint import AbstractHint, DefaultHint, CautiousDefaultHint from pysollib.pysoltk import MfxCanvasText from golf import Golf_Waste, Golf_Hint +from pysollib.util import ANY_RANK + +from pysollib.stack import \ + OpenStack, \ + StackWrapper, \ + WasteTalonStack # ************************************************************************ # * Three Peaks Row Stack # ************************************************************************ + class ThreePeaks_TalonStack(WasteTalonStack): def dealCards(self, sound=False): @@ -79,7 +83,8 @@ class ThreePeaks_RowStack(OpenStack): OpenStack.__init__(self, x, y, game, **cap) def basicIsBlocked(self): - r, step = self.game.s.rows, (3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9) + r = self.game.s.rows + step = (3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9) i = self.id while i < 18: i = i + step[i] @@ -111,7 +116,6 @@ class ThreePeaks(Game): l, s = Layout(self), self.s # set window - decks = self.gameinfo.decks # compute best XOFFSET xoffset = int(l.XS * 8 / self.gameinfo.ncards) if xoffset < l.XOFFSET: @@ -158,10 +162,11 @@ class ThreePeaks(Game): # Create text for scores if self.preview <= 1: - self.texts.info = MfxCanvasText(self.canvas, - l.XM + l.XS * 3, h - l.YM, - anchor="sw", - font=self.app.getFont("canvas_default")) + self.texts.info = MfxCanvasText( + self.canvas, + l.XM + l.XS * 3, h - l.YM, + anchor="sw", + font=self.app.getFont("canvas_default")) # Define stack groups l.defaultStackGroups() @@ -206,7 +211,7 @@ class ThreePeaks(Game): def getHandScore(self): # FIXME: bug #2937253 score, i = self.hand_score, 1 - if 0: #self.busy: + if 0: # self.busy: return score # First count the empty peaks for r in self.s.rows[:3]: @@ -220,7 +225,7 @@ class ThreePeaks(Game): if self.sequence and len(self.s.waste.cards) - 1: score = score + i * 2 ** int((self.sequence - 1) / 4) self.hand_score = score - #print 'getHandScore: score:', score + # print 'getHandScore: score:', score return score def canUndo(self): @@ -260,12 +265,9 @@ class ThreePeaksNoScore(ThreePeaks): return True - registerGame(GameInfo(22216, ThreePeaks, "Three Peaks", GI.GT_PAIRING_TYPE | GI.GT_SCORE, 1, 0, GI.SL_BALANCED, altnames=("Tri Peaks",) )) registerGame(GameInfo(22231, ThreePeaksNoScore, "Three Peaks Non-scoring", GI.GT_PAIRING_TYPE, 1, 0, GI.SL_BALANCED)) - - diff --git a/pysollib/games/tournament.py b/pysollib/games/tournament.py index 70e8c8c6..a96c4476 100644 --- a/pysollib/games/tournament.py +++ b/pysollib/games/tournament.py @@ -24,23 +24,32 @@ __all__ = [] # imports -import sys # PySol imports -from pysollib.mygettext import _, n_ +from pysollib.mygettext import _ from pysollib.gamedb import registerGame, GameInfo, GI -from pysollib.util import * -from pysollib.mfxutil import kwdefault -from pysollib.stack import * from pysollib.game import Game from pysollib.layout import Layout -from pysollib.hint import AbstractHint, DefaultHint, CautiousDefaultHint +from pysollib.hint import CautiousDefaultHint +from pysollib.util import ACE, JACK, KING, QUEEN + +from pysollib.stack import \ + AC_RowStack, \ + BasicRowStack, \ + DealRowRedealTalonStack, \ + DealRowTalonStack, \ + OpenStack, \ + ReserveStack, \ + SS_RowStack, \ + Stack, \ + SS_FoundationStack # ************************************************************************ # * Tournament # ************************************************************************ + class Tournament_Talon(DealRowRedealTalonStack): def dealCards(self, sound=False): num_cards = 0 @@ -147,6 +156,7 @@ class LaNivernaise(Tournament): # * Kingsdown Eights # ************************************************************************ + class KingsdownEights_Talon(DealRowTalonStack): def dealCards(self, sound=False): if len(self.cards) == 0: @@ -161,6 +171,7 @@ class KingsdownEights_Talon(DealRowTalonStack): self.game.stopSamples() return n + class KingsdownEights(Game): Hint_Class = CautiousDefaultHint @@ -215,6 +226,7 @@ class KingsdownEights(Game): class Saxony_Reserve(SS_RowStack): getBottomImage = Stack._getReserveBottomImage + def getHelp(self): return _('Reserve. Build down by suit.') @@ -232,11 +244,12 @@ class Saxony(Game): x, y, = l.XM+1.5*l.XS, l.YM for i in range(8): - s.foundations.append(SS_FoundationStack(x, y, self, suit=i%4)) + s.foundations.append(SS_FoundationStack(x, y, self, suit=i % 4)) x += l.XS x, y = l.XM+1.5*l.XS, 2*l.YM+l.YS for i in range(8): - s.reserves.append(BasicRowStack(x, y, self, max_move=1, max_accept=0)) + s.reserves.append( + BasicRowStack(x, y, self, max_move=1, max_accept=0)) x += l.XS x, y = l.XM, 2*l.YM+l.YS for i in range(4): @@ -253,7 +266,6 @@ class Saxony(Game): l.defaultStackGroups() - def startGame(self): self.s.talon.dealRow(rows=self.s.reserves[8:], frames=0) self.s.talon.dealRow(frames=0) @@ -301,7 +313,8 @@ class LadiesBattle(Game): l.defaultStackGroups() def _shuffleHook(self, cards): - return self._shuffleHookMoveToTop(cards, + return self._shuffleHookMoveToTop( + cards, lambda c: (c.rank in (JACK, QUEEN), (c.rank, c.suit))) def startGame(self): @@ -319,20 +332,15 @@ class LadiesBattle(Game): shallHighlightMatch = Game._shallHighlightMatch_ACW - # register the game registerGame(GameInfo(303, Tournament, "Tournament", GI.GT_2DECK_TYPE, 2, 2, GI.SL_MOSTLY_LUCK)) registerGame(GameInfo(304, LaNivernaise, "La Nivernaise", GI.GT_2DECK_TYPE, 2, 2, GI.SL_MOSTLY_LUCK, - altnames = ("Napoleon's Flank", ),)) + altnames=("Napoleon's Flank", ),)) registerGame(GameInfo(386, KingsdownEights, "Kingsdown Eights", GI.GT_2DECK_TYPE, 2, 0, GI.SL_BALANCED)) registerGame(GameInfo(645, Saxony, "Saxony", GI.GT_2DECK_TYPE, 2, 0, GI.SL_MOSTLY_SKILL)) registerGame(GameInfo(652, LadiesBattle, "Ladies Battle", GI.GT_1DECK_TYPE, 1, 0, GI.SL_MOSTLY_LUCK)) - - - - diff --git a/tests/style/py-flake8.t b/tests/style/py-flake8.t index 60bc0492..7930eecf 100644 --- a/tests/style/py-flake8.t +++ b/tests/style/py-flake8.t @@ -10,7 +10,7 @@ use String::ShellQuote qw/ shell_quote /; # my $cmd = shell_quote( 'flake8', '.' ); my $cmd = shell_quote( 'flake8', - grep { not($_ eq './pysollib/pysoltk.py' or $_ eq './pysollib/tile/ttk.py') } glob('./pysollib/*.py ./pysollib/[cmpuw]*/*.py ./pysollib/tile/*.py ./pysollib/ui/tktile/*.py ./pysollib/games/[a-sy-z]*.py') ); + grep { not($_ eq './pysollib/pysoltk.py' or $_ eq './pysollib/tile/ttk.py') } glob('./pysollib/*.py ./pysollib/[cmpuw]*/*.py ./pysollib/tile/*.py ./pysollib/ui/tktile/*.py ./pysollib/games/[a-ty-z]*.py') ); # TEST eq_or_diff( scalar(`$cmd`), '', "flake8 is happy with the code." );