Exemplo n.º 1
0
    def createGame(self):

        l, s = Layout(self), self.s
        playcards = 7
        w0 = l.XS + (playcards - 1) * l.XOFFSET
        w, h = l.XM + 3 * w0 + 4 * l.XS, l.YM + 6 * l.YS
        self.setSize(w, h)

        x1, x2 = l.XM, self.width - 2 * l.XS
        for i in range(2):
            y = l.YM
            for j in range(4):
                s.foundations.append(
                    SS_FoundationStack(x1, y, self, suit=j, dir=2,
                                       max_cards=7))
                s.foundations.append(
                    SS_FoundationStack(x2,
                                       y,
                                       self,
                                       base_rank=1,
                                       suit=j,
                                       dir=2,
                                       max_cards=6))
                y += l.YS
            x1 += l.XS
            x2 += l.XS

        x, y = l.XM + 3 * l.XS, l.YM
        for i in (0, 1):
            stack = SS_RowStack(x, y, self, max_move=1, base_rank=KING)
            stack.CARD_XOFFSET, stack.CARD_YOFFSET = l.XOFFSET, 0
            s.rows.append(stack)
            x += w0
        y = l.YM + l.YS
        for i in range(4):
            x = l.XM + 2 * l.XS
            for j in range(3):
                stack = SS_RowStack(x, y, self, max_move=1, base_rank=KING)
                stack.CARD_XOFFSET, stack.CARD_YOFFSET = l.XOFFSET, 0
                s.rows.append(stack)
                x += w0
            y += l.YS
        x, y = l.XM + 3 * l.XS, l.YM + 5 * l.YS
        for i in (0, 1):
            stack = SS_RowStack(x, y, self, max_move=1, base_rank=KING)
            stack.CARD_XOFFSET, stack.CARD_YOFFSET = l.XOFFSET, 0
            s.rows.append(stack)
            x += w0

        x, y = l.XM, self.height - l.YS
        s.talon = ForestGlade_Talon(x, y, self, max_rounds=3)
        l.createText(s.talon, 'ne')
        l.createRoundText(s.talon, 'se')

        l.defaultStackGroups()
