Пример #1
0
    def createGame(self):
        rows = 12

        l, s = Layout(self), self.s
        self.setSize(l.XM + rows * l.XS, l.YM + 3 * l.YS + 16 * l.YOFFSET)

        x, y = l.XM + (rows - 8) * l.XS / 2, l.YM
        for i in range(4):
            s.foundations.append(SS_FoundationStack(x, y, self, suit=i))
            x += l.XS
        for i in range(4):
            s.foundations.append(
                SS_FoundationStack(x, y, self, suit=i, base_rank=KING, dir=-1))
            x += l.XS

        x, y = l.XM + l.XS / 2, l.YM + l.YS
        for i in range(rows / 2):
            s.reserves.append(BusyCards_FreeCell(x, y, self))
            x += 2 * l.XS

        x, y = l.XM, l.YM + 2 * l.YS
        for i in range(rows):
            s.rows.append(UD_SS_RowStack(x, y, self))
            x += l.XS

        x, y = l.XM, self.height - l.YS
        s.talon = InitialDealTalonStack(x, y, self)

        l.defaultStackGroups()
Пример #2
0
    def createGame(self, playcards=20, rows=8, reserves=1):

        decks = self.gameinfo.decks
        l, s = Layout(self), self.s
        self.setSize(
            l.XM + (reserves + 0.5 + rows) * l.XS,
            l.YM + max(2 * l.YS + 7 * l.YOFFSET, l.YS + playcards * l.YOFFSET))

        x, y = self.width - l.XS, self.height - l.YS
        s.talon = InitialDealTalonStack(x, y, self)

        x, y = l.XM, l.YM
        for i in range(reserves):
            stack = ReserveStack(x, y, self, max_cards=UNLIMITED_CARDS)
            stack.CARD_YOFFSET = l.YOFFSET
            s.reserves.append(stack)
            x += l.XS

        x, y = l.XM + (reserves + 0.5 + (rows - decks * 4) / 2.0) * l.XS, l.YM
        for i in range(4):
            s.foundations.append(RK_FoundationStack(x, y, self, suit=ANY_SUIT))
            x += l.XS

        x, y = l.XM + (reserves + 0.5) * l.XS, l.YM + l.YS
        for i in range(rows):
            s.rows.append(BasicRowStack(x, y, self, base_rank=NO_RANK))
            x += l.XS

        l.defaultStackGroups()
Пример #3
0
    def createGame(self):

        layout, s = Layout(self), self.s
        w0 = layout.XS+5*layout.XOFFSET
        self.setSize(layout.XM+5*w0, layout.YM+5*layout.YS)

        x, y = layout.XM, layout.YM
        for i in range(3):
            s.reserves.append(TripleAlliance_Reserve(x, y, self))
            x += layout.XS
        x, y = self.width-layout.XS, layout.YM
        s.foundations.append(AbstractFoundationStack(x, y, self, suit=ANY_SUIT,
                             max_move=0, max_accept=0, max_cards=52))
        layout.createText(s.foundations[0], 'nw')
        y = layout.YM+layout.YS
        nstacks = 0
        for i in range(4):
            x = layout.XM
            for j in range(5):
                stack = BasicRowStack(x, y, self, max_accept=0)
                s.rows.append(stack)
                stack.CARD_XOFFSET, stack.CARD_YOFFSET = layout.XOFFSET, 0
                x += w0
                nstacks += 1
                if nstacks >= 18:
                    break
            y += layout.YS

        x, y = self.width-layout.XS, self.height-layout.YS
        s.talon = InitialDealTalonStack(x, y, self)

        layout.defaultStackGroups()
