【发布时间】:2013-01-11 22:35:53
【问题描述】:
我正在尝试用卡片对象创建一副牌。这个卡片对象有两个enums,一个int和一个boolean,如下图。为了创建这个套牌,我需要循环浏览套装和面值。
不幸的是,如果我必须按名称引用每个 enum 值,即 card[0] = new Card(Suit.Spade, Face.two, j, false);,这将需要 4*13 个 if 语句来完成。
我需要知道的是,是否有一种方法可以通过而不是 Suit.Spade 来设置每张卡片的 enum 值,例如 suit.int,这样下面的代码就可以在没有 52 个 if 语句的情况下工作。 i 只是算牌,Suit.j, Face.k 只是我正在寻找的一个例子。
int i = 0;
int j = 1;
int k = 1;
while(j <= suitCount)
{
k = 0;
while(k <= faceCount)
{
card[i] = new Card(Suit.j, Face.k, i, false);
k++;
i++;
}
j++;
}
【问题讨论】: