java - 时钟接龙游戏/聚合

标签 java oop aggregation bluej

我正在尝试根据好友编程类(class)的指南为一个迷你项目创建一个时钟纸牌游戏,以获取乐趣。我正在运行我的牌组和纸牌类(class)。但是,我应该实现一个桩类。我不知道人们对时钟纸牌有多熟悉,因为这是我第一次听说它......在时钟纸牌中,有十三堆纸牌。 (在说明中,它是一个圆圈中的一堆堆,里面有四张面朝下的牌,圆圈中间有一堆牌)。游戏开始时,牌全部面朝下。圆圈中间有一堆被认为是“国王堆”。您必须从国王牌堆中“取出”最上面的牌,并将其“面朝上”放在正确牌堆的底部。

在我的 Pile 类中,我需要有 2 个 void 方法:

---addCardFaceUp() and addCardFaceDown().

还有一个方法:

---public Card removeCard()

它返回一个 Card 对象...

我的问题有点长并且连在一起。提前抱歉... 我很难获得关于如何在游戏开始时用“面朝下”卡片填充我的一堆堆的灵感。我还没有尝试过任何东西,因为有些作家阻止了我。有没有人做过类似的项目并可以提供一些指导?或者将卡片标记为“面朝上或面朝下...”的方法

最佳答案

让我们首先看看桩类需要保留的数据。 Pile 类必须有许多类变量才能保存每个堆的数据。具体来说,我可以看到,记录纸牌堆中的纸牌数量以及纸牌的集合或列表会很有用。我们还需要一种方法来判断集合中的每个成员是面朝上还是面朝下。我们可以通过保留第二个集合或列表来实现此目的,但不要让它充满卡片,而是让它充满 boolean 值。然后,如果随附集合中同一位置的 bool 值为 true,则可以说卡片面朝上;如果为 false,则可以说面朝下。因此,我们可以存储这堆纸牌的数据以及面朝上或面朝下的值。

基本类的另一部分是它使用的方法。正如您原来的帖子所说,您必须有一种方法来添加(在两个方向上)和从一堆中删除卡片。为了更容易地做到这一点,您将需要使用比简单数组更高级的数据类型。看看List class例如,并确保输入 generics好好利用。您的添加和删除方法将简单地修改用于存储卡片的集合或列表,以及面朝上/面朝下的 boolean 值。此外,您可能有一个值,可以简单地将列表中特定位置的卡片转向相反的方向。

如果您在某件事上遇到困难,这可能是了解更多有关创建自己的 Java 类的好机会。有很多教程可以帮助您度过这个设计阶段并进入实现阶段。快乐编码!

关于java - 时钟接龙游戏/聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45598750/

相关文章:

java - Android 分享到 Facebook 不工作

Java向servlet传递不可见参数

c# - 关联、聚合和组合

javascript - JS 应用程序自动刷新/元素消失编辑

facebook - 如何取消 Conceal 用户删除的聚合

python - Pandas 数据帧聚合

java - 使 DBMS_METADATA.GET_DDL 具有缩进效果

java - 如何使用 mscapi.RSAPrivateKey 进行 JWT 签名?

c# - 在继承树中插入类

JavaScript 原型(prototype) - 困惑