在Java中,如何将一副52张卡片分成4手13张?
对于这个项目,我们不能使用任何集合类。我尝试使用一个循环来创建4个数组,每个数组包含13张卡,以便以后可以对它们进行排序并呈现给用户。我不知道如何用牌组中的牌填充4个阵列 我的交易方法:在Java中,如何将一副52张卡片分成4手13张?,java,arrays,loops,Java,Arrays,Loops,对于这个项目,我们不能使用任何集合类。我尝试使用一个循环来创建4个数组,每个数组包含13张卡,以便以后可以对它们进行排序并呈现给用户。我不知道如何用牌组中的牌填充4个阵列 我的交易方法: public void deal() { for (int i = 0; i < 4; i++) { Card[] hand = new Card[13]; for (int j = 0; j < 13; j++) {
public void deal() {
for (int i = 0; i < 4; i++) {
Card[] hand = new Card[13];
for (int j = 0; j < 13; j++) {
hand[j] = deckOfCards[j];
j++;
}
}
}
公开作废交易(){
对于(int i=0;i<4;i++){
卡片[]手=新卡片[13];
对于(int j=0;j<13;j++){
手牌[j]=甲板牌[j];
j++;
}
}
}
您似乎犯了一个逻辑错误。让我们干一干。外循环运行4次
for (int i = 0; i < 4; i++)
接下来,我们转到j循环,它对0-3的每个i值运行13次
for (int j = 0; j < 13; j++)
现在,在手部阵列中,每次仅使用deckOfCards的前13个元素。
您无法访问来自阵列deckOfCards 13-51的元素。为此,请尝试将这部分代码更改为
hand[j] = deckOfCards[j + i*13];
这样就可以访问deckOfCard的所有元素
希望我能帮到你。创建一个52张牌的数组,洗牌,创建4个13元素的数组,然后从牌堆顶部(大小为52的数组)拾取牌。我已经创建了牌堆,并有一个洗牌方法,我不知道最后一部分你应该按照当前逻辑反转你写的循环,你给一个人发13张牌,然后换成下一个人:让
i
循环13次,而j
只循环4次。这就像给一个人一张卡片,13次。
//Logical error
hand[j] = deckOfCards[j];
hand[j] = deckOfCards[j + i*13];