我陷入了 Java 教程的一部分,特别是这个练习。该练习要求您:
1- 编写一个类,其实例 代表一张扑克牌 一副纸牌。扑克牌有两种 区分属性:等级和 套装。请务必将您的解决方案保留为 你会被要求重写它 枚举类型。
提示:您可以使用 断言语句来检查你的 作业。你写:
assert(boolean expression to test);
如果布尔表达式为假,您将 收到错误消息。例如,
assert toString(ACE) == "Ace";
应该返回true,这样就不会出现错误 留言。
2- 编写一个类,其实例代表一副完整的牌。你 也应该保留这个解决方案。
3-编写一个小程序来测试你的牌组和纸牌类别。该程序可以 就像创建一副牌一样简单 卡片并展示其卡片。
我真的很想做这个练习,但问题是我从来没有玩过纸牌,所以我根本不知道如何创建这个程序以及纸牌应该具有什么属性等。我在维基百科上查找了这个,但得到了知识非常有限,这永远无法让我构建所需的类: Card.java 、 Deck.java 和程序 DisplayDeck.java.
对于不懂纸牌的人来说,什么是一个很好的替代练习,但它会测试与上述练习相同的概念? (可能是静态变量和实例变量等)
谢谢。
顺便说一句,这不是家庭作业问题,我正在为一个商业项目学习Java。
我认为值得花时间熟悉该示例,因为它经常用于描述编程概念。让我尝试为您提炼出扑克牌的描述:
首先,将牌组(整个卡片集)的这张图片保持打开以供参考。
垂直向下走,你有 {黑桃 ♠、方块 ◇、梅花 ♣、红心 ♡} = 4 花色。
水平穿过各列,您有 {2、3、...、10、Jack、Queen、King、Ace} = 13 ranks。
一副牌总共有 4 x 13 = 52 张牌。
每张牌都由一对(等级、花色) 来标识,例如(Ace,黑桃 ♠)和(10,方块 ◇),我们分别读作“黑桃 A”和“方块 10”。
如何打牌,只需要知道它们的外观即可。正如您上面提到的,这意味着 Card 类将具有 2 个属性(由枚举定义)等级和花色,其中等级是以下之一:
{ A、2、3、4、5、6、7、8、9、10、J、Q、K }西装是以下之一:
{ 黑桃、红心、方块和梅花 }
套牌只是一个集合结构,包含等级和套件的所有组合。
assert(deck.count == 52);
assert(deck.suits.count == 4);
assert(deck.suits.contains("Diamonds"));
assert(deck.suits.contains("Hearts"));
assert(deck.suits.contains("Clubs"));
assert(deck.suits.contains("Spades"));
assert(deck.suits["Diamonds"].contains("Ace")); //repeat for 2-10, Jack, Queen, King
洗牌组
向画面发牌
显示画面