本文整理汇总了Python中pysollib.layout.Layout.getTextAttr方法的典型用法代码示例。如果您正苦于以下问题:Python Layout.getTextAttr方法的具体用法?Python Layout.getTextAttr怎么用?Python Layout.getTextAttr使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pysollib.layout.Layout
的用法示例。
在下文中一共展示了Layout.getTextAttr方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: createGame
# 需要导入模块: from pysollib.layout import Layout [as 别名]
# 或者: from pysollib.layout.Layout import getTextAttr [as 别名]
def createGame(self):
l, s = Layout(self), self.s
h0 = l.YS+4*l.YOFFSET
self.setSize(l.XM+11*l.XS, l.YM+2*l.YS+2*h0)
self.base_rank = ANY_RANK
x, y = l.XM, l.YM
s.talon = GrandmammasPatience_Talon(x, y, self)
l.createText(s.talon, 'ne')
x, y = self.width-4*l.XS, l.YM
for i in range(4):
s.foundations.append(
SS_FoundationStack(
x, y, self, suit=i,
dir=-1, mod=13, max_move=0, base_rank=ANY_RANK))
x += l.XS
stack = s.foundations[0]
tx, ty, ta, tf = l.getTextAttr(stack, "sw")
font = self.app.getFont("canvas_default")
stack.texts.misc = MfxCanvasText(
self.canvas, tx, ty, anchor=ta, font=font)
x, y = self.width-4*l.XS, self.height-l.YS
for i in range(4):
s.foundations.append(SS_FoundationStack(x, y, self, suit=i,
mod=13, max_move=0, base_rank=ANY_RANK))
x += l.XS
stack = s.foundations[4]
tx, ty, ta, tf = l.getTextAttr(stack, "sw")
font = self.app.getFont("canvas_default")
stack.texts.misc = MfxCanvasText(
self.canvas, tx, ty, anchor=ta, font=font)
y = l.YM+l.YS
for i in range(2):
x = l.XM
for j in range(11):
s.rows.append(GrandmammasPatience_RowStack(x, y, self,
max_accept=1, max_cards=2))
x += l.XS
y += h0
x, y = l.XM, self.height-l.YS
for i in range(4):
s.reserves.append(ReserveStack(x, y, self))
x += l.XS
l.defaultStackGroups()
self.sg.dropstacks.append(s.talon)
示例2: createGame
# 需要导入模块: from pysollib.layout import Layout [as 别名]
# 或者: from pysollib.layout.Layout import getTextAttr [as 别名]
def createGame(self):
l, s = Layout(self), self.s
self.setSize(l.XM+7*l.XS, l.YM+2*l.YS+20*l.YOFFSET)
x, y = l.XM, l.YM
s.talon = WasteTalonStack(x, y, self, max_rounds=1)
l.createText(s.talon, 's')
x += l.XS
s.waste = WasteStack(x, y, self)
l.createText(s.waste, 's')
x += 3.5*l.XS
s.foundations.append(FourByFour_Foundation(x, y, self,
suit=ANY_SUIT, base_rank=ANY_RANK, max_cards=52,
max_accept=1, max_move=0, mod=13))
stack = s.foundations[0]
tx, ty, ta, tf = l.getTextAttr(stack, 'ne')
font = self.app.getFont('canvas_default')
stack.texts.misc = MfxCanvasText(self.canvas, tx, ty,
anchor=ta, font=font)
x, y = l.XM+3*l.XS, l.YM+l.YS
for i in range(4):
stack = UD_RK_RowStack(x, y, self, mod=13)
stack.getBottomImage = stack._getReserveBottomImage
s.rows.append(stack)
x += l.XS
l.defaultStackGroups()
示例3: createGame
# 需要导入模块: from pysollib.layout import Layout [as 别名]
# 或者: from pysollib.layout.Layout import getTextAttr [as 别名]
def createGame(self):
l, s = Layout(self), self.s
self.setSize(l.XM+9.5*l.XS, l.YM+3*l.YS)
x, y = l.XM+1.5*l.XS, l.YM
for i in range(8):
stack = BetsyRoss_Foundation(x, y, self, base_rank=i,
mod=13, dir=i+1, max_move=0)
tx, ty, ta, tf = l.getTextAttr(stack, "s")
font = self.app.getFont("canvas_default")
stack.texts.misc = MfxCanvasText(self.canvas, tx, ty,
anchor=ta, font=font)
s.foundations.append(stack)
x = x + l.XS
x, y = l.XM+1.5*l.XS, l.YM+2*l.YS
for i in range(8):
stack = SeniorWrangler_RowStack(x, y, self, max_accept=0)
s.rows.append(stack)
stack.CARD_YOFFSET = 0
x += l.XS
x, y = l.XM, l.YM+l.YS
s.talon = SeniorWrangler_Talon(x, y, self, max_rounds=9)
l.createRoundText(s.talon, 'nn')
# define stack-groups
l.defaultStackGroups()
示例4: createGame
# 需要导入模块: from pysollib.layout import Layout [as 别名]
# 或者: from pysollib.layout.Layout import getTextAttr [as 别名]
def createGame(self):
l, s = Layout(self), self.s
self.setSize(l.XM+13*l.XS, l.YM+7*l.YS)
self.base_rank = ANY_RANK
x, y = l.XM+2.5*l.XS, l.YM
for i in range(8):
s.foundations.append(StepUp_Foundation(x, y, self,
suit=i%4, mod=13, base_rank=ANY_RANK))
x += l.XS
tx, ty, ta, tf = l.getTextAttr(s.foundations[0], "sw")
font = self.app.getFont("canvas_default")
self.texts.info = MfxCanvasText(self.canvas, tx, ty,
anchor=ta, font=font)
x, y = l.XM, l.YM+l.YS
for i in range(13):
s.reserves.append(ReserveStack(x, y, self))
x += l.XS
x, y = l.XM+2*l.XS, l.YM+2*l.YS
for i in range(9):
s.rows.append(StepUp_RowStack(x, y, self, max_move=1, mod=13))
x += l.XS
x, y = l.XM, l.YM+2.5*l.YS
s.talon = StepUp_Talon(x, y, self, max_rounds=1)
l.createText(s.talon, 'se')
y += l.YS
s.waste = WasteStack(x, y, self)
l.createText(s.waste, 'se')
l.defaultStackGroups()
示例5: createGame
# 需要导入模块: from pysollib.layout import Layout [as 别名]
# 或者: from pysollib.layout.Layout import getTextAttr [as 别名]
def createGame(self, rows=10):
l, s = Layout(self), self.s
# set size so that at least 2/3 of a card is visible with 15 cards
h = l.CH*2/3 + (15-1)*l.YOFFSET
h = l.YS + max(h, 3*l.YS)
self.setSize(l.XM+rows*l.XS, l.YM + h)
x, y = l.XM+(rows-8)*l.XS, l.YM
for i in range(4):
s.foundations.append(Braid_Foundation(x, y, self, suit=i))
x += l.XS
tx, ty, ta, tf = l.getTextAttr(s.foundations[-1], "se")
font = self.app.getFont("canvas_default")
self.texts.info = MfxCanvasText(self.canvas, tx, ty, anchor=ta, font=font)
x += 2*l.XS
stack = ReserveStack(x, y, self, max_cards=UNLIMITED_CARDS)
s.reserves.append(stack)
l.createText(stack, 'se')
x, y = l.XM, l.YM+l.YS
for i in range(rows):
s.rows.append(TheLittleCorporal_RowStack(x, y, self, mod=13))
x += l.XS
# talon
x, y = l.XM, self.height - l.YS
s.talon = InitialDealTalonStack(x, y, self)
# define stack-groups
l.defaultStackGroups()
示例6: createGame
# 需要导入模块: from pysollib.layout import Layout [as 别名]
# 或者: from pysollib.layout.Layout import getTextAttr [as 别名]
def createGame(self):
l, s = Layout(self), self.s
self.setSize(l.XM+10*l.XS, l.YM+2*l.YS+12*l.YOFFSET)
# extra settings
self.base_card = None
# create stacks
x, y = l.XM+3*l.XS, l.YM
for i in range(4):
s.foundations.append(SS_FoundationStack(x, y, self,
suit=i, mod=13))
x = x + l.XS
tx, ty, ta, tf = l.getTextAttr(s.foundations[-1], "ne")
font = self.app.getFont("canvas_default")
self.texts.info = MfxCanvasText(self.canvas, tx, ty,
anchor=ta, font=font)
x, y = l.XM, l.YM+l.YS
for i in range(10):
s.rows.append(UD_AC_RowStack(x, y, self, mod=13))
x += l.XS
x, y = l.XM, l.YM
s.talon = InitialDealTalonStack(x, y, self)
# default
l.defaultAll()
示例7: createGame
# 需要导入模块: from pysollib.layout import Layout [as 别名]
# 或者: from pysollib.layout.Layout import getTextAttr [as 别名]
def createGame(self, playcards=13, reserves=0, texts=False):
# create layout
l, s = Layout(self), self.s
# set window
# (set size so that at least 13 cards are fully playable)
w = max(3*l.XS, l.XS+(playcards-1)*l.XOFFSET)
x0 = l.XM
x1 = x0 + w + 2*l.XM
x2 = x1 + l.XS + 2*l.XM
x3 = x2 + w + l.XM
h = l.YM + (4+int(reserves != 0))*l.YS + int(texts)*l.TEXT_HEIGHT
self.setSize(x3, h)
# create stacks
y = l.YM
if reserves:
x = x1 - int(l.XS*(reserves-1)/2)
for i in range(reserves):
s.reserves.append(ReserveStack(x, y, self))
x += l.XS
y += l.YS
x = x1
for i in range(4):
s.foundations.append(
self.Foundation_Class(x, y, self, suit=i, max_move=0))
y += l.YS
if texts:
tx, ty, ta, tf = l.getTextAttr(None, "ss")
tx, ty = x+tx, y-l.YS+ty
font = self.app.getFont("canvas_default")
self.texts.info = MfxCanvasText(self.canvas, tx, ty,
anchor=ta, font=font)
for x in (x0, x2):
y = l.YM+l.YS*int(reserves != 0)
for i in range(4):
stack = self.RowStack_Class(x, y, self)
stack.CARD_XOFFSET, stack.CARD_YOFFSET = l.XOFFSET, 0
s.rows.append(stack)
y += l.YS
x, y = self.width - l.XS, self.height - l.YS
s.talon = InitialDealTalonStack(x, y, self)
if reserves:
l.setRegion(
s.rows[:4], (-999, l.YM+l.YS-l.CH//2, x1-l.CW//2, 999999))
else:
l.setRegion(s.rows[:4], (-999, -999, x1-l.CW//2, 999999))
# default
l.defaultAll()
示例8: createGame
# 需要导入模块: from pysollib.layout import Layout [as 别名]
# 或者: from pysollib.layout.Layout import getTextAttr [as 别名]
def createGame(self):
# create layout
lay, s = Layout(self), self.s
# set window
playcards = 8
w0 = lay.XS+playcards*lay.XOFFSET
w = lay.XM+lay.XS//2+max(10*lay.XS, lay.XS+4*w0)
h = lay.YM+5*lay.YS+lay.TEXT_HEIGHT
self.setSize(w, h)
# extra settings
self.base_card = None
# create stacks
x, y = lay.XM, lay.YM
s.talon = WasteTalonStack(x, y, self, max_rounds=1)
lay.createText(s.talon, 's')
x += lay.XS
s.waste = WasteStack(x, y, self)
lay.createText(s.waste, 's')
x = self.width - 8*lay.XS
for i in range(8):
s.foundations.append(SS_FoundationStack(x, y, self,
suit=i % 4, mod=13))
x += lay.XS
tx, ty, ta, tf = lay.getTextAttr(None, "ss")
tx, ty = x-lay.XS+tx, y+ty
font = self.app.getFont("canvas_default")
self.texts.info = MfxCanvasText(self.canvas, tx, ty,
anchor=ta, font=font)
x, y = lay.XM, lay.YM+lay.YS+lay.TEXT_HEIGHT
for i in range(4):
s.reserves.append(ReserveStack(x, y, self))
y += lay.YS
y = lay.YM+lay.YS+lay.TEXT_HEIGHT
for i in range(4):
x = lay.XM+lay.XS+lay.XS//2
for j in range(4):
stack = RK_RowStack(x, y, self, max_move=1, mod=13)
s.rows.append(stack)
stack.CARD_XOFFSET, stack.CARD_YOFFSET = lay.XOFFSET, 0
x += w0
y += lay.YS
# define stack-groups
lay.defaultStackGroups()
示例9: createGame
# 需要导入模块: from pysollib.layout import Layout [as 别名]
# 或者: from pysollib.layout.Layout import getTextAttr [as 别名]
def createGame(self):
# create layout
l, s = Layout(self), self.s
# set window
self.setSize(l.XM+11*l.XS, l.YM+3*l.YS+16*l.YOFFSET)
# create stacks
#
x, y = l.XM, self.height-l.YS
s.talon = DoubleFives_Talon(x, y, self, max_rounds=2, num_deal=1)
l.createText(s.talon, "n")
l.createRoundText(self.s.talon, 'nnn')
x += l.XS
for i in range(5):
s.reserves.append(DoubleFives_WasteStack(x, y, self))
x += l.XS
l.createText(s.reserves[0], 'n')
#
x = self.width-l.XS
s.addattr(stock=None) # register extra stack variable
s.stock = DoubleFives_Stock(x, y, self)
l.createText(s.stock, "n")
#
x, y = l.XM, l.YM
s.reserves.append(Glenwood_ReserveStack(x, y, self))
x += l.XS
s.reserves.append(Glenwood_ReserveStack(x, y, self))
#
x += 2*l.XS
for i in range(8):
s.foundations.append(Glenwood_Foundation(x, y, self, suit=i//2,
mod=13, base_rank=ANY_RANK, max_move=0))
x += l.XS
tx, ty, ta, tf = l.getTextAttr(None, "ss")
tx, ty = x - l.XS + tx, y + ty
font = self.app.getFont("canvas_default")
self.texts.info = MfxCanvasText(self.canvas, tx, ty,
anchor=ta, font=font)
x, y = l.XM+l.XS//2, l.YM+l.YS+l.TEXT_HEIGHT
for i in range(10):
s.rows.append(DoubleFives_RowStack(x, y, self, mod=13, max_move=1))
x += l.XS
# define stack-groups
l.defaultStackGroups()
示例10: createGame
# 需要导入模块: from pysollib.layout import Layout [as 别名]
# 或者: from pysollib.layout.Layout import getTextAttr [as 别名]
def createGame(self):
l, s = Layout(self), self.s
self.setSize(l.XM+9*l.XS, l.YM+3*l.YS+7*l.YOFFSET+2*l.TEXT_HEIGHT)
x, y = l.XM+4*l.XS, l.YM
stack = DevilsSolitaire_Foundation(
x, y, self, suit=ANY_SUIT, base_rank=ANY_RANK, mod=13)
tx, ty, ta, tf = l.getTextAttr(stack, 'nw')
font = self.app.getFont('canvas_default')
stack.texts.misc = MfxCanvasText(self.canvas, tx, ty,
anchor=ta, font=font)
s.foundations.append(stack)
x, y = self.width-l.XS, l.YM
stack = AbstractFoundationStack(
x, y, self,
suit=ANY_SUIT, max_move=0, max_cards=104,
max_accept=0, base_rank=ANY_RANK)
l.createText(stack, 'nw')
s.foundations.append(stack)
x, y = l.XM, l.YM+l.YS
for i in range(4):
s.rows.append(Vague_RowStack(x, y, self))
x += l.XS
x += l.XS
for i in range(4):
s.rows.append(Vague_RowStack(x, y, self))
x += l.XS
x, y = l.XM+4*l.XS, l.YM+l.YS
stack = OpenStack(x, y, self)
stack.CARD_YOFFSET = l.YOFFSET
s.reserves.append(stack)
x, y = l.XM+4.5*l.XS, self.height-l.YS
s.talon = WasteTalonStack(x, y, self, max_rounds=3)
l.createText(s.talon, 'n')
l.createRoundText(s.talon, 'nnn')
x -= l.XS
s.waste = DevilsSolitaire_WasteStack(x, y, self)
l.createText(s.waste, 'n')
l.defaultStackGroups()
示例11: createGame
# 需要导入模块: from pysollib.layout import Layout [as 别名]
# 或者: from pysollib.layout.Layout import getTextAttr [as 别名]
def createGame(self, rows=8, text=False):
# create layout
l, s = Layout(self), self.s
# set window
max_rows = max(rows, self.gameinfo.decks*4)
w, h = 2*l.XM+l.XS+max_rows*l.XS+l.XS//2, l.YM+l.TEXT_HEIGHT+5*l.YS
self.setSize(w, h)
# create stacks
x, y, = w-l.XS*self.gameinfo.decks*4, l.YM
for j in range(self.gameinfo.decks):
for i in range(4):
s.foundations.append(self.Foundation_Class(x, y, self, suit=i))
x += l.XS
if text:
x, y = w-l.XS, l.YM
tx, ty, ta, tf = l.getTextAttr(None, "ss")
tx, ty = x+tx, y+ty
font = self.app.getFont("canvas_default")
self.texts.info = MfxCanvasText(self.canvas, tx, ty,
anchor=ta, font=font)
x, y = w-rows*l.XS, l.YM+l.YS
if text:
y += l.TEXT_HEIGHT
for i in range(rows):
stack = self.RowStack_Class(x, y, self)
stack.CARD_XOFFSET, stack.CARD_YOFFSET = 0, l.YOFFSET
s.rows.append(stack)
x += l.XS
x, y, = l.XM, l.YM
s.talon = self.Talon_Class(x, y, self)
l.createText(s.talon, "s")
y += l.TEXT_HEIGHT
for i in range(3):
y += l.YS
stack = self.ReserveStack_Class(x, y, self)
s.reserves.append(stack)
l.createText(stack, "se")
# define stack-groups
l.defaultStackGroups()
示例12: createGame
# 需要导入模块: from pysollib.layout import Layout [as 别名]
# 或者: from pysollib.layout.Layout import getTextAttr [as 别名]
def createGame(self):
rows = 8
l, s = Layout(self), self.s
self.setSize(l.XM + rows * l.XS, l.YM + 2 * l.YS + 20 * l.YOFFSET)
x, y = l.XM, l.YM
for i in range(rows):
s.rows.append(RK_RowStack(x, y, self))
x += l.XS
x, y = l.XM + (rows - 1) * l.XS / 2, self.height - l.YS
s.foundations.append(Waterfall_Foundation(x, y, self, suit=ANY_SUIT, max_cards=104))
stack = s.foundations[0]
tx, ty, ta, tf = l.getTextAttr(stack, "se")
font = self.app.getFont("canvas_default")
stack.texts.misc = MfxCanvasText(self.canvas, tx, ty, anchor=ta, font=font)
x, y = self.width - l.XS, self.height - l.YS
s.talon = DealRowTalonStack(x, y, self)
l.createText(s.talon, "sw")
l.defaultStackGroups()
示例13: createGame
# 需要导入模块: from pysollib.layout import Layout [as 别名]
# 或者: from pysollib.layout.Layout import getTextAttr [as 别名]
def createGame(self):
# create layout
l, s = Layout(self, TEXT_HEIGHT=40), self.s
help, text_width = self._getHelpText()
text_width += 2*l.XM
# set window
w = l.XM+5.5*l.XS+text_width
h = max(2*l.YS, 20*l.YOFFSET)
self.setSize(w, l.YM + l.YS + l.TEXT_HEIGHT + h)
# create stacks
x0 = l.XM + l.XS * 3 // 2
x, y = x0, l.YM
for i in range(4):
stack = self.Foundation_Class(x, y, self,
mod=13, dir=i+1, base_rank=i)
s.foundations.append(stack)
tx, ty, ta, tf = l.getTextAttr(stack, "s")
font = self.app.getFont("canvas_default")
stack.texts.misc = MfxCanvasText(self.canvas, tx, ty,
anchor=ta, font=font)
x = x + l.XS
self.texts.help = MfxCanvasText(
self.canvas, x + l.XM, y + l.CH // 2, text=help,
anchor="w", font=self.app.getFont("canvas_fixed"))
x = x0
y = l.YM + l.YS + l.TEXT_HEIGHT
for i in range(4):
s.rows.append(self.RowStack_Class(x, y, self))
x = x + l.XS
self.setRegion(s.rows, (-999, y-l.CH//2, 999999, 999999))
x = l.XM
s.talon = WasteTalonStack(x, y, self, max_rounds=1)
l.createText(s.talon, "n")
y = y + l.YS
s.waste = WasteStack(x, y, self, max_cards=1)
# define stack-groups
l.defaultStackGroups()
示例14: createGame
# 需要导入模块: from pysollib.layout import Layout [as 别名]
# 或者: from pysollib.layout.Layout import getTextAttr [as 别名]
def createGame(self, rows=3, cols=3, reserves=3, texts=False):
l, s = Layout(self), self.s
self.setSize(l.XM+(cols+2)*l.XS, l.YM+(rows+1.5)*l.YS)
x, y = self.width-l.XS, l.YM
s.talon = TalonStack(x, y, self)
l.createText(s.talon, 's')
x, y = self.width-l.XS, self.height-l.YS
s.foundations.append(AbstractFoundationStack(x, y, self,
suit=ANY_SUIT, max_accept=0,
max_move=0, max_cards=52))
l.createText(s.foundations[0], 'n')
y = l.YM
for i in range(rows):
x = l.XM
for j in range(cols):
s.rows.append(self.RowStack_Class(x, y, self, max_accept=1))
x += l.XS
y += l.YS
x, y = l.XM, self.height-l.YS
for i in range(reserves):
stack = self.Reserve_Class(x, y, self)
s.reserves.append(stack)
stack.CARD_XOFFSET = l.XOFFSET # for fifteens
x += l.XS
if texts:
stack = s.reserves[0]
tx, ty, ta, tf = l.getTextAttr(stack, "n")
font = self.app.getFont("canvas_default")
stack.texts.misc = MfxCanvasText(self.canvas, tx, ty,
anchor=ta, font=font)
l.defaultStackGroups()
示例15: createGame
# 需要导入模块: from pysollib.layout import Layout [as 别名]
# 或者: from pysollib.layout.Layout import getTextAttr [as 别名]
def createGame(self):
# create layout
l, s = Layout(self), self.s
# create texts 1)
ta = "ss"
x, y = l.XM, l.YM + 2*l.YS
if self.preview <= 1:
t = MfxCanvasText(self.canvas, x, y, anchor="nw",
font=self.app.getFont("canvas_default"),
text=_('''\
Royal Flush
Straight Flush
Four of a Kind
Full House
Flush
Straight
Three of a Kind
Two Pair
One Pair'''))
self.texts.list.append(t)
bb = t.bbox()
x = bb[1][0] + 16
h = bb[1][1] - bb[0][1]
if h >= 2*l.YS:
ta = "e"
t.move(0, -l.YS)
y = y - l.YS
t = MfxCanvasText(self.canvas, x, y, anchor="nw",
font=self.app.getFont("canvas_default"),
text="100\n75\n50\n25\n20\n15\n10\n5\n2")
self.texts.list.append(t)
x = t.bbox()[1][0] + 16
self.texts.misc = MfxCanvasText(self.canvas, x, y, anchor="nw",
font=self.app.getFont("canvas_default"),
text="0\n"*8+"0")
x = self.texts.misc.bbox()[1][0] + 32
# set window
w = max(2*l.XS, x)
self.setSize(l.XM + w + 5*l.XS + 50, l.YM + 5*l.YS + 30)
# create stacks
for i in range(5):
for j in range(5):
x, y = l.XM + w + j*l.XS, l.YM + i*l.YS
s.rows.append(self.RowStack_Class(x, y, self))
x, y = l.XM, l.YM
s.talon = self.Talon_Class(x, y, self)
l.createText(s.talon, anchor=ta)
s.internals.append(InvisibleStack(self)) # for _swapPairMove()
# create texts 2)
if self.preview <= 1:
for i in (4, 9, 14, 19, 24):
tx, ty, ta, tf = l.getTextAttr(s.rows[i], anchor="e")
t = MfxCanvasText(self.canvas, tx+8, ty,
anchor=ta,
font=self.app.getFont("canvas_default"))
self.texts.list.append(t)
for i in range(20, 25):
tx, ty, ta, tf = l.getTextAttr(s.rows[i], anchor="ss")
t = MfxCanvasText(self.canvas, tx, ty, anchor=ta,
font=self.app.getFont("canvas_default"))
self.texts.list.append(t)
self.texts.score = MfxCanvasText(self.canvas, l.XM, 5*l.YS, anchor="sw",
font=self.app.getFont("canvas_large"))
# define hands for scoring
r = s.rows
self.poker_hands = [
r[0:5], r[5:10], r[10:15], r[15:20], r[20:25],
(r[0], r[0+5], r[0+10], r[0+15], r[0+20]),
(r[1], r[1+5], r[1+10], r[1+15], r[1+20]),
(r[2], r[2+5], r[2+10], r[2+15], r[2+20]),
(r[3], r[3+5], r[3+10], r[3+15], r[3+20]),
(r[4], r[4+5], r[4+10], r[4+15], r[4+20]),
]
self.poker_hands = map(tuple, self.poker_hands)
# define stack-groups
l.defaultStackGroups()
return l