Exemplo n.º 2
0
    def createGame(self):

        l, s = Layout(self), self.s

        w, h = l.XM + 8 * l.XS, 2 * l.YM + 3 * l.YS
        self.setSize(w, h)

        x, y = l.XM + 3 * l.XS, l.YM
        for i in range(4):
            s.foundations.append(SS_FoundationStack(x, y, self, suit=i))
            x += l.XS
        x, y = l.XM, l.YM
        s.talon = WasteTalonStack(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')
        y = 2 * l.YM + l.YS
        for i in range(2):
            x = l.XM + 2 * l.XS
            for j in range(6):
                stack = SS_RowStack(x, y, self, max_move=1)
                stack.CARD_XOFFSET, stack.CARD_YOFFSET = 0, 0
                s.rows.append(stack)
                x += l.XS
            y += l.YS

        l.defaultStackGroups()
Exemplo n.º 3
0
    def createGame(self):
        l, s = Layout(self), self.s

        self.setSize(l.XM + 12 * l.XS,
                     l.YM + max(4.5 * l.YS, 2 * l.YS + 12 * 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 += 2 * l.XS
        for i in range(8):
            s.foundations.append(SS_FoundationStack(x, y, self, suit=i // 2))
            x += l.XS
        x, y = l.XM, l.YM + l.YS * 3 // 2
        for i in range(3):
            s.reserves.append(ReserveStack(x, y, self))
            y += l.YS
        x, y = l.XM + 2 * l.XS, l.YM + l.YS
        for i in range(10):
            s.rows.append(SS_RowStack(x, y, self, max_move=1))
            x += l.XS

        l.defaultStackGroups()
Exemplo n.º 4
0
    def createGame(self):
        l, s = Layout(self), self.s

        self.setSize(l.XM + 10 * l.XS, l.YM + 3 * l.YS + 16 * l.YOFFSET)

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

        x, y, = l.XM, l.YM + l.YS
        for i in range(10):
            s.rows.append(SS_RowStack(x, y, self, max_move=1))
            x += l.XS

        x, y = l.XM, self.height - l.YS
        s.talon = ThreePirates_Talon(x, y, self)
        l.createText(s.talon, 'n')
        x += l.XS
        for i in (0, 1, 2):
            stack = WasteStack(x, y, self)
            s.reserves.append(stack)
            l.createText(stack, 'n')
            x += l.XS

        l.defaultStackGroups()
Exemplo n.º 5
0
    def createGame(self):

        l, s = Layout(self), self.s

        w, h = l.XM+8*l.XS, l.YM+4*l.YS
        self.setSize(w, h)

        x, y = l.XM, l.YM
        for i in range(8):
            s.foundations.append(SS_FoundationStack(x, y, self,
                                 suit=i//2, base_rank=KING, mod=13))
            x += l.XS
        x, y = l.XM, l.YM+l.YS
        s.talon = TheSpark_Talon(x, y, self, max_rounds=1, num_deal=3)
        l.createText(s.talon, 'se')
        y += l.YS
        for i in (0, 1):
            stack = WasteStack(x, y, self)
            s.reserves.append(stack)
            l.createText(stack, 'se')
            y += l.YS
        y = l.YM+l.YS*3//2
        for i in range(2):
            x = l.XM+2*l.XS
            for j in range(6):
                stack = SS_RowStack(x, y, self, max_move=1)
                stack.CARD_XOFFSET, stack.CARD_YOFFSET = 0, 0
                s.rows.append(stack)
                x += l.XS
            y += l.YS

        l.defaultStackGroups()
Exemplo n.º 6
0
    def createGame(self):

        l, s = Layout(self), self.s

        w1 = l.XS+12*l.XOFFSET
        w, h = l.XM+2*l.XS+2*w1, l.YM+4*l.YS
        self.setSize(w, h)

        for x, y in ((l.XM,                l.YM),
                     (l.XM+w1+2*l.XS+l.XM, l.YM),
                     (l.XM,                l.YM+3*l.YS),
                     (l.XM+w1+2*l.XS+l.XM, l.YM+3*l.YS),):
            stack = SS_RowStack(x, y, self, max_move=1)
            stack.CARD_XOFFSET, stack.CARD_YOFFSET = l.XOFFSET, 0
            s.rows.append(stack)
        i = 0
        for x, y in ((l.XM+w1,                    l.YM),
                     (l.XM+w1+l.XS,               l.YM),
                     (l.XM+w1-2*l.XS-l.XS//2-l.XM, l.YM+1.5*l.YS),
                     (l.XM+w1-l.XS-l.XS//2-l.XM,   l.YM+1.5*l.YS),
                     (l.XM+w1+2*l.XS+l.XS//2+l.XM, l.YM+1.5*l.YS),
                     (l.XM+w1+3*l.XS+l.XS//2+l.XM, l.YM+1.5*l.YS),
                     (l.XM+w1,                    l.YM+3*l.YS),
                     (l.XM+w1+l.XS,               l.YM+3*l.YS),):
            s.foundations.append(SS_FoundationStack(x, y, self, suit=i % 4))
            i += 1
        x, y = l.XM+w1, l.YM+1.5*l.YS
        s.talon = WasteTalonStack(x, y, self, max_rounds=4)
        l.createText(s.talon, 's')
        l.createRoundText(s.talon, 'nn')
        x += l.XS
        s.waste = WasteStack(x, y, self)
        l.createText(s.waste, 's')

        l.defaultStackGroups()
Exemplo n.º 7
0
    def createGame(self):

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

        x, y = l.XM+l.XS, l.YM
        for i in range(8):
            s.foundations.append(SS_FoundationStack(x, y, self, suit=i % 4,
                                 base_rank=JACK, dir=-1, max_cards=11))
            x += l.XS
        x, y = l.XM+l.XS, l.YM+l.YS
        for i in range(8):
            s.foundations.append(Adela_Foundation(x, y, self, suit=i % 4,
                                 base_rank=QUEEN, max_cards=1))
            x += l.XS
        x, y = l.XM+l.XS, l.YM+2*l.YS
        for i in range(8):
            s.foundations.append(Adela_Foundation(x, y, self, suit=i % 4,
                                 base_rank=KING, max_cards=1))
            x += l.XS
        x, y = l.XM, l.YM+l.YS
        s.talon = DealRowTalonStack(x, y, self)
        l.createText(s.talon, 'n')
        x, y = l.XM+l.XS//2, l.YM+3*l.YS
        for i in range(9):
            stack = SS_RowStack(x, y, self, max_move=1, dir=1)
            s.rows.append(stack)
            stack.CARD_YOFFSET = 0
            x += l.XS

        l.defaultStackGroups()
Exemplo n.º 8
0
    def createGame(self, rows=8):
        # create layout
        l, s = Layout(self), self.s

        # set window
        w, h = l.XM + (rows + 2) * l.XS, max(
            l.YM + 3 * l.XS + 10 * l.YOFFSET,
            l.YM + 2 * l.YS + self.RESERVE_CARDS * l.YOFFSET + l.TEXT_HEIGHT)
        self.setSize(w, h)

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

        x, y = l.XM + rows * l.XS // 2, l.YM
        s.reserves.append(Backbone_BraidStack(x, y, self, max_accept=0))
        x += l.XS
        s.reserves.append(Backbone_BraidStack(x, y, self, max_accept=0))
        x, y = l.XM + (rows +
                       1) * l.XS // 2, l.YM + self.RESERVE_CARDS * l.YOFFSET
        s.reserves.append(BasicRowStack(x, y, self, max_accept=0))

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

        x, y = l.XM + rows * l.XS // 2, h - l.YS
        s.talon = WasteTalonStack(x, y, self, max_rounds=1)
        l.createText(s.talon, "n")
        x += l.XS
        s.waste = WasteStack(x, y, self)
        l.createText(s.waste, "n")

        # define stack-groups
        l.defaultStackGroups()
    def createGame(self):

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

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

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

        x, y = l.XM + l.XS, l.YM
        for i in range(8):
            s.rows.append(
                SS_RowStack(x, y, self, dir=1, max_move=1, max_accept=1))
            x += l.XS
        x, y = l.XM + l.XS, l.YM + l.YS + h
        for i in range(8):
            s.rows.append(
                SS_RowStack(x, y, self, dir=-1, max_move=1, max_accept=1))
            x += l.XS

        x, y = l.XM + l.XS, l.YM + h
        for i in range(8):
            stack = HeadsAndTails_Reserve(x, y, self)
            s.reserves.append(stack)
            l.createText(stack, "n")
            x += l.XS

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

        # define stack-groups
        l.defaultStackGroups()
Exemplo n.º 10
0
 def createGame(self):
     # create layout
     l, s = Layout(self), self.s
     Layout.bakersDozenLayout(l, rows=13)
     self.setSize(l.size[0], l.size[1])
     # create stacks
     s.talon = Cruel_Talon(l.s.talon.x, l.s.talon.y, self, max_rounds=-1)
     for r in l.s.foundations:
         s.foundations.append(
             SS_FoundationStack(r.x, r.y, self, suit=r.suit))
     for r in l.s.rows:
         s.rows.append(SS_RowStack(r.x, r.y, self, base_rank=NO_RANK))
     # default
     l.defaultAll()
Exemplo n.º 11
0
    def createGame(self):

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

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

        # create stacks
        x, y = l.XM, l.YM
        for i in range(12):
            stack = TwelveSleepingMaids_Reserve(x, y, self)
            stack.CARD_YOFFSET = l.YOFFSET
            s.reserves.append(stack)
            x += l.XS

        x, y = l.XM + 2 * l.XS, l.YM + l.YS + 3 * l.YOFFSET
        for i in range(8):
            s.foundations.append(
                SS_FoundationStack(x,
                                   y,
                                   self,
                                   suit=i // 2,
                                   base_rank=KING,
                                   mod=13))
            x += l.XS

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

        x, y = self.width - 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 = WasteStack(x, y, self)
        l.createText(s.waste, 'n')

        # define stack-groups
        l.defaultStackGroups()
Exemplo n.º 12
0
    def createGame(self):
        # create layout
        l, s = Layout(self), self.s
        s.addattr(xwastes=[])  # register extra stack variable

        # set window
        w, h = l.XM + 11 * l.XS, l.YM + 6 * l.YS
        self.setSize(w, h)

        # create stacks
        x, y, = l.XM, l.YM
        s.talon = Interment_Talon(x, y, self)
        l.createText(s.talon, 'ne')
        x += 1.5 * l.XS
        for i in range(8):
            s.foundations.append(SS_FoundationStack(x, y, self, suit=i / 2))
            x += l.XS
        x, y = l.XM, l.YM + l.YS
        for i in range(3):
            stack = Interment_Waste(x, y, self, max_cards=UNLIMITED_CARDS)
            l.createText(stack, 'ne')
            s.xwastes.append(stack)
            y += l.YS
        x, y = l.XM + 1.5 * l.XS, l.YM + l.YS
        for i in range(8):
            s.rows.append(SS_RowStack(x, y, self, max_move=1))
            x += l.XS
        x, y = self.width - l.XS, l.YM
        stack = Interment_Reserve(x, y, self)
        s.reserves.append(stack)
        l.createText(stack, 'nw')
        y += l.YS
        for i in range(5):
            s.reserves.append(OpenStack(x, y, self))
            y += l.YS

        # define stack-groups
        l.defaultStackGroups()
        self.sg.dropstacks += s.xwastes
        self.sg.openstacks += s.xwastes
        self.sg.dropstacks.append(s.talon)
Exemplo n.º 13
0
    def createGame(self):
        # create layout
        l, s = Layout(self), self.s

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

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

        # foundations
        suit = 0
        x0, y0 = l.XM + 1.5 * l.XS, l.YM + 1.5 * l.YS + l.TEXT_HEIGHT
        for xx, yy in ((3, 0), (0, 3), (3, 3), (0, 0)):
            x, y = x0 + xx * l.XS, y0 + yy * l.YS
            s.foundations.append(
                SS_FoundationStack(x,
                                   y,
                                   self,
                                   suit=suit,
                                   base_rank=KING,
                                   mod=13,
                                   max_cards=26,
                                   dir=-1,
                                   max_move=0))
            suit += 1

        # rows
        x0, y0 = l.XM + l.XS, l.YM + l.YS + l.TEXT_HEIGHT
        for xx, yy in ((0, 2), (2, 0), (4, 2), (2, 4)):
            x, y = x0 + xx * l.XS, y0 + yy * l.YS
            stack = SS_RowStack(x, y, self, dir=1, mod=13, max_move=1)
            stack.getBottomImage = stack._getReserveBottomImage
            stack.CARD_YOFFSET = 0
            s.rows.append(stack)

        # left stack
        x, y = l.XM, l.YM + l.YS + l.TEXT_HEIGHT
        stack = SS_RowStack(x,
                            y,
                            self,
                            base_rank=ACE,
                            dir=1,
                            mod=13,
                            max_move=1)
        stack.getBottomImage = stack._getReserveBottomImage
        stack.CARD_YOFFSET = 0
        s.rows.append(stack)

        # reserves
        x0, y0 = l.XM + 2 * l.XS, l.YM + 2 * l.YS + l.TEXT_HEIGHT
        for xx, yy, anchor in ((0, 1, 'e'), (1, 0, 's'), (2, 1, 'w'), (1, 2,
                                                                       'n')):
            x, y = x0 + xx * l.XS, y0 + yy * l.YS
            stack = OpenStack(x, y, self)
            l.createText(stack, anchor)
            s.reserves.append(stack)

        # wastes
        x, y = l.XM + l.XS, l.YM
        for i in range(5):
            stack = WasteStack(x, y, self)
            l.createText(stack, 's', text_format='%D')
            s.wastes.append(stack)
            x += l.XS

        # talon
        x, y = l.XM, l.YM
        s.talon = Well_TalonStack(x, y, self, max_rounds=5)
        l.createText(s.talon, "s")

        # define stack-groups
        self.sg.talonstacks = [s.talon] + s.wastes
        self.sg.openstacks = s.foundations + s.rows
        self.sg.dropstacks = s.rows + s.wastes + s.reserves