首页 > 解决方案 > 如何在 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++;
            }
        }
    }

标签: javaarraysloops

解决方案


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

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

每次,都会创建一个新的 Card 类型的数组手。

    Card[] hand = new Card[13];

接下来我们移动到 j 循环,对于从 0 到 3 的每个 i 值运行 13 次,

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

现在里面的元素都存储在数组hand中。

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

现在每次在手牌数组中,只使用deckOfCards 的前13 个元素。您没有访问数组 deckOfCards 的 13-51 中的元素。为此,请尝试将这部分代码更改为此。

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

这使得deckOfCard 的所有元素都可以访问。

我希望我对你有所帮助。


推荐阅读