Пример #4
0
    def createGame(self):

        l, s = Layout(self), self.s
        self.setSize(l.XM + 7 * l.XS, l.YM + 2 * l.YS + 12 * l.YOFFSET)

        x, y = l.XM, l.YM
        for i in range(2):
            s.reserves.append(OpenStack(x, y, self))
            x += l.XS

        x, y = l.XM + 3 * l.XS, l.YM
        for i in range(4):
            s.foundations.append(
                DieRussische_Foundation(x, y, self, suit=i, max_cards=8))
            x += l.XS

        x, y = l.XM + l.XS // 2, l.YM + l.YS
        for i in range(6):
            s.rows.append(
                Thirty_RowStack(x,
                                y,
                                self,
                                max_move=UNLIMITED_MOVES,
                                max_accept=UNLIMITED_ACCEPTS))
            x += l.XS

        x, y = self.width - l.XS, self.height - l.YS
        s.talon = InitialDealTalonStack(x, y, self)

        l.defaultAll()
    def createGame(self):
        reserves = 8
        rows = 10
        max_rows = max(8, rows, reserves)

        l, s = Layout(self), self.s
        self.setSize(l.XM + max_rows * l.XS, l.YM + 4 * l.YS + 12 * l.YOFFSET)

        s.addattr(reserves2=[])  # register extra stack variables

        x, y = l.XM + (max_rows - reserves) * l.XS // 2 + l.XS // 2, l.YM
        for i in range(reserves // 2):
            stack = Barrier_ReserveStack(x, y, self)
            s.reserves2.append(stack)
            l.createText(stack, "ne")
            x += 2 * l.XS
        x, y = l.XM + (max_rows - reserves) * l.XS // 2, l.YM + l.YS
        for i in range(reserves):
            s.reserves.append(OpenStack(x, y, self))
            x += l.XS
        x, y = l.XM + (max_rows - rows) * l.XS // 2, l.YM + 2 * l.YS
        for i in range(rows):
            s.rows.append(AC_RowStack(x, y, self))
            x += l.XS
        x, y = l.XM + (max_rows - 8) * l.XS // 2, self.height - l.YS
        for i in range(8):
            s.foundations.append(SS_FoundationStack(x, y, self, suit=i // 2))
            x += l.XS
        x, y = l.XM, self.height - l.YS
        s.talon = InitialDealTalonStack(x, y, self)

        l.defaultStackGroups()
Пример #6
0
    def createGame(self):
        l, s = Layout(self), self.s

        # Set window size
        h = max(5 * l.YS, 20 * l.YOFFSET)
        self.setSize(l.XM + 9 * l.XS, l.YM + l.YS + h)

        # Create foundations
        x = self.width - l.XS
        y = l.YM
        s.foundations.append(SS_FoundationStack(x, y, self, 4, max_cards=22))
        y = y + l.YS
        for i in range(4):
            s.foundations.append(
                SS_FoundationStack(x, y, self, i, max_cards=14))
            y = y + l.YS

        # Create rows
        x = l.XM
        y = l.YM
        for j in range(2):
            for i in range(8):
                s.rows.append(Excuse_RowStack(x, y, self,
                              max_move=1, max_accept=1, base_rank=NO_RANK))
                x = x + l.XS
            x = l.XM
            y = y + l.YS * 3
        self.setRegion(s.rows, (-999, -999, l.XM + l.XS * 8, 999999))

        # Create talon
        s.talon = InitialDealTalonStack(l.XM, self.height-l.YS, self)

        # Define stack groups
        l.defaultStackGroups()
Пример #7
0
    def createGame(self, rows=7, reserves=7):
        # create layout
        l, s = Layout(self), self.s

        # set window
        # (piles up to 16 cards are playable without
        #  overlap in default window size)
        h = max(3*l.YS, l.YS+(16-1)*l.YOFFSET)
        maxrows = max(rows, reserves)
        self.setSize(l.XM + (maxrows+1)*l.XS, l.YM + h + l.YS)

        # extra settings
        self.base_card = None

        # create stacks
        x, y = self.width - l.XS, l.YM
        for i in range(4):
            s.foundations.append(self.Foundation_Class(x, y, self, suit=i))
            y = y + l.YS
        self.setRegion(s.foundations, (x - l.CW//2, -999, 999999, 999999))
        x, y = l.XM + (maxrows-rows)*l.XS//2, l.YM
        for i in range(rows):
            s.rows.append(self.RowStack_Class(x, y, self))
            x = x + l.XS
        x, y = l.XM + (maxrows-reserves)*l.XS//2, self.height - l.YS
        for i in range(reserves):
            s.reserves.append(self.ReserveStack_Class(x, y, self))
            x = x + l.XS
        self.setRegion(s.reserves, (-999, y - l.CH // 2, 999999, 999999))
        s.talon = InitialDealTalonStack(l.XM+1, y, self)

        # define stack-groups
        l.defaultStackGroups()
Пример #8
0
    def createGame(self, rows=8, reserves=4, playcards=15):

        decks = self.gameinfo.decks

        l, s = Layout(self), self.s
        self.setSize(l.XM+rows*l.XS, l.YM+2*l.YS+playcards*l.YOFFSET)

        x, y = l.XM, l.YM
        for i in range(reserves):
            s.reserves.append(ReserveStack(x, y, self))
            x += l.XS

        x = self.width - 2*l.XS
        s.foundations.append(FourByFour_Foundation(x, y, self,
                             suit=ANY_SUIT, base_rank=ACE, max_cards=52*decks,
                             max_accept=1, max_move=0))
        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, l.YM+l.YS
        for i in range(rows):
            s.rows.append(AC_RowStack(x, y, self))
            x += l.XS

        x, y = l.XM, self.height-l.YS
        s.talon = InitialDealTalonStack(x, y, self)

        l.defaultStackGroups()
Пример #9
0
    def createGame(self, rows=6, playcards=18):
        # create layout
        layout, s = Layout(self), self.s

        # set window
        self.setSize(
            layout.XM + rows*layout.XS,
            layout.YM + 2*layout.YS + playcards*layout.XOFFSET)

        # create stacks
        x, y, = layout.XM, layout.YM+layout.YS
        for i in range(rows):
            s.rows.append(UD_RK_RowStack(x, y, self, mod=13))
            x += layout.XS

        x, y = layout.XM + (rows-1)*layout.XS//2, layout.YM
        stack = BlackHole_Foundation(x, y, self, max_move=0, suit=ANY_SUIT,
                                     base_rank=ANY_RANK, dir=0, mod=13,
                                     max_cards=52*self.gameinfo.decks)
        s.foundations.append(stack)
        layout.createText(stack, 'ne')

        x, y = layout.XM, self.height-layout.YS
        s.talon = InitialDealTalonStack(x, y, self)

        # define stack-groups
        layout.defaultStackGroups()
Пример #10
0
    def createGame(self):

        # create layout
        l, s = Layout(self), self.s

        # set window
        self.setSize(l.XM + 10.5 * l.XS, l.YM + 2 * l.YS + 20 * l.YOFFSET)

        # create stacks
        x, y = l.XM, l.YM + l.YS // 2
        for i in (0, 1):
            stack = ReserveStack(x, y, self, max_cards=4)
            s.reserves.append(stack)
            stack.CARD_YOFFSET = l.YOFFSET
            l.createText(stack, 'n')
            x += l.XS

        x, y = l.XM + 2.5 * l.XS, l.YM
        for i in range(8):
            s.foundations.append(SS_FoundationStack(x, y, self, suit=i // 2))
            x += l.XS

        x, y = l.XM + 2.5 * l.XS, l.YM + l.YS
        for i in range(8):
            s.rows.append(AC_RowStack(x, y, self))
            x += l.XS

        x, y = l.XM, self.height - l.YS
        s.talon = InitialDealTalonStack(x, y, self)

        # define stack-groups
        l.defaultStackGroups()
Пример #11
0
    def createGame(self, rows=8, reserves=8, playcards=7):
        # create layout
        l, s = Layout(self), self.s

        # set window
        max_rows = max(rows, reserves)
        w, h = l.XM + max_rows * l.XS, l.YM + 2 * l.YS + (
            14 + playcards) * l.YOFFSET
        self.setSize(w, h)

        # create stacks
        x, y = l.XM + (max_rows - rows) * l.XS // 2, l.YM
        for i in range(rows):
            stack = self.RowStack_Class(x, y, self, base_rank=ANY_RANK)
            stack.getBottomImage = stack._getReserveBottomImage
            s.rows.append(stack)
            x += l.XS
        x, y = l.XM + (max_rows -
                       reserves) * l.XS // 2, l.YM + l.YS + 14 * l.YOFFSET
        for i in range(reserves):
            stack = self.Reserve_Class(x, y, self)
            s.reserves.append(stack)
            stack.CARD_XOFFSET, stack.CARD_YOFFSET = 0, l.YOFFSET
            x += l.XS

        s.talon = InitialDealTalonStack(l.XM, l.YM, self)

        # default
        l.defaultAll()
Пример #12
0
    def createGame(self, rows=8, reserves=6):
        l, s = Layout(self), self.s
        w, h = l.XM + (rows + reserves +
                       1) * l.XS, l.YM + 3 * l.YS + 16 * l.YOFFSET
        self.setSize(w, h)
        x, y = l.XM + (rows + reserves + 1 - 8) * l.XS // 2, l.YM
        for i in range(8):
            s.foundations.append(SS_FoundationStack(x, y, self, suit=i % 4))
            x += l.XS
        x, y = l.XM, l.YM + l.YS
        for i in range(reserves):
            stack = Headquarters_Reserve(x,
                                         y,
                                         self,
                                         max_cards=UNLIMITED_CARDS,
                                         max_accept=UNLIMITED_CARDS,
                                         max_move=UNLIMITED_CARDS)
            s.reserves.append(stack)
            stack.CARD_YOFFSET = l.YOFFSET
            x += l.XS
        x, y = l.XM + (reserves + 1) * l.XS, l.YM + l.YS
        for j in range(rows):
            s.rows.append(AC_RowStack(x, y, self, base_rank=NO_RANK))
            x += l.XS
        x, y = w - l.XS, h - l.YS
        s.talon = InitialDealTalonStack(x, y, self)

        l.defaultStackGroups()
Пример #13
0
 def createGame(self):
     # create layout
     l, s = Layout(self), self.s
     self.setSize(l.XM + 8 * l.XS, l.YM + 2 * l.YS + 12 * l.YOFFSET)
     # create stacks
     x, y = l.XM, self.height - l.YS
     s.talon = InitialDealTalonStack(x, y, self)
     x, y = l.XM + l.XS, l.YM
     for i in range(2):
         s.reserves.append(ReserveStack(x, y, self))
         x += l.XS
     x += 2 * l.XS
     for i in range(2):
         s.foundations.append(
             AC_FoundationStack(x,
                                y,
                                self,
                                suit=ANY_SUIT,
                                max_cards=26,
                                mod=13,
                                max_move=0))
         x += l.XS
     x, y = l.XM, l.YM + l.YS
     for i in range(8):
         s.rows.append(AC_RowStack(x, y, self))
         x += l.XS
     # default
     l.defaultAll()
Пример #14
0
    def createGame(self, rows=8, playcards=16):
        # create layout
        l, s = Layout(self), self.s

        # set window
        decks = self.gameinfo.decks
        max_rows = max(8, rows)
        self.setSize(l.XM + max_rows * l.XS,
                     l.YM + 2 * l.YS + (playcards + 4 * decks) * l.YOFFSET)

        # create stacks
        x, y = l.XM + (max_rows - 8) * l.XS / 2, l.YM
        for i in range(8):
            stack = Choice_Foundation(x,
                                      y,
                                      self,
                                      base_rank=(i + 5),
                                      dir=0,
                                      suit=ANY_SUIT,
                                      max_cards=(4 * decks))
            stack.CARD_YOFFSET = l.YOFFSET
            s.foundations.append(stack)
            x += l.XS

        x, y = l.XM + (max_rows -
                       rows) * l.XS / 2, l.YM + l.YS + (4 * decks) * l.YOFFSET
        for i in range(rows):
            s.rows.append(AC_RowStack(x, y, self))
            x += l.XS

        x, y = self.width - l.XS, self.height - l.YS
        s.talon = InitialDealTalonStack(x, y, self)

        # define stack-groups
        l.defaultStackGroups()
Пример #15
0
    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()
Пример #16
0
    def createGame(self, playcards=5):
        # create layout
        layout, s = Layout(self), self.s

        # set window
        w = max(2*layout.XS, layout.XS+(playcards-1)*layout.XOFFSET)
        self.setSize(layout.XM + 5*w, layout.YM + 4*layout.YS)

        # create stacks
        y = layout.YM
        for i in range(5):
            x = layout.XM + i*w
            s.rows.append(self.RowStack_Class(x, y, self))
        for i in range(2):
            y = y + layout.YS
            for j in (0, 1, 3, 4):
                x = layout.XM + j*w
                s.rows.append(self.RowStack_Class(x, y, self))
        y = y + layout.YS
        for i in range(4):
            x = layout.XM + i*w
            s.rows.append(self.RowStack_Class(x, y, self))
        for r in s.rows:
            r.CARD_XOFFSET = layout.XOFFSET
            r.CARD_YOFFSET = 0
        x, y = layout.XM + 2*w, layout.YM + 3*layout.YS//2
        s.foundations.append(BlackHole_Foundation(x, y, self, suit=ANY_SUIT,
                             dir=0, mod=13, max_move=0, max_cards=52))
        layout.createText(s.foundations[0], "s")
        x, y = layout.XM + 4*w, self.height - layout.YS
        s.talon = InitialDealTalonStack(x, y, self)

        # define stack-groups
        layout.defaultStackGroups()
Пример #17
0
    def createGame(self):
        # create layout
        l, s = Layout(self), self.s

        # set window
        w, h = l.XM + max(9 * l.XS, 5 * l.XS +
                          18 * l.XOFFSET), l.YM + 2 * l.YS + 12 * l.YOFFSET
        self.setSize(w, h)

        # create stacks
        x, y = l.XM, l.YM
        stack = self.ReserveStack_Class(x, y, self)
        stack.CARD_XOFFSET, stack.CARD_YOFFSET = l.XOFFSET, 0
        s.reserves.append(stack)
        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
        for i in range(4):
            s.foundations.append(SS_FoundationStack(x, y, self, suit=i))
            x += l.XS

        x, y = l.XM + (w - (l.XM + 9 * l.XS)) / 2, l.YM + l.YS
        for i in range(9):
            s.rows.append(AC_RowStack(x, y, self, max_move=1))
            x += l.XS

        s.talon = InitialDealTalonStack(w - l.XS, h - l.YS, self)

        # define stack-groups
        l.defaultStackGroups()
Пример #18
0
    def createGame(self):
        # create layout
        layout, s = Layout(self), self.s

        # set window
        h = layout.YS + 6*layout.YOFFSET
        self.setSize(layout.XM + 7*layout.XS, layout.YM + 2*h)

        # create stacks
        y = layout.YM
        for i in range(7):
            x = layout.XM + i*layout.XS
            s.rows.append(
                UD_RK_RowStack(x, y, self, mod=13, base_rank=NO_RANK))
        y = layout.YM+h
        for i in range(6):
            x = layout.XM + i*layout.XS
            s.rows.append(
                UD_RK_RowStack(x, y, self, mod=13, base_rank=NO_RANK))
        stack = FourLeafClovers_Foundation(
            layout.XM+6*layout.XS, self.height-layout.YS, self,
            suit=ANY_SUIT, dir=0, mod=13,
            max_move=0, max_cards=52)
        s.foundations.append(stack)
        layout.createText(stack, 'n')
        x, y = layout.XM + 7*layout.XS, self.height - layout.YS
        s.talon = InitialDealTalonStack(x, y, self)

        # define stack-groups
        layout.defaultStackGroups()
Пример #19
0
    def createGame(self):
        # create layout
        l, s = Layout(self), self.s

        # set window
        # (piles up to 20 cards are playable in default window size)
        h = max(3*l.YS, 20*l.YOFFSET)
        self.setSize(l.XM + 10*l.XS, l.YM + l.YS + h)

        # create stacks
        x, y = l.XM, l.YM
        for i in range(4):
            s.reserves.append(ReserveStack(x + (i+3)*l.XS, y, self))
        for suit in range(4):
            i = (9, 0, 1, 8)[suit]
            s.foundations.append(SS_FoundationStack(x + i*l.XS, y, self, suit))
        x, y = l.XM, l.YM + l.YS
        for i in range(10):
            s.rows.append(self.RowStack_Class(x, y, self))
            x = x + l.XS
        self.setRegion(s.rows, (-999, y - l.CH // 2, 999999, 999999))
        s.talon = InitialDealTalonStack(l.XM, self.height-l.YS, self)

        # define stack-groups
        self.sg.openstacks = s.foundations + s.rows + s.reserves
        self.sg.talonstacks = [s.talon]
        self.sg.dropstacks = s.rows + s.reserves
        self.sg.reservestacks = s.reserves
Пример #20
0
    def createGame(self):
        # create layout
        layout, s = Layout(self), self.s

        # set window
        h = layout.YM+layout.YS+4*layout.YOFFSET
        self.setSize(layout.XM+7*layout.XS, 3*layout.YM+2*h+layout.YS)

        # create stacks
        x, y = layout.XM, layout.YM
        for i in range(7):
            s.rows.append(self.RowStack_Class(x, y, self))
            x += layout.XS
        x, y = layout.XM, layout.YM+h
        for i in range(6):
            s.rows.append(self.RowStack_Class(x, y, self))
            x += layout.XS
        for r in s.rows:
            r.CARD_XOFFSET, r.CARD_YOFFSET = 0, layout.YOFFSET

        x, y = layout.XM, self.height-layout.YS
        stack = BlackHole_Foundation(
            x, y, self, ANY_SUIT, dir=0, mod=13, max_move=0, max_cards=52,
            base_rank=ANY_RANK)
        s.foundations.append(stack)
        stack.CARD_XOFFSET, stack.CARD_YOFFSET = (self.width-layout.XS)//51, 0
        layout.createText(stack, 'n')
        x = self.width-layout.XS
        s.talon = InitialDealTalonStack(x, y, self)

        # define stack-groups
        layout.defaultStackGroups()
Пример #21
0
    def createGame(self, rows=8, reserves=8):
        # create layout
        l, s = Layout(self), self.s

        # set window
        # (piles up to 16 cards are playable without
        # overlap in default window size)
        h = max(2*l.YS, l.YS+(16-1)*l.YOFFSET)
        maxrows = max(rows, reserves)
        self.setSize(l.XM + maxrows*l.XS, l.YM + l.YS + h + l.YS)

        # create stacks
        x, y = l.XM + (maxrows-4)*l.XS//2, l.YM
        for i in range(4):
            s.foundations.append(SS_FoundationStack(x, y, self, i))
            x = x + l.XS
        x, y = l.XM + (maxrows-rows)*l.XS//2, y + l.YS
        for i in range(rows):
            s.rows.append(self.RowStack_Class(x, y, self))
            x = x + l.XS
        x, y = l.XM + (maxrows-reserves)*l.XS//2, self.height - l.YS
        for i in range(reserves):
            s.reserves.append(ReserveStack(x, y, self))
            x = x + l.XS
        self.setRegion(s.reserves, (-999, y - l.CH // 2, 999999, 999999))
        s.talon = InitialDealTalonStack(l.XM, l.YM, self)

        # define stack-groups
        l.defaultStackGroups()
Пример #22
0
    def createGame(self):
        l, s = Layout(self), self.s
        w, h = l.XM + 9 * l.XS, l.YM + l.YS + 16 * l.YOFFSET
        self.setSize(w, h)

        x, y = l.XM, l.YM
        for i in range(4):
            stack = Striptease_Reserve(x,
                                       y,
                                       self,
                                       max_move=1,
                                       min_cards=1,
                                       max_accept=0)
            stack.CARD_XOFFSET, stack.CARD_YOFFSET = 0, l.YOFFSET
            s.reserves.append(stack)
            x += l.XS
        x += l.XS
        for i in range(4):
            stack = Striptease_RowStack(x, y, self, max_move=0, mod=13)
            stack.CARD_XOFFSET, stack.CARD_YOFFSET = 0, l.YOFFSET
            s.rows.append(stack)
            x += l.XS
        s.talon = InitialDealTalonStack(w - l.XS, h - l.YS, self)

        l.defaultAll()
Пример #23
0
    def createGame(self):
        # create layout
        l, s = Layout(self), self.s

        # set window
        # (set size so that at least 4 cards are fully playable)
        # w = max(2*l.XS, l.XS+(self.PLAYCARDS-1)*l.XOFFSET+2*l.XM)
        w = l.XS + (self.PLAYCARDS - 1) * l.XOFFSET + 3 * l.XOFFSET
        twidth, theight = self.TWIDTH, int((self.NSTACKS - 1) / self.TWIDTH +
                                           1)
        self.setSize(l.XM + twidth * w, l.YM + theight * l.YS)

        # create stacks
        y = l.YM
        for i in range(theight):
            x = l.XM
            for j in range(twidth):
                if i * twidth + j >= self.NSTACKS:
                    break
                stack = PileOn_RowStack(x,
                                        y,
                                        self,
                                        dir=0,
                                        max_cards=self.PLAYCARDS)
                stack.CARD_XOFFSET, stack.CARD_YOFFSET = l.XOFFSET, 0
                s.rows.append(stack)
                x = x + w
            y = y + l.YS
        x, y = self.width - l.XS, self.height - l.YS
        s.talon = InitialDealTalonStack(x, y, self)

        # define stack-groups
        self.sg.openstacks = s.rows
        self.sg.talonstacks = [s.talon]
        self.sg.dropstacks = s.rows
Пример #24
0
    def createGame(self, reserves=6):
        # create layout
        l, s = Layout(self), self.s

        # set window
        w, h = 2 * l.XM + (4 + reserves) * l.XS, l.YM + l.YS + 16 * l.YOFFSET
        self.setSize(w, h)

        # create stacks
        x, y = l.XM, l.YM
        for i in range(4):
            s.rows.append(
                self.RowStack_Class(x, y, self, max_move=1, max_accept=0))
            x += l.XS
        x += l.XM
        for i in range(reserves):
            stack = self.Foundation_Class(x,
                                          y,
                                          self,
                                          suit=ANY_SUIT,
                                          base_rank=ANY_RANK)
            stack.CARD_XOFFSET, stack.CARD_YOFFSET = 0, l.YOFFSET
            s.foundations.append(stack)
            x += l.XS
        s.talon = InitialDealTalonStack(w - l.XS, h - l.YS, self)

        # default
        l.defaultAll()
Пример #25
0
    def createGame(self):
        # create layout
        l, s = Layout(self), self.s

        # set window
        self.setSize(l.XM+9*l.XS, l.YM+3*l.YS+12*l.YOFFSET)

        # create stacks
        x, y = l.XM, l.YM
        for i in range(4):
            s.foundations.append(
                Rittenhouse_Foundation(x, y, self, max_move=0))
            x += l.XS
        x += l.XS
        for i in range(4):
            s.foundations.append(Rittenhouse_Foundation(x, y, self,
                                 base_rank=KING, dir=-1, max_move=0))
            x += l.XS
        x, y = l.XM, l.YM+l.YS
        for i in range(9):
            s.rows.append(UD_RK_RowStack(x, y, self))
            x += l.XS

        s.talon = InitialDealTalonStack(l.XM, self.height-l.YS, self)

        # default
        l.defaultAll()
Пример #26
0
    def createGame(self):
        # create layout
        l, s = Layout(self), self.s

        # set window
        self.setSize(l.XM + 10 * l.XS, l.YM + 5 * l.YS)

        # create stacks
        for i in range(3):
            for j in range(10):
                x, y, = l.XM + j * l.XS, l.YM + (i + 1) * l.YS
                s.rows.append(
                    SiebenBisAs_RowStack(x, y, self, max_accept=1,
                                         max_cards=1))
        for i in range(2):
            x, y, = l.XM + (i + 4) * l.XS, l.YM
            s.reserves.append(ReserveStack(x, y, self, max_accept=0))
        for i in range(4):
            x, y, = l.XM + (i + 3) * l.XS, l.YM + 4 * l.YS
            s.foundations.append(
                SiebenBisAs_Foundation(x,
                                       y,
                                       self,
                                       i,
                                       base_rank=6,
                                       mod=13,
                                       max_move=0,
                                       max_cards=8))
        s.talon = InitialDealTalonStack(l.XM, self.height - l.YS, self)

        # define stack-groups
        l.defaultStackGroups()
Пример #27
0
    def createGame(self):
        l, s = Layout(self), self.s

        # Set window size
        self.setSize(l.XM * 3 + l.XS * 9, l.YM + l.YS * 6)

        # Create row stacks
        x = l.XM
        y = l.YM
        for i in range(8):
            s.rows.append(
                Matsukiri_RowStack(x,
                                   y,
                                   self,
                                   yoffset=l.CH // 2,
                                   max_cards=12,
                                   max_accept=12))
            x = x + l.XS
        self.setRegion(s.rows, (-999, -999, l.XM + (l.XS * 8) + 10, 999999))

        # Create foundation
        x = x + l.XM * 2
        s.foundations.append(MatsuKiri_Foundation(x, y, self, ANY_SUIT))

        # Create talon
        s.talon = InitialDealTalonStack(self.width - l.XS, self.height - l.YS,
                                        self)

        # Define stack groups
        l.defaultStackGroups()
Пример #28
0
    def createGame(self):
        # create layout
        l, s = Layout(self), self.s

        # set window
        w, h = 3 * l.XM + 8 * l.XS, l.YM + 2 * l.YS + 15 * l.YOFFSET
        self.setSize(w, h)

        # create stacks
        x, y = 2 * l.XM, l.YM + l.YS
        for i in range(8):
            s.rows.append(self.RowStack_Class(x, y, self))
            x += l.XS
        y = l.YM
        for i in range(4):
            x = l.XM + i * l.XS
            s.foundations.append(SS_FoundationStack(x, y, self, i, max_move=0))
            x += 2 * l.XM + 4 * l.XS
            s.foundations.append(
                SS_FoundationStack(x,
                                   y,
                                   self,
                                   i,
                                   base_rank=KING,
                                   max_move=0,
                                   dir=-1))

        s.talon = InitialDealTalonStack(w - l.XS, h - l.YS, self)

        # default
        l.defaultAll()
Пример #29
0
    def createGame(self):
        # create layout
        layout, s = Layout(self), self.s

        # set window
        h1 = layout.YS+5*layout.YOFFSET
        self.setSize(layout.XM+7*layout.XS, layout.YM+2*h1+layout.YS)

        # create stacks
        y = layout.YM
        for i in (0, 1):
            x = layout.XM
            for j in range(5):
                stack = Exit_RowStack(x, y, self, base_rank=NO_RANK,
                                      max_move=1, max_accept=1, dir=0)
                s.rows.append(stack)
                stack.CARD_YOFFSET = layout.YOFFSET
                x += layout.XS
            y += h1
        x, y = self.width-layout.XS, layout.YM
        stack = Exit_RowStack(x, y, self, base_rank=NO_RANK,
                              max_move=1, max_accept=1, dir=0)
        s.reserves.append(stack)
        stack.CARD_YOFFSET = layout.YOFFSET
        x, y = self.width-layout.XS, self.height-layout.YS
        s.foundations.append(AbstractFoundationStack(x, y, self, suit=ANY_SUIT,
                             max_accept=0, max_move=0, max_cards=52))
        layout.createText(s.foundations[0], "n")
        x, y = layout.XM, self.height-layout.YS
        s.talon = InitialDealTalonStack(x, y, self)

        # define stack-groups
        layout.defaultStackGroups()
Пример #30
0
    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()