java卡片组程序返回空卡片
我正试着制作一副卡片,并把每一张都打印出来。我有一门课是关于一张牌的,还有一门课是关于一副牌的。我尝试在我的card类中使用toString()方法打印所有卡片等级和套装。出于某种原因,它只打印13张卡(2-A所有俱乐部),其余为空。以下是代码:
卡片。爪哇
public class Card
{
private enum Suit {HEARTS, DIAMONDS, SPADES, CLUBS};
private Suit suit;
private String rank;
public Card(String r, int index)
{
rank = r;
setSuit(index);
}
public void setSuit(int index)
{
switch(index)
{
case 0:
suit = suit.HEARTS;
break;
case 1:
suit = suit.DIAMONDS;
break;
case 2:
suit = suit.SPADES;
break;
case 3:
suit = suit.CLUBS;
break;
}
}
public String toString()
{
return (rank + " of " + suit);
}
}
甲板。爪哇
public class Deck
{
private Card [] card = new Card[52];
public Deck()
{
for(int i = 0; i < 13; i++)
{
for(int j = 0; j < 4; j++)
{
if(i < 9)
card[i] = new Card(Integer.toString(2+i), j);
else if(i == 9)
card[i] = new Card("J", j);
else if(i == 10)
card[i] = new Card("Q", j);
else if(i == 11)
card[i] = new Card("K", j);
else
card[i] = new Card("A", j);
}
}
}
public Card getInfo(int index)
{
return card[index];
}
}
测试。爪哇
public class Test
{
public static void main(String [] args)
{
Deck deck = new Deck();
for(int i = 0; i < 52; i++)
System.out.println(deck.getInfo(i));
}
}
任何帮助都将不胜感激
编辑:我不能使用你在这里看不到的任何东西
# 1 楼答案
一项建议: 在switch语句中有一个默认的大小写
这里的错误是,您的卡索引仅设置为0到12,因此您的所有卡将仅从卡0到卡12初始化
改变这一点: 卡片[i]=。。。。 为此: 卡片[i+13*j]=
# 2 楼答案
你只需将数组中的同一元素设置为4张牌,循环的每次迭代,你需要在某个点上i等于51,以设置所有牌或使用某种计数器