def createGame(self, rows=8, reserves=4, playcards=6): l, s = Layout(self), self.s self.setSize(l.XM + rows * l.XS, l.YM + 3 * l.YS + playcards * l.YOFFSET) dx = (self.width - l.XM - (reserves + 1) * l.XS) // 3 x, y = l.XM + dx, l.YM for i in range(reserves): s.reserves.append(ReserveStack(x, y, self)) x += l.XS x += dx max_cards = 52 * self.gameinfo.decks s.foundations.append( RK_FoundationStack(x, y, self, base_rank=ANY_RANK, mod=13, max_cards=max_cards)) l.createText(s.foundations[0], 'ne') x, y = l.XM, l.YM + l.YS for i in range(rows): s.rows.append(BasicRowStack(x, y, self)) x += l.XS s.talon = InitialDealTalonStack(l.XM, self.height - l.YS, self) l.defaultAll()
def createGame(self): # create layout l, s = Layout(self), self.s # set window self.setSize(l.XM + 8 * l.XS, l.YM + 4 * l.YS) # create stacks x, y, = l.XM, l.YM for i in range(8): s.foundations.append(self.Foundation_Class(x, y, self, ANY_SUIT)) x += l.XS x, y, = l.XM, y + l.YS for i in range(8): s.reserves.append(ReserveStack(x, y, self, max_accept=0)) x += l.XS x, y = l.XM + 3 * l.XS, l.YM + 3 * l.YS s.talon = WasteTalonStack(x, y, self, max_rounds=1) l.createText(s.talon, "sw") x += l.XS s.waste = WasteStack(x, y, self) l.createText(s.waste, "se") # define stack-groups l.defaultStackGroups()
def createGame(self): # create layout l, s = Layout(self), self.s # set window self.setSize(l.XM + 9 * l.XS, l.YM + 4 * l.YS) # create stacks for i in range(4): for j in range(5): x, y = l.XM + (j + 3) * l.XS, l.YM + i * l.YS s.rows.append(ReserveStack(x, y, self)) for i in range(4): dx, dy = ((2, 1), (8, 1), (2, 2), (8, 2))[i] x, y = l.XM + dx * l.XS, l.YM + dy * l.YS s.foundations.append(self.Foundation_Class(x, y, self, i)) x, y = l.XM, l.YM s.talon = WasteTalonStack(x, y, self, max_rounds=1) l.createText(s.talon, "se") y = y + l.YS s.waste = WasteStack(x, y, self) l.createText(s.waste, "se") # define stack-groups l.defaultStackGroups()
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()
def createGame(self, rows=9): l, s = Layout(self), self.s self.setSize(l.XM+11*l.XS, l.YM+4*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') y = l.YM for i in range(2): x = l.XM+2.5*l.XS for j in range(8): s.foundations.append( SS_FoundationStack(x, y, self, suit=j % 4, max_move=1)) x += l.XS y += l.YS x, y = l.XM, l.YM+2*l.YS stack = ReserveStack(x, y, self, max_cards=8) s.reserves.append(stack) stack.CARD_XOFFSET, stack.CARD_YOFFSET = 0, l.YOFFSET l.createText(stack, 'n') x, y = l.XM+2*l.XS, l.YM+2*l.YS for i in range(rows): s.rows.append(RK_RowStack(x, y, self, max_move=1, base_rank=KING)) x += l.XS l.defaultStackGroups()
def createGame(self): # create layout l, s = Layout(self), self.s # set window w, h = 3*l.XM+10*l.XS, 2*l.YM+2*l.YS+16*l.YOFFSET self.setSize(w, h) # create stacks s.talon = self.Talon_Class(l.XM, h-l.YS, self) x, y = 3*l.XM + 6*l.XS, l.YM for i in range(4): s.foundations.append( self.Foundation_Class( x, y, self, suit=i, mod=13, max_cards=26)) x += l.XS x, y = 2*l.XM, l.YM + l.YS + l.YM for i in range(10): s.rows.append(self.RowStack_Class(x, y, self)) x += l.XS x, y = l.XM, l.YM for i in range(6): s.reserves.append(ReserveStack(x, y, self)) x += l.XS # default l.defaultAll()
def createGame(self, rows=13, reserves=10, playcards=20): # create layout l, s = Layout(self), self.s # set window decks = self.gameinfo.decks max_rows = max(decks*4, rows, reserves) w, h = l.XM+max_rows*l.XS, l.YM+3*l.YS+playcards*l.YOFFSET self.setSize(w, h) # create stacks s.talon = self.Talon_Class(l.XM, h-l.YS, self) x, y = l.XM+(max_rows-decks*4)*l.XS/2, l.YM for j in range(4): for i in range(decks): s.foundations.append(self.Foundation_Class(x, y, self, suit=j)) x += l.XS x, y = l.XM+(max_rows-reserves)*l.XS/2, l.YM+l.YS for i in range(reserves): s.reserves.append(ReserveStack(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(self.RowStack_Class(x, y, self)) x += l.XS # default l.defaultAll()
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()
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()
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()
def createGame(self, max_rounds=2): l, s = Layout(self), self.s self.setSize(l.XM+8*l.XS, l.YM+4*l.YS) y = l.YM for i in range(2): x = l.XM for j in range(4): s.foundations.append(SS_FoundationStack(x, y, self, suit=j, base_rank=6, max_cards=7)) x += l.XS y += l.YS for i in range(2): x = l.XM for j in range(4): s.foundations.append(SS_FoundationStack(x, y, self, suit=j, base_rank=5, dir=-1, max_cards=6)) x += l.XS y += l.YS y = l.YM for i in range(3): x = l.XM+5*l.XS for j in range(3): s.rows.append(ReserveStack(x, y, self)) x += l.XS y += l.YS x, y = l.XM+5*l.XS, l.YM+3*l.YS s.talon = WasteTalonStack(x, y, self, max_rounds=1) l.createText(s.talon, 'sw') x += l.XS s.waste = WasteStack(x, y, self) l.createText(s.waste, 'se') l.defaultStackGroups()
def createGame(self, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=self.Rows, reserves=self.Reserves, texts=0, playcards=22) self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create stacks s.talon = self.Talon_Class(l.s.talon.x, l.s.talon.y, self) for r in l.s.foundations: s.foundations.append( self.Foundation_Class(r.x, r.y, self, suit=ANY_SUIT, base_rank=r.suit)) for r in l.s.rows: s.rows.append( self.RowStack_Class(r.x, r.y, self, base_rank=self.BaseRank, yoffset=l.YOFFSET)) for r in l.s.reserves: s.reserves.append(ReserveStack(r.x, r.y, self)) l.defaultAll()
def createGame(self): l, s = Layout(self), self.s self.setSize(l.XM + 8 * l.XS, l.YM + 5 * l.YS) y = l.YM for i in range(5): x = l.XM + (8 - i) * l.XS // 2 for j in range(i + 1): s.rows.append(ReserveStack(x, y, self)) x += l.XS y += l.YS suit = 0 for xx, yy in ((1.5, 1.5), (1, 2.5), (6.5, 1.5), (7, 2.5)): x, y = l.XM + xx * l.XS, l.YM + yy * l.YS s.foundations.append(SS_FoundationStack(x, y, self, suit)) suit += 1 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') l.defaultStackGroups()
def createGame(self): # create layout l, s = Layout(self), self.s # set window self.setSize(l.XM + 8 * l.XS, l.YM + 5 * l.YS) # create stacks x, y = l.XM, l.YM for i in range(8): s.foundations.append( SS_FoundationStack(x, y, self, suit=i // 2, max_cards=10)) x += l.XS y = l.YM + l.YS for i in range(3): x = l.XM for j in range(8): # stack = SS_RowStack(x, y, self, max_move=1) stack = ReserveStack(x, y, self) stack.CARD_YOFFSET = 0 s.rows.append(stack) x += l.XS y += l.YS x, y = self.width - l.XS, self.height - l.YS s.talon = DealRowTalonStack(x, y, self) l.createText(s.talon, 'sw') # define stack-groups l.defaultStackGroups()
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()
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()
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()
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
def createGame(self, reserves=6): # create layout l, s = Layout(self), self.s # set window w, h = 3*l.XM+5*l.XS, l.YM+4*l.YS+l.TEXT_HEIGHT+l.TEXT_MARGIN self.setSize(w, h) # create stacks lay = ((0, 0, 0, 1, 13), (2, 0, 0, 1, 13), (0, 1, 1, 1, 13), (2, 1, 1, 1, 13), (1, 1, 2, 0, 1), (1, 2, 2, 1, 13), (0, 2, 3, 1, 13), (2, 2, 3, 1, 13), (1, 0, 2, 1, 12), ) for i, j, suit, max_accept, max_cards in lay: x, y = 2*l.XM+l.XS+i*l.XS, l.YM+j*l.YS stack = SS_FoundationStack( x, y, self, suit=suit, max_move=0, max_accept=max_accept, max_cards=max_cards, mod=13) s.foundations.append(stack) x, y = l.XM, l.YM for i in range(reserves//2): s.rows.append(ReserveStack(x, y, self)) y += l.YS x, y = 3*l.XM+4*l.XS, l.YM for i in range(reserves//2): s.rows.append(ReserveStack(x, y, self)) y += l.YS x, y = 2*l.XM+1.5*l.XS, l.YM+3*l.YS s.talon = WasteTalonStack(x, y, self, max_rounds=3) l.createText(s.talon, "s") l.createRoundText(self.s.talon, 'sss') x += l.XS s.waste = WasteStack(x, y, self) l.createText(s.waste, "s") # define stack-groups l.defaultStackGroups()
def createGame(self): l, s = Layout(self), self.s self.setSize(l.XM + 9 * l.XS, l.YM + 6 * l.YS) # vertical rows x = l.XM + l.XS for i in (0, 1): y = l.YM + l.YS for j in range(4): stack = ReserveStack(x, y, self, base_suit=i) stack.getBottomImage = stack._getSuitBottomImage s.rows.append(stack) y += l.YS x += 6 * l.XS # horizontal rows y = l.YM + l.YS for i in (2, 3): x = l.XM + 2.5 * l.XS for j in range(4): stack = ReserveStack(x, y, self, base_suit=i) stack.getBottomImage = stack._getSuitBottomImage s.rows.append(stack) x += l.XS y += 3 * l.YS # foundations decks = self.gameinfo.decks for k in range(decks): suit = 0 for i, j in ((0, 3 - decks * 0.5 + k), (8, 3 - decks * 0.5 + k), (4.5 - decks * 0.5 + k, 0), (4.5 - decks * 0.5 + k, 5)): x, y = l.XM + i * l.XS, l.YM + j * l.YS s.foundations.append( SS_FoundationStack(x, y, self, suit=suit, max_move=0)) suit += 1 # talon & waste x, y = l.XM + 3.5 * l.XS, l.YM + 2.5 * l.YS s.talon = WasteTalonStack(x, y, self, max_rounds=2) l.createText(s.talon, 's') l.createRoundText(self.s.talon, 'nn') x += l.XS s.waste = WasteStack(x, y, self) l.createText(s.waste, 's') l.defaultStackGroups()
def createGame(self): l, s = Layout(self), self.s # Set window size h = max(3 * l.YS, 20 * l.YOFFSET) self.setSize(l.XM + 12 * l.XS, l.YM + l.YS + h) # Create foundations x = l.XM + l.XS * 3.5 y = l.YM s.foundations.append(SS_FoundationStack(x, y, self, 0, max_cards=14)) x = x + l.XS s.foundations.append(SS_FoundationStack(x, y, self, 1, max_cards=14)) x = x + l.XS s.foundations.append(SS_FoundationStack(x, y, self, 4, max_cards=22)) x = x + l.XS s.foundations.append(SS_FoundationStack(x, y, self, 2, max_cards=14)) x = x + l.XS s.foundations.append(SS_FoundationStack(x, y, self, 3, max_cards=14)) # Create reserves x = l.XM for i in range(3): s.reserves.append(ReserveStack(x, y, self)) x = x + l.XS x = x + l.XS * 6 for i in range(3): s.reserves.append(ReserveStack(x, y, self)) x = x + l.XS # Create rows x = l.XM y = l.YM + l.YS * 1.1 for i in range(12): s.rows.append(Skiz_RowStack(x, y, self)) x = x + l.XS self.setRegion(s.rows, (-999, int(y), 999999, 999999)) # Create talon s.talon = InitialDealTalonStack(l.XM, self.height-l.YS, self) # Define stack groups l.defaultStackGroups()
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()
def createGame(self): # create layout l, s = Layout(self), self.s # set window self.setSize(l.XM + 10 * l.XS, max(l.YM + l.YS + 20 * l.YOFFSET, 2 * l.YM + 5 * l.YS)) # create stacks x, y, = l.XM + 2 * l.XS, l.YM for i in range(4): s.foundations.append(SS_FoundationStack(x, y, self, suit=i)) x = x + l.XS for i in range(4): s.foundations.append( SS_FoundationStack(x, y, self, suit=i, base_rank=KING, dir=-1)) x = x + l.XS x, y = l.XM + 2 * l.XS, 2 * l.YM + l.YS for i in range(6): stack = BasicRowStack(x, y, self, max_move=1, max_accept=0) s.rows.append(stack) if not self.ROW_YOFFSET: stack.CARD_YOFFSET = 0 x = x + l.XS x, y = l.XM, 2 * l.YM + l.YS for i in range(4): self.s.reserves.append(ReserveStack(x, y, self)) y += l.YS x, y = l.XM + 9 * l.XS, 2 * l.YM + l.YS for i in range(4): self.s.reserves.append(ReserveStack(x, y, self)) y += l.YS s.talon = Tournament_Talon(l.XM, l.YM, self, max_rounds=3) l.createText(s.talon, "se") l.createRoundText(s.talon, 'ne') # define stack-groups l.defaultStackGroups()
def createGame(self): l, s = Layout(self), self.s # Set window size self.setSize(l.XM + l.XS * self.WIDTH, l.YM * 3 + l.YS * self.HEIGHT) # Create foundations x = self.width // 2 + l.XM // 2 - l.XS * 3 y = l.YM for j in range(2): for i in range(6): s.foundations.append( Hanafuda_SS_FoundationStack( x, y, self, i + (j * 6), max_cards=4, max_accept=1, base_rank=3)) x = x + l.XS x = self.width // 2 + l.XM // 2 - l.XS * 3 y = y + l.YS # Create flower beds x = l.XM y = l.YM * 2 + l.YS * 2 for j in range(self.YROWS): for i in range(self.XROWS): row = self.RowStack_Class( x, y, self, yoffset=0, max_accept=self.MAX_MOVE, max_move=self.MAX_MOVE, max_cards=self.MAX_CARDS, base_rank=0) row.CARD_XOFFSET = l.CW // 2 s.rows.append(row) x = x + self.width // self.XROWS x = l.XM y = y + l.YS self.setRegion(s.rows, (l.XM, l.YS * 2, 999999, y)) # Create pool x = self.width // 2 + l.XM // 2 - (l.XS * self.XRESERVES) // 2 for j in range(self.YRESERVES): for i in range(self.XRESERVES): s.reserves.append( ReserveStack(x, y, self, max_accept=self.MAX_RESERVE)) x = x + l.XS x = self.width // 2 + l.XM // 2 - l.XS * (self.XRESERVES // 2) y = y + l.YS if s.reserves: self.setRegion( s.reserves, (l.XM, l.YS * (2 + self.YROWS), 999999, 999999)) # Create talon s.talon = InitialDealTalonStack(l.XM, l.YM, self) # Define stack-groups l.defaultStackGroups()
def createGame(self): # create layout l, s = Layout(self), self.s # set window w, h = l.XM + 12 * l.XS, l.YM + 2 * l.YS + 2 * (l.YS + 5 * l.YOFFSET) self.setSize(w, h) # create stacks y = l.YM + 2 * l.YS for i in range(2): x = l.XM for j in range(12): s.rows.append(BasicRowStack(x, y, self, max_accept=0)) x += l.XS y += l.YS + 5 * l.YOFFSET x = l.XM + 2 * l.XS for j in range(2): for i in range(4): y = l.YM s.foundations.append( SS_FoundationStack(x, y, self, suit=j * 2 + i / 2)) y += l.YS s.foundations.append( SS_FoundationStack(x, y, self, suit=j * 2 + i / 2, base_rank=KING, dir=-1)) x += l.XS s.reserves.append(ReserveStack(l.XM, l.YM, self)) s.reserves.append(ReserveStack(w - l.XS, l.YM, self)) s.talon = InitialDealTalonStack(l.XM, l.YM + l.YS, self) # default l.defaultAll()
def createGame(self, rows=13, reserves=False): # create layout l, s = Layout(self), self.s # set window w, h = l.XM + rows * l.XS, l.YM + 2 * l.YS + 20 * l.YOFFSET self.setSize(w, h) # create stacks x, y, = l.XM + (rows - 4) * l.XS // 2, l.YM for i in range(4): stack = Osmosis_Foundation(x, y, self, i, base_rank=ANY_RANK, max_move=0) stack.CARD_XOFFSET, stack.CARD_YOFFSET = 0, l.YOFFSET s.foundations.append(stack) x += l.XS x, y, = l.XM, h - 2 * l.YS - 3 * l.YOFFSET for i in range(rows): s.rows.append(BasicRowStack(x, y, self)) x += l.XS x, y, = l.XM, h - l.YS - 3 * l.YOFFSET for i in range(rows): s.rows.append(BasicRowStack(x, y, self)) x += l.XS if reserves: s.reserves.append(ReserveStack(l.XM, l.YM, self)) s.reserves.append(ReserveStack(w - l.XS, l.YM, self)) s.talon = InitialDealTalonStack(l.XM, l.YM, self) # define stack-groups l.defaultStackGroups()
def createGame(self, rows=11, reserves=10): # create layout l, s = Layout(self), self.s # set size maxrows = max(rows, reserves) self.setSize(l.XM + (maxrows + 2) * l.XS, l.YM + 6 * l.YS) # playcards = 4 * l.YS / l.YOFFSET xoffset, yoffset = [], [] for i in range(playcards): xoffset.append(0) yoffset.append(l.YOFFSET) for i in range(78 * self.gameinfo.decks - playcards): xoffset.append(l.XOFFSET) yoffset.append(0) # create stacks x, y = l.XM + (maxrows - reserves) * l.XS / 2, l.YM for i in range(reserves): s.reserves.append(ReserveStack(x, y, self)) x = x + l.XS x, y = l.XM + (maxrows - rows) * l.XS / 2, l.YM + l.YS self.setRegion(s.reserves, (-999, -999, 999999, y - l.YM / 2)) for i in range(rows): stack = self.RowStack_Class(x, y, self, yoffset=l.YOFFSET) stack.CARD_XOFFSET = xoffset stack.CARD_YOFFSET = yoffset s.rows.append(stack) x = x + l.XS x, y = l.XM + maxrows * l.XS, l.YM for i in range(2): for suit in range(5): s.foundations.append( SS_FoundationStack(x, y, self, suit=suit, max_cards=14 + 8 * (suit == 4))) y = y + l.YS x, y = x + l.XS, l.YM self.setRegion(self.s.foundations, (x - l.XS * 2, -999, 999999, self.height - (l.YS + l.YM)), priority=1) s.talon = InitialDealTalonStack(self.width - 3 * l.XS / 2, self.height - l.YS, self) # define stack-groups l.defaultStackGroups()
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( RK_RowStack(x, y, self, base_rank=11, max_move=12, max_cards=99)) x = x + l.XS # Create reserve stacks x = self.width - l.XS y = l.YM for i in range(6): s.reserves.append(ReserveStack(x, y, self)) y = y + l.YS y = y - l.YS for i in range(4): x = x - l.XS s.reserves.append(ReserveStack(x, y, self)) self.setRegion(s.rows, (0, 0, l.XM + l.XS * 8, l.YS * 5)) # Create talon s.talon = DealRowTalonStack(l.XM, self.height - l.YS, self) l.createText(s.talon, "n") # Define stack groups l.defaultStackGroups()
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()
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)