在Java中,如何将一副52张卡片分成4手13张?

在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++) {

对于这个项目,我们不能使用任何集合类。我尝试使用一个循环来创建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++) {
                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];