我需要在黑杰克游戏的帮助。我有一个数组中的卡片组,每次我拿出一张卡片并处理时,数组被重新缩小为小于一个的数量。所以我有这个循环,交易两张牌给每个玩家第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();
}
}
它做的事情,它遍历所有的时间和输出卡点,玩家每一次。但是当我运行这个时,它只会给出最后一名球员的两张牌。我明白为什么会这样。但是我想要一个建议来解决这个问题。
我应该创建一个新的二维数组长度播放器和大小2Xn或有另一种方式,我应该这样做吗?
你真的在每个循环调用'printStats'吗? – thedan
我不知道任何其他方式 – user1796681
printStats是一种查看每个玩家卡片和点数的方法。这种类型的方法通常在所有玩家都有牌和点看之后才会被调用,而不是在你仍然设置所有东西的时候,就是这样。请看下面的答案,以便您在不添加更多阵列的情况下简化设计。 – thedan