我在二十一点游戏中需要帮助。我有一个数组中的卡片组,每次我拿出一张卡片并处理它时,数组都会重新分配为比大小小一个。所以我有这个循环,向每个第 n 个玩家发两张牌
deck=createCardArray();
shuffle(deck);
int[] players = createPlayers(n);
int[] points = createPoints(n);
for(int i = 1 ; i<= players.length; i++){
Card a = dealCard(deck);
updatePoints(players, points, i, a);
Card b = dealCard(deck);
updatePoints(players, points, i, b);
printStats(players, points, a, b);
}
我想要做的是在向每个玩家发两张牌后打印出牌和最终点数。所以我有这个方法 printstats 看起来像这样:
public static void printStats(int[] nplayers, int[] points, Card a, Card b){
for (int i=0; i<nplayers.length;i++){
System.out.println("Player " + nplayers[i] + ": Points " + points[i]);
System.out.println("Card 1: " + a.showCardSuit() + " " + a.showCardValue());
System.out.println("Card 2: " + b.showCardSuit() + " " + b.showCardValue());
System.out.println();
}
}
它的作用是它每次迭代并每次输出卡点和玩家。但是当我运行它时,它只给出最后一个玩家的两张牌。我明白为什么会这样。但我想要一个关于如何解决这个问题的建议。
我应该创建一个新的 2d 数组长度播放器和大小 2Xn 还是有其他方法可以做到这一点?