블랙 잭 게임에 도움이 필요합니다. 배열에 카드 덱이 있고 카드를 꺼내어 배열을 처리 할 때마다 크기보다 하나 적은 배열이 다시 채워집니다. 그래서 나는 각각의 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();
}
}
그것이마다 반복 할 것을 그것을 수행하고 카드 포인트 및 선수마다 출력 무엇. 하지만이 카드를 실행하면 마지막 플레이어의 두 장의 카드 만 제공됩니다. 나는 이것이 왜 일어나는 지 이해합니다. 하지만이 문제를 해결하는 방법에 대한 제안을 원합니다.
새로운 2 차원 배열 길이 플레이어와 2Xn 크기를 만들어야합니까, 아니면 다른 방법으로해야합니까?
정말로 모든 루프에서'printStats'를 호출하고 있습니까? – thedan
나는 다른 방법을 모른다. – user1796681
printStats는 모든 플레이어의 카드와 포인트를 보는 방법이다. 이 유형의 메소드는 일반적으로 모든 플레이어가 카드와 포인트를 보았을 때 호출됩니다. 아직 모든 것을 설정하고있는 동안에는 호출되지 않습니다. 배열을 추가하지 않고도 디자인을 단순화 할 수있는 방법은 아래의 내 대답을 참조하십시오. – thedan