저는 간단한 학교 과제를 실제 게임으로 바꾸려고 노력하고 있습니다. 참고로, 제가하는 일은 모두 추가 크레딧입니다.
어떤 이유로 카드가 올바르게 계산되지 않습니다. 예 : A Jack과 3은 20으로, Ace와 3은 13으로 계산됩니다. Ace 1 또는 11을 만들기 위해 부품을 추가하지 않았 음을 알고 있습니다. 계산을 먼저 알아 내고 싶습니다.
문제의 클래스 만 추가하겠습니다. 내 코드를 모두 원하시면 알려주세요.
public class BlackJack extends CardGame{
int computePlayerValue, computeDealerValue;
int cardValue1, cardValue2;
public BlackJack() {
super();
playerHand = 2;
dealerHand = 2;
}
public void display() {
System.out.println("BlackJack");
}
public void playGame() {
}
public int getCardValue(Card card) {
final String rank = card.getRank();
switch (rank) {
case "Ace":
return 1;
case "King":
return 10;
case "Queen":
return 10;
case "Jack":
return 10;
default:
return Integer.parseInt(rank);
}
}
public void dealCards() {
//Player 1
System.out.println("Player 1:");
for(int x = 0; x < playerHand; x++) {
shuffle();
System.out.println(fullDeck[x].getRank() + " of " + fullDeck[x].getSuit());
}
cardValue1 = getCardValue(fullDeck[0]);
cardValue2 = getCardValue(fullDeck[1]);
computePlayerValue = cardValue1 + cardValue2;
System.out.println("Player has: " + computePlayerValue);
//Compute dealers hand
System.out.println("\nPlayer 2:");
for(int x = 0; x < dealerHand; x++) {
shuffle();
System.out.println(fullDeck[x].getRank() + " of " + fullDeck[x].getSuit() );
}
}
}
for(int x = 0; x < playerHand; x++) {
shuffle();
System.out.println(fullDeck[x].getRank() + " of " + fullDeck[x].getSuit());
}
shuffle()
루프 도중이 아니라 루프 전에 호출되어야합니다. 반복하는 동안 카드를 섞으면 인쇄 한 후 카드가 변경됩니다. 그것이 당신의 결과가 엇갈리는 이유입니다.
shuffle();
for(int x = 0; x < playerHand; x++) {
System.out.println(fullDeck[x].getRank() + " of " + fullDeck[x].getSuit());
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다