时钟纸牌游戏/聚合
Posted
技术标签:
【中文标题】时钟纸牌游戏/聚合【英文标题】:Clock-Solitare Game/Aggregation 【发布时间】:2018-01-17 19:40:33 【问题描述】:我正在尝试为一个迷你项目创建一个时钟纸牌游戏,以获取好友编程课程的指导。我的甲板和卡片课程正在运行。但是,我应该实现一个桩类。我不确定人们对时钟纸牌有多熟悉,因为这是我第一次听说它……在时钟纸牌中,有十三堆卡片。 (在说明中它是一个圆圈中的一堆堆,里面装满了四张正面朝下的卡片和一个堆在圆圈中间)。游戏开始时,牌面朝下。圆圈中间有一桩被认为是“国王桩”。您必须从国王牌堆中“移除”最上面的牌,并将其“正面朝上”放在正确牌堆的底部。
在我的 Pile 类中,我需要有 2 个 void 方法:
---addCardFaceUp() and addCardFaceDown().
还有一个方法:
---public Card removeCard()
返回一个 Card 对象...
我的问题有点长,而且是连在一起的。提前抱歉... 在游戏开始时,我无法获得关于如何用“面朝下”卡片填充我的堆堆阵列的灵感。我没有尝试过任何事情,因为我有一些作家阻止它。有没有人做过类似的项目并可以提供一些方向?或者只是将卡片标记为“正面朝上或朝下......”
【问题讨论】:
为了“移除并返回阵列上的顶牌”,我可以做一些类似返回甲板[0]的事情吗?哪个只会在第一个索引处返回卡?请记住,我仅使用标准数组尝试此操作。未列出。 【参考方案1】:让我们从查看桩类需要保留的数据开始。 Pile 类必须有许多 类变量 才能保存每个桩的数据。具体来说,我可以看到保留一堆卡片的数量以及卡片的集合或列表会很有用。我们还需要一种方法来判断集合的每个成员是面朝上还是面朝下。我们可以通过保留第二个集合或列表来实现这一点,但不是让它充满卡片,而是让它充满布尔值。然后,如果伴随集合中同一位置的布尔值为 true,我们可以说一张卡片是正面朝上的,如果它是 false,我们可以说它是正面朝下的。因此,我们可以将卡片的数据存储在堆中,以及面朝上或面朝下的值。
基本类的另一部分是它使用的方法。正如您原来的帖子所说,您必须有一种方法来添加(在两个方向上)和从一堆中移除卡片。为了更容易地做到这一点,您需要使用比简单数组更高级的数据类型。例如,查看List class,并确保充分利用generics。您的添加和删除方法将简单地修改用于存储您的卡片的集合或列表,以及面朝上/面朝下的布尔值。此外,您可能有一个值,它只是将列表中特定位置的卡片转向相反方向。
如果您在某件事上遇到困难,这可能是学习更多关于制作自己的 Java 类的好机会。有很多教程可以帮助您度过这个设计阶段并进入实施阶段。编码愉快!
【讨论】:
以上是关于时钟纸牌游戏/聚合的主要内容,如果未能解决你的问题,请参考以下文章