int deck[] = new int[52];
for(int i=0; i<deck.length; i++) {
deck[i] = i;
}
for(int i=0; i<deck.length; i++) {
System.out.println(deck[i] + " ");
}
String cardShape[] = {"크로바", "다이아몬드", "하트", "스페이드"};
for(int i=0; i<deck.length; i++) {
System.out.println(cardShape[deck[i]/13]);
}
String cardNumber[] = {"A", "2","3","4","5","6","7","8","9","10","J","Q","K"};
for(int i=0; i<deck.length; i++) {
System.out.println(cardShape[deck[i] / 13] + cardNumber[deck[i]%13]);
}
for(int i=0; i<900000; i++) {
int randomCard = (int)(Math.random()*52);
int cardTemp = deck[0];
deck[0] = deck[randomCard];
deck[randomCard] = cardTemp;
}
for(int i=0; i<deck.length; i++) {
System.out.println(deck[i] + " : " + cardShape[deck[i]/13] + cardNumber[deck[i] % 13]);
}
int deckIndex = 0;
int[] p1Deck = new int[11];
int[] p2Deck = new int[11];
int p1DeckIndex = 0;
int p2DeckIndex = 0;
p1Deck[p1DeckIndex] = deck[deckIndex];
p1DeckIndex++;
deckIndex++;
p2Deck[p2DeckIndex] = deck[deckIndex];
p2DeckIndex++;
deckIndex++;
p1Deck[p1DeckIndex] = deck[deckIndex];
p1DeckIndex++;
deckIndex++;
p2Deck[p2DeckIndex] = deck[deckIndex];
p2DeckIndex++;
deckIndex++;
p2Deck[p2DeckIndex++] = deck[deckIndex++];
System.out.println("이미 사용한 카드 목록은 ");
for(int i=0; i<deckIndex; i++) {
System.out.println(cardShape[deck[i] / 13] + cardNumber[deck[i] % 13]);
}
System.out.println("다음 사용할 카드는 " + cardShape[deck[4]/13] + cardNumber[deck[4] % 13]);
System.out.println("다음 사용할 카드 목록은 ");
for(int i=0; i<deckIndex; i++) {
System.out.println(cardShape[deck[4 + i] / 13] + cardNumber[deck[4 + i] % 13]);
}
System.out.println("p1의 카드 목록은 ");
for(int i=0; i<p1DeckIndex; i++) {
System.out.println(cardShape[p1Deck[i] / 13] + cardNumber[p1Deck[i] % 13]);
}
System.out.println("p2의 카드 목록은 ");
for(int i=0; i<p2DeckIndex; i++) {
System.out.println(cardShape[p2Deck[i] / 13] + cardNumber[p2Deck[i] % 13]);
}
int p1Sum = 0;
int p2Sum = 0;
boolean isP1PlayFlag = true;
boolean isP2PlayFlag = true;
while(isP1PlayFlag || isP2PlayFlag) {
if(isP1PlayFlag) {
System.out.print("p1님 카드를 더 받으시겠습니까? 1. yes 2. no");
String input = new Scanner(System.in).nextLine();
if(input.equals("1")) {
p1Deck[p1DeckIndex++] = deck[deckIndex++];
} else {
isP1PlayFlag = false;
}
}
System.out.print("p1Card: ");
p1Sum=0;
for(int i=0; i<p1DeckIndex; i++) {
if(p1Deck[i]%13<1) {
p1Sum = p1Sum + 11;
} else if(p1Deck[i]%13 < 10) {
p1Sum = p1Sum + p1Deck[i] % 13 + 1;
} else {
p1Sum = p1Sum + 10;
}
}
for(int i=0; i<p1DeckIndex; i++) {
if(p1Sum<=21) {
break;
}
if(p1Deck[i]%13 == 0) {
p1Sum = p1Sum - 10;
}
}
System.out.println("총합: " + p1Sum);
for(int i=0; i<p1DeckIndex; i++) {
System.out.print(cardShape[p1Deck[i] / 13] + cardNumber[p1Deck[i] % 13] + " ");
}
System.out.println();
if(p1Sum>21) {
System.out.println("21를 초과하였습니다");
break;
}
System.out.print("p2Card: ");
p2Sum=0;
for(int i=0; i<p2DeckIndex; i++) {
if(p2Deck[i]%13 < 1) {
p2Sum = p2Sum + 11;
} else if(p2Deck[i]%13<10) {
p2Sum = p2Sum + p2Deck[i] % 13 + 1;
} else {
p2Sum = p2Sum + 10;
}
}
for(int i=0; i<p2DeckIndex; i++) {
if(p2Sum<=21) {
break;
}
if(p2Deck[i]%13 == 0) {
p2Sum = p2Sum - 10;
}
}
System.out.println("총합: " + p2Sum);
for(int i=0; i<p2DeckIndex; i++) {
System.out.print(cardShape[p2Deck[i]/13] + cardNumber[p2Deck[i] % 13] + " ");
}
System.out.println();
if(p2Sum>21) {
System.out.println("21를 초과하였습니다.");
break;
}
}
String winner = "";
if(p1Sum>21) {
winner = "p2승리";
} else if(p2Sum>21) {
winner = "p1승리";
} else if(p1Sum>p2Sum) {
winner = "p1승리";
} else if(p1Sum == p2Sum) {
winner = "무승부";
} else {
winner = "p2승리";
}
System.out.println("최종 결과: " + winner);
System.out.println("게임종료");