因此,在这种情况下,我在一个纸牌中有一个包含多个卡的阵列。这些卡在每个索引中的排名分别为S1R1,S1R2,S1R3,S2R1,S2R2,S2R3。我需要能够从每个索引位置提取两个数字并将它们相乘,最后将它们相加。
For example,
position 0 would be 1 * 1 = 1
position 1 would be 1 * 2 = 2
position 2 would be 1 * 3 = 3
etc. etc.
此示例的代码根据用户输入而变化,因此很难为您提供使用的代码。
public void createDeckofCards() {
SizeOfDeck = NumberOfRanks * NumberOfSuits;
Cards newCard = new Cards();
newCard.setCards ( NumberOfRanks, NumberOfSuits );
newDeck = new String [ SizeOfDeck ];
int counter = 0;
for (int whatSuit = 1; whatSuit <= NumberOfSuits; whatSuit++) {
for (int rank = 1; rank <= NumberOfRanks; rank++) {
newDeck[counter++] = newCard.createCard(rank, whatSuit);
}
}
}
这就是调用方法createCard()的方法,该方法根据用户输入的卡数来创建每张卡。因此,newDeck []包含所有这些卡,我需要将其分解为数字并最终进行总结。 (制作10万张纸牌的直方图)
感谢您的宝贵时间,感谢您的投入
答案 0 :(得分:1)
使您的卡片成为具有西装和等级属性的对象(也许Card
)。
给它返回的方法:
toString
是合乎逻辑的选择):return "S" + suit + "R" + rank;
getValue()
):return suit * rank;
这样,您可以创建Card
的数组而不是String
的数组。
如果需要将符号表示形式(“ S1R7”,“ S3R9”)转换为物理对象的能力,请创建Map<String, Card>
。您可以用map.put(card.toString(), card);
填充它。
要查找卡片,您只需Card card = map.get("S1R2");
然后该值可作为card.getValue()
答案 1 :(得分:1)