- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我有一个实验室(我们可以寻求外部帮助,所以我在这里经历了很多头痛),我们必须在那里实现一副纸牌。我们必须使用枚举类来创建 num
对于西装:
public enum Suits {
CLUBS, HEARTS, DIAMONDS, SPADES
}
对于数字:
public enum Numerals {
DEUCE(2), THREE(3), FOUR(4), FIVE(5), SIX(6), SEVEN(7), EIGHT(8), NINE(9),
TEN(10), JACK(11), QUEEN(12), KING(13), ACE(14);
}
我的卡片类非常简单,但我不确定这两个代码块:
public int compareTo (Card aCard){
if (aCard.aNumeral.equals(this.aNumeral) && aCard.aSuit.equals(this.aSuit)){
return 0;
}
else {
return -1;
}
}
和
public boolean equals (Card aCard){
if (this.compareTo(aCard) == 0){
return true;
}
else {
return false;
}
}
现在是棘手的部分......甲板......
所以我们必须使用 Cloneable、Iterable 和 Comparator 来实现这套牌,所以这是我到目前为止所拥有的,只是不知道该怎么做。
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Iterator;
public class Deck implements Cloneable, Iterable<Card>, Comparator<Card> {
private ArrayList<Card> cards;
public Deck (){
for (Card c : cards){
}
}
我什至正在努力组合构造函数。我计划使用 ArrayList 来“保存”52 张已排序的卡片(如您所见);但我们最终必须返回一个排序好的牌组。关于去哪里有什么建议吗?
最佳答案
回答有关compareTo
的问题:a.compareTo(b)
如果 a
应该返回负数小于b
,如果 a
则为正大于b
,如果它们相等则为 0。另外,如果您要对对象进行排序,则排序应遵循的规则之一是 if a.compareTo(b) < 0
,然后b.compareTo(a) > 0
。 (您不能同时拥有“a
小于 b
”和“b
小于 a
”)。您的compareTo
,它只返回 -1
当牌不相等时,不遵守此规则。要解决此问题,您需要决定顺序。 “排序套牌”是什么样子的?可能所有的俱乐部都在一起,然后是所有的钻石,等等,这意味着任何俱乐部卡都会小于任何钻石卡。为了正确地做到这一点,您需要首先比较花色,并且仅当花色相等时才进行排名:
public int compareTo (Card aCard){
int suitCompare = this.aSuit.compareTo(aCard.aSuit);
if (suitCompare != 0) {
return suitCompare;
}
return this.aNumeral.compareTo(aCard.aNumeral);
}
compareTo
每个 enum
将返回<0
, 0
,或>0
。因此您可以比较花色,返回一个值 <0
或>0
,然后比较花色相同的等级。这是编写任何 compareTo
的一般方法需要检查多条数据的方法。
关于java - 用 Java 实现一副纸牌,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21541447/
我已经创建了我的牌组,可以处理每张牌和一套花色,直到没有牌为止。对于我的项目,我需要将它分成 3 个类,其中包括一个驱动程序类。我首先创建了一个包含所有内容的类,所以我知道如何让它全部工作。 publ
嘿伙计们,我正在学习我的第一个 Java 类(class),但在尝试编译该程序时遇到了错误代码。我附加了这两门类(class),希望他能帮助我找到错误。这是我收到的错误: Error: constru
这个问题在这里已经有了答案: How to randomly shuffle a deck of cards among players? (3 个答案) 关闭 4 年前。 我一直在尝试学习 Pyt
我是一名优秀的程序员,十分优秀!