首页 > 解决方案 > 我正在努力在我的 Uno 游戏中实现distributeCards 方法,我可以就如何处理该方法提出一些建议吗?

问题描述

该方法应该遍历 playerHand 数组并使用 playerHand[i][j] = new UnoCard 绘制一张新的随机牌,直到每个玩家的手牌大小为 START_HAND。在移动到下一个玩家之前,我还应该能够填满每个玩家的手牌。

我已经尝试按照下面的方式进行设置,但我不确定我应该去哪里成功获得我的结果。任何帮助将不胜感激!

public static int nPlayers;
    public static int currentPlayer;
    public static UnoCard playerHand[][];
    public static UnoCard currentCard;
    public static final int CARDS_IN_DECK = 112;
    public static final int START_HAND = 7;
    public static boolean direction = true; // true for regular direction, false for reverse direction
    public static int winner;

    public Uno(int nPlayers) {
        this.playerHand = new UnoCard[nPlayers][CARDS_IN_DECK];
        this.currentPlayer = 0;
        this.nPlayers = nPlayers;
    }

public static void distributeCards() {
        for (int i = 0; i < playerHand.length; i++) {
            playerHand[][] = new UnoCard();
        }
    }

标签: java

解决方案


我不完全确定我理解您遇到的问题,但我会尽力提供帮助。

看起来您没有正确填充数组。由于您有一个二维数组,因此您需要一个嵌套循环来执行此操作:

for (int i = 0; i < playerHand.length; i++) {
    for (int j = 0; j < playerHand[i].length; j++){
        playerHand[i][j] = new UnoCard(); 
    }
}

请注意[i][j]分配中的 - 我们将卡片分配给 2D 数组中的特定单元格。


推荐阅读