본문 바로가기

JAVA/기초 프로그래밍

트럼프 카드 섞기/swit[i]으로 중복제거

		int number[] = new int[52];	// 총 카드숫자가 51장
		boolean swit[] = new boolean[52]; //중복 확인 할 숫자도 51장
		int r; //51장중 랜덤에 뽑힌 숫자
 		int w; //인덱스넘버
		
		//init(초기화)
		for (int i = 0; i < swit.length; i++) {
			swit[i] = false;
		}
		w = 0;
		
		//0 ~ 51 -> 나중에 1~ 52
		//셔플(Shuffle), 정렬(효율), 트리, 탐색(속도)
		while(w < 52) {
			r = (int)(Math.random()*52); // 0~51범위
			if (swit[r] == false) {
				swit[r] = true;
				number[w] = r;		
				w++;
			}
		}
		for (int i = 0; i < number.length; i++) {
			System.out.println(number[i]);
		}
		
		int cardNum; 	//1~13
		int cardPic;	//0~3 
		
		
		//숫자
		for (int i = 0; i < number.length; i++) {
			
			cardNum = number[i] % 13 + 1;	// 1~13
			
			if (cardNum == 1) {	//A
				System.out.print("card number : "+number[i]+","+"A");
			}else if (cardNum == 11) {  //J
				System.out.print("card number : "+number[i]+","+"J");

			}else if (cardNum == 12) {  //Q
				System.out.print("card number : "+number[i]+","+"Q");

			}else if (cardNum == 13) {  //K
				System.out.print("card number : "+number[i]+","+"K");
			}else {  //그외 수
				System.out.print("card number : "+number[i]+","+"cardNum");

			}
		//	System.out.println();
			
			//그림
			cardPic = number[i] / 13;	//몫이 0~3
			
			switch (cardPic) {
			case 0:
				System.out.println(", 스페이드");
				break;
			case 1:
				System.out.println(", 다이아");
				break;
			case 2:
				System.out.println(", 하트");
				break;
			case 3:
				System.out.println(", 클로버");
				break;
			
			}
			
		}
		

주의;  

카드 종류는 /4 하여 몫 1,2,3,4로 분류,

카드 번호는 %4하여 나머지 1~12로 분류