有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

共 (1) 个答案

  1. # 1 楼答案

    看来你犯了一个逻辑错误。让我们干一干。外循环运行4次

        for (int i = 0; i < 4; i++)
    

    每次,都会创建一个新的牌型阵列

        Card[] hand = new Card[13];
    

    接下来,我们转到j循环,它对0-3的每个i值运行13次

        for (int j = 0; j < 13; j++)
    

    现在内部的元素存储在数组中

         //Logical error
         hand[j] = deckOfCards[j];
    

    现在,在手部阵列中,每次仅使用deckOfCards的前13个元素。 您无法访问来自阵列deckOfCards 13-51的元素。为此,请尝试将这部分代码更改为

        hand[j] = deckOfCards[j + i*13];
    

    这样就可以访问deckOfCard的所有元素

    我希望我帮助了你