import random
class Stack():
def __init__(showing=True, overlap=100):
self.cards = ['A2', 'A4', 'A10', 'A1']
self.overlap = overlap
self.showing = True # do the cards face upward or are the contents hidden?
def get_top_card_of_stack_one(self):
return self.cards.pop() # pop removes and returns the first element of a list
def put_card_on_top_of_stack_one(self, card):
self.cards.insert(0, card)
def shuffle(self):
random.shuffle(self.cards)
def display_stack(self)
if overlap = 100: # 100% overlap
pass # test for self.showing and display the stack
elif overlap = 50: # the cards are overlapping by 50% of their width, and you see how many there are
pass # test for self.showing and display the stack
我建议将UI层与逻辑层分开。根据纸牌的中心点来计算它们在你的游戏板上的位置以及在上面的位置听起来非常麻烦。虽然这些卡片可能直接位于彼此的顶部,或者重叠一半的卡片宽度,但基本逻辑是这样的,据我从你的问题中理解:你只能移动最上面的卡片
让我们假设你在游戏板上有四个地方可以放下牌——这些是我们的牌堆,你可以从中挑选或在上面放另一张牌。所有四个堆栈(S1、S2、S3、S4)可以包括许多卡(A1、A2、A3,…),但也可以是空的
UI层: 对于每个堆栈,决定如何以特定方式显示它们(重叠50%,重叠100%,等等)。如果单击堆栈,将自动选择最上面的卡,您可能会有一些动画(例如拖放)。要获得卡片的“内容”,我们需要查看“订单”层
“订单”-层: 我们不仅需要跟踪哪张卡在上面,还需要跟踪底层卡的顺序。我建议使用列表进行此操作。由于您将在游戏场上的不同位置上拥有多个“堆栈”牌,因此创建一个“堆栈”类可能非常有用,该类具有与一堆牌交互所需的所有功能。通过这种方式,您可以为每个可能的区域创建一个“Stack”类的实例,在这些区域中可以将牌放置在运动场上
例如:
例如: 您有六叠卡片,例如,您创建了具有不同参数的类的六个实例
相关问题 更多 >
编程相关推荐