1
0
Fork 0
mirror of https://github.com/shlomif/PySolFC.git synced 2025-04-05 00:02:29 -04:00

flake8 - games/n*

This commit is contained in:
Shlomi Fish 2017-04-18 01:21:14 +03:00
parent 231d370000
commit bbc2af7c59
4 changed files with 135 additions and 91 deletions

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- mode: python; coding: utf-8; -*- # -*- mode: python; coding: utf-8; -*-
# ---------------------------------------------------------------------------## # ---------------------------------------------------------------------------
# #
# Copyright (C) 1998-2003 Markus Franz Xaver Johannes Oberhumer # Copyright (C) 1998-2003 Markus Franz Xaver Johannes Oberhumer
# Copyright (C) 2003 Mt. Hood Playing Card Co. # Copyright (C) 2003 Mt. Hood Playing Card Co.
@ -19,26 +19,33 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
# ---------------------------------------------------------------------------## # ---------------------------------------------------------------------------
__all__ = [] __all__ = []
# imports # imports
import sys
# PySol imports # PySol imports
from pysollib.mygettext import _, n_ from pysollib.mygettext import _
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault
from pysollib.stack import *
from pysollib.game import Game from pysollib.game import Game
from pysollib.layout import Layout from pysollib.layout import Layout
from pysollib.hint import AbstractHint, DefaultHint, CautiousDefaultHint from pysollib.hint import CautiousDefaultHint
from pysollib.pysoltk import MfxCanvasText from pysollib.pysoltk import MfxCanvasText
from braid import Braid_Foundation from braid import Braid_Foundation
from pysollib.util import ACE, KING, RANKS, UNLIMITED_CARDS
from pysollib.stack import \
BasicRowStack, \
InitialDealTalonStack, \
ReserveStack, \
SS_FoundationStack, \
Stack, \
UD_SS_RowStack, \
StackWrapper
# ************************************************************************ # ************************************************************************
# * stacks # * stacks
@ -57,9 +64,9 @@ class Napoleon_ReserveStack(BasicRowStack):
class Napoleon_SingleFreeCell(ReserveStack): class Napoleon_SingleFreeCell(ReserveStack):
def acceptsCards(self, from_stack, cards): def acceptsCards(self, from_stack, cards):
## if from_stack.id >= 8: # if from_stack.id >= 8:
## # from_stack must be a Napoleon_RowStack # # from_stack must be a Napoleon_RowStack
## return False # return False
return ReserveStack.acceptsCards(self, from_stack, cards) return ReserveStack.acceptsCards(self, from_stack, cards)
def canMoveCards(self, cards): def canMoveCards(self, cards):
@ -122,7 +129,7 @@ class DerKleineNapoleon(Game):
y = y + l.YS y = y + l.YS
# talon # talon
if cells == 1: if cells == 1:
##x, y = l.XM, self.height - l.YS # x, y = l.XM, self.height - l.YS
y = self.height + l.YS y = self.height + l.YS
else: else:
y = self.height - l.YS y = self.height - l.YS
@ -144,9 +151,11 @@ class DerKleineNapoleon(Game):
# #
def _shuffleHook(self, cards): def _shuffleHook(self, cards):
# move 4 cards of the same rank to bottom of the Talon (i.e. last cards to be dealt) # move 4 cards of the same rank to bottom of the Talon (i.e.
# last cards to be dealt)
rank = cards[-1].rank rank = cards[-1].rank
return self._shuffleHookMoveToBottom(cards, lambda c, rank=rank: (c.rank == rank, c.suit)) return self._shuffleHookMoveToBottom(
cards, lambda c, rank=rank: (c.rank == rank, c.suit))
def startGame(self): def startGame(self):
for i in range(4): for i in range(4):
@ -249,6 +258,7 @@ class Napoleon(DerKleineNapoleon):
class FreeNapoleon(DerFreieNapoleon): class FreeNapoleon(DerFreieNapoleon):
FreeCell_Class = Napoleon_FreeCell FreeCell_Class = Napoleon_FreeCell
def createGame(self): def createGame(self):
DerFreieNapoleon.createGame(self, cells=2) DerFreieNapoleon.createGame(self, cells=2)
@ -298,7 +308,8 @@ class TheLittleCorporal(DerFreieNapoleon):
x += l.XS x += l.XS
tx, ty, ta, tf = l.getTextAttr(s.foundations[-1], "se") tx, ty, ta, tf = l.getTextAttr(s.foundations[-1], "se")
font = self.app.getFont("canvas_default") font = self.app.getFont("canvas_default")
self.texts.info = MfxCanvasText(self.canvas, tx, ty, anchor=ta, font=font) self.texts.info = MfxCanvasText(
self.canvas, tx, ty, anchor=ta, font=font)
x += 2*l.XS x += 2*l.XS
stack = ReserveStack(x, y, self, max_cards=UNLIMITED_CARDS) stack = ReserveStack(x, y, self, max_cards=UNLIMITED_CARDS)
s.reserves.append(stack) s.reserves.append(stack)
@ -390,8 +401,10 @@ class BusyCards(Game):
l.defaultStackGroups() l.defaultStackGroups()
def _shuffleHook(self, cards): def _shuffleHook(self, cards):
return self._shuffleHookMoveToTop(cards, return self._shuffleHookMoveToTop(
lambda c: ((c.rank in (ACE,KING) and c.deck == 0), (c.rank, c.suit))) cards,
lambda c: ((c.rank in (ACE, KING) and c.deck == 0),
(c.rank, c.suit)))
def startGame(self): def startGame(self):
self.s.talon.dealRow(rows=self.s.foundations, frames=0) self.s.talon.dealRow(rows=self.s.foundations, frames=0)
@ -403,7 +416,6 @@ class BusyCards(Game):
shallHighlightMatch = Game._shallHighlightMatch_SS shallHighlightMatch = Game._shallHighlightMatch_SS
# register the game # register the game
registerGame(GameInfo(167, DerKleineNapoleon, "Der kleine Napoleon", registerGame(GameInfo(167, DerKleineNapoleon, "Der kleine Napoleon",
GI.GT_NAPOLEON | GI.GT_OPEN, 1, 0, GI.SL_MOSTLY_SKILL)) GI.GT_NAPOLEON | GI.GT_OPEN, 1, 0, GI.SL_MOSTLY_SKILL))
@ -418,7 +430,8 @@ registerGame(GameInfo(536, Master, "Master",
registerGame(GameInfo(537, TheLittleCorporal, "The Little Corporal", registerGame(GameInfo(537, TheLittleCorporal, "The Little Corporal",
GI.GT_NAPOLEON | GI.GT_OPEN, 1, 0, GI.SL_MOSTLY_SKILL)) GI.GT_NAPOLEON | GI.GT_OPEN, 1, 0, GI.SL_MOSTLY_SKILL))
registerGame(GameInfo(538, Bonaparte, "Bonaparte", registerGame(GameInfo(538, Bonaparte, "Bonaparte",
GI.GT_NAPOLEON | GI.GT_OPEN | GI.GT_ORIGINAL, 1, 0, GI.SL_MOSTLY_SKILL)) GI.GT_NAPOLEON | GI.GT_OPEN | GI.GT_ORIGINAL, 1, 0,
GI.SL_MOSTLY_SKILL))
registerGame(GameInfo(705, BusyCards, "Busy Cards", registerGame(GameInfo(705, BusyCards, "Busy Cards",
GI.GT_NAPOLEON | GI.GT_OPEN | GI.GT_ORIGINAL, 2, 0, GI.SL_MOSTLY_SKILL)) GI.GT_NAPOLEON | GI.GT_OPEN | GI.GT_ORIGINAL, 2, 0,
GI.SL_MOSTLY_SKILL))

View file

@ -24,17 +24,22 @@
__all__ = [] __all__ = []
# imports # imports
import sys
# PySol imports # PySol imports
from pysollib.gamedb import registerGame, GameInfo, GI 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.game import Game
from pysollib.layout import Layout from pysollib.layout import Layout
from pysollib.hint import AbstractHint, DefaultHint, CautiousDefaultHint from pysollib.hint import CautiousDefaultHint
# from pysollib.util import ANY_SUIT, KING
from pysollib.stack import \
AC_RowStack, \
InitialDealTalonStack, \
OpenStack, \
ReserveStack, \
SS_FoundationStack, \
StackWrapper
# ************************************************************************ # ************************************************************************
# * Needle # * Needle
@ -42,6 +47,7 @@ from pysollib.hint import AbstractHint, DefaultHint, CautiousDefaultHint
# * Pitchfork # * Pitchfork
# ************************************************************************ # ************************************************************************
class Needle(Game): class Needle(Game):
Hint_Class = CautiousDefaultHint Hint_Class = CautiousDefaultHint
@ -64,7 +70,8 @@ class Needle(Game):
stack = self.ReserveStack_Class(x, y, self) stack = self.ReserveStack_Class(x, y, self)
stack.CARD_XOFFSET, stack.CARD_YOFFSET = l.XOFFSET, 0 stack.CARD_XOFFSET, stack.CARD_YOFFSET = l.XOFFSET, 0
s.reserves.append(stack) s.reserves.append(stack)
self.setRegion(s.reserves, (-999, -999, w-4*l.XS-l.CW/2, l.YM+l.YS-l.CH/2)) self.setRegion(
s.reserves, (-999, -999, w-4*l.XS-l.CW/2, l.YM+l.YS-l.CH/2))
x = w-4*l.XS x = w-4*l.XS
for i in range(4): for i in range(4):
@ -119,4 +126,3 @@ registerGame(GameInfo(319, Haystack, "Haystack",
GI.GT_FREECELL | GI.GT_OPEN, 1, 0, GI.SL_MOSTLY_SKILL)) GI.GT_FREECELL | GI.GT_OPEN, 1, 0, GI.SL_MOSTLY_SKILL))
registerGame(GameInfo(367, Pitchfork, "Pitchfork", registerGame(GameInfo(367, Pitchfork, "Pitchfork",
GI.GT_FREECELL | GI.GT_OPEN, 1, 0, GI.SL_MOSTLY_SKILL)) GI.GT_FREECELL | GI.GT_OPEN, 1, 0, GI.SL_MOSTLY_SKILL))

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- mode: python; coding: utf-8; -*- # -*- mode: python; coding: utf-8; -*-
# ---------------------------------------------------------------------------## # ---------------------------------------------------------------------------
# #
# Copyright (C) 1998-2003 Markus Franz Xaver Johannes Oberhumer # Copyright (C) 1998-2003 Markus Franz Xaver Johannes Oberhumer
# Copyright (C) 2003 Mt. Hood Playing Card Co. # Copyright (C) 2003 Mt. Hood Playing Card Co.
@ -19,28 +19,47 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
# ---------------------------------------------------------------------------## # ---------------------------------------------------------------------------
__all__ = [] __all__ = []
# imports # imports
import sys, time import time
# PySol imports # PySol imports
from pysollib.mygettext import _, n_ from pysollib.mygettext import _
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import *
from pysollib.stack import *
from pysollib.game import Game from pysollib.game import Game
from pysollib.layout import Layout from pysollib.layout import Layout
from pysollib.hint import AbstractHint, DefaultHint, CautiousDefaultHint from pysollib.hint import DefaultHint, CautiousDefaultHint
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault
from pysollib.util import ACE, ANY_RANK, ANY_SUIT, JACK, KING, NO_RANK, \
UNLIMITED_ACCEPTS, \
UNLIMITED_CARDS
from pysollib.stack import \
AC_RowStack, \
BasicRowStack, \
DealRowTalonStack, \
InitialDealTalonStack, \
OpenStack, \
OpenTalonStack, \
RK_FoundationStack, \
RK_RowStack, \
ReserveStack, \
SS_FoundationStack, \
Stack, \
StackWrapper, \
TalonStack, \
WasteStack, \
WasteTalonStack
# ************************************************************************ # ************************************************************************
# * # *
# ************************************************************************ # ************************************************************************
class Numerica_Hint(DefaultHint): class Numerica_Hint(DefaultHint):
# FIXME: demo is clueless # FIXME: demo is clueless
@ -80,7 +99,7 @@ class Numerica_RowStack(BasicRowStack):
getBottomImage = Stack._getReserveBottomImage getBottomImage = Stack._getReserveBottomImage
def getHelp(self): def getHelp(self):
##return _('Tableau. Accepts any one card from the Waste.') # return _('Tableau. Accepts any one card from the Waste.')
return _('Tableau. Build regardless of rank and suit.') return _('Tableau. Build regardless of rank and suit.')
@ -97,7 +116,8 @@ class Numerica(Game):
# game layout # game layout
# #
def createGame(self, rows=4, reserve=False, max_rounds=1, waste_max_cards=1): def createGame(self, rows=4, reserve=False, max_rounds=1,
waste_max_cards=1):
# create layout # create layout
l, s = Layout(self), self.s l, s = Layout(self), self.s
decks = self.gameinfo.decks decks = self.gameinfo.decks
@ -142,7 +162,6 @@ class Numerica(Game):
return l return l
# #
# game overrides # game overrides
# #
@ -169,6 +188,7 @@ class Numerica2Decks(Numerica):
class LadyBetty(Numerica): class LadyBetty(Numerica):
Foundation_Class = SS_FoundationStack Foundation_Class = SS_FoundationStack
def createGame(self): def createGame(self):
Numerica.createGame(self, rows=6) Numerica.createGame(self, rows=6)
@ -243,6 +263,7 @@ class PussInTheCorner_Foundation(SS_FoundationStack):
def __init__(self, x, y, game, **cap): def __init__(self, x, y, game, **cap):
kwdefault(cap, base_suit=ANY_SUIT) kwdefault(cap, base_suit=ANY_SUIT)
SS_FoundationStack.__init__(self, x, y, game, ANY_SUIT, **cap) SS_FoundationStack.__init__(self, x, y, game, ANY_SUIT, **cap)
def acceptsCards(self, from_stack, cards): def acceptsCards(self, from_stack, cards):
if not SS_FoundationStack.acceptsCards(self, from_stack, cards): if not SS_FoundationStack.acceptsCards(self, from_stack, cards):
return False return False
@ -251,6 +272,7 @@ class PussInTheCorner_Foundation(SS_FoundationStack):
if cards[0].color != self.cards[-1].color: if cards[0].color != self.cards[-1].color:
return False return False
return True return True
def getHelp(self): def getHelp(self):
return _('Foundation. Build up by color.') return _('Foundation. Build up by color.')
@ -266,7 +288,7 @@ class PussInTheCorner_RowStack(BasicRowStack):
getBottomImage = Stack._getReserveBottomImage getBottomImage = Stack._getReserveBottomImage
def getHelp(self): def getHelp(self):
##return _('Tableau. Accepts any one card from the Waste.') # return _('Tableau. Accepts any one card from the Waste.')
return _('Tableau. Build regardless of rank and suit.') return _('Tableau. Build regardless of rank and suit.')
@ -299,18 +321,15 @@ class PussInTheCorner(Numerica):
# define stack-groups # define stack-groups
l.defaultStackGroups() l.defaultStackGroups()
def _shuffleHook(self, cards): def _shuffleHook(self, cards):
return self._shuffleHookMoveToTop(cards, return self._shuffleHookMoveToTop(
lambda c: (c.rank == ACE, c.suit)) cards, lambda c: (c.rank == ACE, c.suit))
def startGame(self): def startGame(self):
self.startDealSample() self.startDealSample()
self.s.talon.dealRow(rows=self.s.foundations) self.s.talon.dealRow(rows=self.s.foundations)
self.s.talon.fillStack() self.s.talon.fillStack()
def _autoDeal(self, sound=True): def _autoDeal(self, sound=True):
return 0 return 0
@ -324,7 +343,7 @@ class PussInTheCorner(Numerica):
class Frog(Game): class Frog(Game):
Hint_Class = Numerica_Hint Hint_Class = Numerica_Hint
##Foundation_Class = SS_FoundationStack # Foundation_Class = SS_FoundationStack
Foundation_Class = RK_FoundationStack Foundation_Class = RK_FoundationStack
def createGame(self): def createGame(self):
@ -363,7 +382,6 @@ class Frog(Game):
# define stack-groups # define stack-groups
l.defaultStackGroups() l.defaultStackGroups()
def startGame(self): def startGame(self):
self.startDealSample() self.startDealSample()
n = 0 n = 0
@ -373,7 +391,7 @@ class Frog(Game):
if c.rank == ACE: if c.rank == ACE:
r = self.s.foundations[f] r = self.s.foundations[f]
f += 1 f += 1
##r = self.s.foundations[c.suit*2] # r = self.s.foundations[c.suit*2]
else: else:
r = self.s.reserves[0] r = self.s.reserves[0]
n += 1 n += 1
@ -388,8 +406,8 @@ class Fly(Frog):
Foundation_Class = RK_FoundationStack Foundation_Class = RK_FoundationStack
def _shuffleHook(self, cards): def _shuffleHook(self, cards):
return self._shuffleHookMoveToTop(cards, return self._shuffleHookMoveToTop(
lambda c: (c.rank == ACE, c.suit)) cards, lambda c: (c.rank == ACE, c.suit))
def startGame(self): def startGame(self):
self.startDealSample() self.startDealSample()
@ -439,7 +457,8 @@ class Gnat(Game):
x, y = l.XM+2*l.XS, l.YM+l.YS x, y = l.XM+2*l.XS, l.YM+l.YS
for i in range(4): for i in range(4):
s.rows.append(Numerica_RowStack(x, y, self, max_accept=UNLIMITED_ACCEPTS)) s.rows.append(
Numerica_RowStack(x, y, self, max_accept=UNLIMITED_ACCEPTS))
x += l.XS x += l.XS
x = l.XM+6*l.XS x = l.XM+6*l.XS
for i in range(2): for i in range(2):
@ -452,10 +471,9 @@ class Gnat(Game):
# define stack-groups # define stack-groups
l.defaultStackGroups() l.defaultStackGroups()
def _shuffleHook(self, cards): def _shuffleHook(self, cards):
return self._shuffleHookMoveToTop(cards, return self._shuffleHookMoveToTop(
lambda c: (c.rank == ACE, c.suit)) cards, lambda c: (c.rank == ACE, c.suit))
def startGame(self): def startGame(self):
self.startDealSample() self.startDealSample()
@ -529,7 +547,8 @@ class Gloaming(Game):
x += l.XS x += l.XS
for i in range(rows): for i in range(rows):
s.rows.append(Gloaming_RowStack(x, y, self, max_accept=UNLIMITED_ACCEPTS)) s.rows.append(
Gloaming_RowStack(x, y, self, max_accept=UNLIMITED_ACCEPTS))
x += l.XS x += l.XS
s.talon = InitialDealTalonStack(w-l.XS, h-l.YS, self) s.talon = InitialDealTalonStack(w-l.XS, h-l.YS, self)
@ -537,7 +556,6 @@ class Gloaming(Game):
# default # default
l.defaultAll() l.defaultAll()
def startGame(self): def startGame(self):
n = 52/len(self.s.reserves)+1 n = 52/len(self.s.reserves)+1
for i in range(n-3): for i in range(n-3):
@ -550,6 +568,7 @@ class Gloaming(Game):
class Chamberlain(Gloaming): class Chamberlain(Gloaming):
Foundation_Class = RK_FoundationStack Foundation_Class = RK_FoundationStack
def createGame(self, reserves=3, rows=5): def createGame(self, reserves=3, rows=5):
Gloaming.createGame(self, reserves=4, rows=3) Gloaming.createGame(self, reserves=4, rows=3)
@ -567,6 +586,7 @@ class Toad_TalonStack(DealRowTalonStack):
if r.cards: if r.cards:
return False return False
return True return True
def dealCards(self, sound=False): def dealCards(self, sound=False):
self.dealRow(rows=self.game.s.reserves, sound=sound) self.dealRow(rows=self.game.s.reserves, sound=sound)
@ -592,7 +612,8 @@ class Toad(Game):
x += l.XS x += l.XS
x, y = l.XM+3*l.XS/2, l.YM+l.YS x, y = l.XM+3*l.XS/2, l.YM+l.YS
for i in range(5): for i in range(5):
s.rows.append(Gloaming_RowStack(x, y, self, max_accept=UNLIMITED_ACCEPTS)) s.rows.append(
Gloaming_RowStack(x, y, self, max_accept=UNLIMITED_ACCEPTS))
x += l.XS x += l.XS
y = l.YM+l.YS/2 y = l.YM+l.YS/2
for i in (3, 3, 3, 3, 1): for i in (3, 3, 3, 3, 1):
@ -651,7 +672,8 @@ class Strategerie_RowStack(BasicRowStack):
def acceptsCards(self, from_stack, cards): def acceptsCards(self, from_stack, cards):
if not BasicRowStack.acceptsCards(self, from_stack, cards): if not BasicRowStack.acceptsCards(self, from_stack, cards):
return False return False
if from_stack is self.game.s.talon or from_stack in self.game.s.reserves: if from_stack is self.game.s.talon or \
from_stack in self.game.s.reserves:
return True return True
return False return False
@ -739,7 +761,8 @@ class AnnoDomini(Numerica):
RowStack_Class = StackWrapper(AC_RowStack, mod=13) RowStack_Class = StackWrapper(AC_RowStack, mod=13)
def createGame(self): def createGame(self):
l = Numerica.createGame(self, max_rounds=3, waste_max_cards=UNLIMITED_CARDS) l = Numerica.createGame(
self, max_rounds=3, waste_max_cards=UNLIMITED_CARDS)
year = str(time.localtime()[0]) year = str(time.localtime()[0])
i = 0 i = 0
for s in self.s.foundations: for s in self.s.foundations:
@ -812,14 +835,12 @@ class CircleNine(Game):
l.defaultStackGroups() l.defaultStackGroups()
self.sg.dropstacks.append(s.talon) self.sg.dropstacks.append(s.talon)
def startGame(self): def startGame(self):
self.startDealSample() self.startDealSample()
self.s.talon.dealRow(rows=self.s.foundations) self.s.talon.dealRow(rows=self.s.foundations)
self.s.talon.dealRow() self.s.talon.dealRow()
self.s.talon.fillStack() self.s.talon.fillStack()
def fillStack(self, stack): def fillStack(self, stack):
if stack in self.s.rows and not stack.cards: if stack in self.s.rows and not stack.cards:
if self.s.talon.cards: if self.s.talon.cards:
@ -955,8 +976,8 @@ class Aglet(Game):
def _shuffleHook(self, cards): def _shuffleHook(self, cards):
# move Aces to top of the Talon (i.e. first cards to be dealt) # move Aces to top of the Talon (i.e. first cards to be dealt)
return self._shuffleHookMoveToTop(cards, return self._shuffleHookMoveToTop(
lambda c: (c.rank == ACE, c.suit)) cards, lambda c: (c.rank == ACE, c.suit))
def startGame(self): def startGame(self):
self.s.talon.dealRow(rows=self.s.foundations, frames=0) self.s.talon.dealRow(rows=self.s.foundations, frames=0)
@ -967,7 +988,6 @@ class Aglet(Game):
self.s.talon.dealRowAvail() self.s.talon.dealRowAvail()
# register the game # register the game
registerGame(GameInfo(257, Numerica, "Numerica", registerGame(GameInfo(257, Numerica, "Numerica",
GI.GT_NUMERICA | GI.GT_CONTRIB, 1, 0, GI.SL_BALANCED, GI.GT_NUMERICA | GI.GT_CONTRIB, 1, 0, GI.SL_BALANCED,
@ -982,9 +1002,11 @@ registerGame(GameInfo(356, Fly, "Fly",
registerGame(GameInfo(357, Gnat, "Gnat", registerGame(GameInfo(357, Gnat, "Gnat",
GI.GT_NUMERICA, 1, 0, GI.SL_BALANCED)) GI.GT_NUMERICA, 1, 0, GI.SL_BALANCED))
registerGame(GameInfo(378, Gloaming, "Gloaming", registerGame(GameInfo(378, Gloaming, "Gloaming",
GI.GT_NUMERICA | GI.GT_OPEN | GI.GT_ORIGINAL, 1, 0, GI.SL_MOSTLY_SKILL)) GI.GT_NUMERICA | GI.GT_OPEN | GI.GT_ORIGINAL, 1, 0,
GI.SL_MOSTLY_SKILL))
registerGame(GameInfo(379, Chamberlain, "Chamberlain", registerGame(GameInfo(379, Chamberlain, "Chamberlain",
GI.GT_NUMERICA | GI.GT_OPEN | GI.GT_ORIGINAL, 1, 0, GI.SL_MOSTLY_SKILL)) GI.GT_NUMERICA | GI.GT_OPEN | GI.GT_ORIGINAL, 1, 0,
GI.SL_MOSTLY_SKILL))
registerGame(GameInfo(402, Toad, "Toad", registerGame(GameInfo(402, Toad, "Toad",
GI.GT_NUMERICA, 2, 0, GI.SL_BALANCED)) GI.GT_NUMERICA, 2, 0, GI.SL_BALANCED))
registerGame(GameInfo(430, PussInTheCorner, "Puss in the Corner", registerGame(GameInfo(430, PussInTheCorner, "Puss in the Corner",
@ -1006,11 +1028,14 @@ registerGame(GameInfo(613, Fanny, "Fanny",
registerGame(GameInfo(641, CircleNine, "Circle Nine", registerGame(GameInfo(641, CircleNine, "Circle Nine",
GI.GT_NUMERICA, 1, 0, GI.SL_BALANCED)) GI.GT_NUMERICA, 1, 0, GI.SL_BALANCED))
registerGame(GameInfo(643, Measure, "Measure", registerGame(GameInfo(643, Measure, "Measure",
GI.GT_NUMERICA | GI.GT_ORIGINAL, 1, 0, GI.SL_MOSTLY_SKILL)) GI.GT_NUMERICA | GI.GT_ORIGINAL, 1, 0,
GI.SL_MOSTLY_SKILL))
registerGame(GameInfo(644, DoubleMeasure, "Double Measure", registerGame(GameInfo(644, DoubleMeasure, "Double Measure",
GI.GT_NUMERICA | GI.GT_ORIGINAL, 2, 0, GI.SL_MOSTLY_SKILL)) GI.GT_NUMERICA | GI.GT_ORIGINAL, 2, 0,
GI.SL_MOSTLY_SKILL))
registerGame(GameInfo(754, Amphibian, "Amphibian", registerGame(GameInfo(754, Amphibian, "Amphibian",
GI.GT_NUMERICA | GI.GT_ORIGINAL, 2, 0, GI.SL_MOSTLY_SKILL)) GI.GT_NUMERICA | GI.GT_ORIGINAL, 2, 0,
GI.SL_MOSTLY_SKILL))
registerGame(GameInfo(760, Aglet, "Aglet", registerGame(GameInfo(760, Aglet, "Aglet",
GI.GT_1DECK_TYPE | GI.GT_ORIGINAL, 1, 0, GI.SL_MOSTLY_SKILL)) GI.GT_1DECK_TYPE | GI.GT_ORIGINAL, 1, 0,
GI.SL_MOSTLY_SKILL))

View file

@ -10,7 +10,7 @@ use String::ShellQuote qw/ shell_quote /;
# my $cmd = shell_quote( 'flake8', '.' ); # my $cmd = shell_quote( 'flake8', '.' );
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-my-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-ny-z]*.py') );
# TEST # TEST
eq_or_diff( scalar(`$cmd`), '', "flake8 is happy with the code." ); eq_or_diff( scalar(`$cmd`), '', "flake8 is happy with the code." );