ブラックジャックゲームで助けが必要です。私はアレイにカードデッキを持っていて、カードを取り出して配るたびに、アレイはサイズより1つ小さいサイズに再認識されます。だから私は各n番目のプレーヤーに2枚のカードを配るこのループを持っています
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);
}
私がやりたいのは、各プレイヤーに2枚のカードを配った後、カードと最終ポイントを印刷することです。だから私はこのように見えるこのメソッド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();
}
}
毎回繰り返し、毎回カードポイントとプレイヤーを出力します。しかし、これを実行すると、最後のプレーヤーの2枚のカードしか表示されません。なぜこれが起こるのか理解しています。しかし、私はこの問題を解決する方法として提案が欲しいです。
新しい2D配列の長さのプレーヤーとサイズ2Xnを作成する必要がありますか、それともこれを行う別の方法がありますか?