본문 바로가기
java&eclipse 코딩 알고리즘/20231201

CardShuffle

by 몽상크리에이터 2023. 12. 13.

package k20231201;

 

import java.util.Random;

 

public class CardShuffle {

 

public static void main(String[] args) {

 

/*

// 두 기억장소에 저장된 값 교환하기

int a = 3, b= 4;

System.out.println("a = " + a + ", b = " + b);

 

int temp = a;

a = b;

b = temp;

 

 

 

System.out.println("a = " + a + ", b = " + b);

*/

 

// 카드출력에 사용할 숫자와 무늬를 기억하는 배열을 만든다

String[] number = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};

String[] symbol = {"♠", "◇", "♥", "♧"};

 

// cards 라는 정수형 배열을 만들고 0-51로 초기화 한다.

int[] cards = new int[52];

for (int i = 0; i<cards.length; i++) {

cards[i] = i;

}

 

// 섞기 전 상태를 출력한다.

for (int i = 0; i<cards.length; i++) {

// System.out.printf("%2d ", cards[i]); // cards 배열의 값

// System.out.printf("%2s ", number[cards[i]%13]); // 숫자만

// System.out.printf("%s ", symbol[cards[i]/13]); // 무늬만

System.out.printf("%s%2s ", symbol[cards[i]/13] ,number[cards[i]%13]);

if ((i + 1) % 13 == 0) {

System.out.println();

}

}

System.out.println("=====================섞기 전======================");

 

// 섞는다.

// cards[0]와 cards[1] ~ cards[51] 사이의 랜덤한 값을 선택해서 교환한다.

Random random = new Random();

for (int i = 0; i<1000000; i++) {

int r = random.nextInt(51) + 1;

int temp = cards[0];

cards[0] = cards[r];

cards[r] = temp;

 

}

 

// 섞은 후 상태를 출력한다

 

for (int i = 0; i<cards.length; i++) {

System.out.printf("%s%2s ", symbol[cards[i]/13] ,number[cards[i]%13]);

if ((i + 1) % 13 == 0) {

System.out.println();

}

}

System.out.println("=====================섞은 후======================");

 

// 카드로 변경한다

 

 

 

 

 

 

 

 

 

}

 

}

'java&eclipse 코딩 알고리즘 > 20231201' 카테고리의 다른 글

ForTest  (0) 2023.12.13
DiceTest3  (0) 2023.12.13
DiceTest2  (0) 2023.12.13
DiceTest  (0) 2023.12.13
ArrayTest  (0) 2023.12.13