[Java] Card / CardPack Class 만들기개발자가 되기까지 (2023.08.16~2024.04.15)/[Basic] Java2023. 9. 22. 00:28
Table of Contents
<문제>
CardPack Class 만들기 |
Card Class 모양 : 4가지 모양 ♥ ♣ ♠ ◆ 숫자 : A(1) 2 ~ 10 J(11) Q(12) K(13) 생성자 : 하트1(♥1) 모양/숫자가 들어올 수 없는 값이 들어오면 ( ex) $45(X) ) 무조건 ♥1로 변경 CardPack Class 카드팩 : 52장의 카드들 멤버변수 : 카드를 52장 담을 수 있는 배열 생성자 : 52장의 카드를 모두 생성 메서드 : 카드를 섞는 기능 / 카드를 한 장 빼내는 기능 / 카드 초기화 |
<방법>
public class Card {
private String shape;
private int num;
// 생성자
public Card() {
shape = "♥";
num = 1;
}
//print 메서드
public void print() {
System.out.print(shape);
switch (num) {
case 11: System.out.print("J ");
break;
case 12: System.out.print("Q ");
break;
case 13: System.out.print("K ");
break;
default:
System.out.print(num + " ");
}
}
public String getShape() {
return shape;
}
public void setShape(String shape) {
switch(shape) {
case "♥" : case "♣" : case "♠" : case "◆":
this.shape = shape;
break;
default:
this.shape="♥";
}
}
public int getNum() {
return num;
}
public void setNum(int num) {
if(num < 1 || num > 13) {
this.num = 1;
}else {
this.num =num;
}
}
}
public class CardPack {
private Card[] cardPack = new Card[52];
private int cnt;
public CardPack() {
// ♥(1~13) ♣(1~13) ♠(1~13) ◆(1~13)
String shape = "♥";
for (int i = 1; i <= 4; i++) {
switch (i) {
case 1:
shape = "♥";
break;
case 2:
shape = "♣";
break;
case 3:
shape = "♠";
break;
case 4:
shape = "◆";
break;
}
for (int j = 1; j <= 13; j++) { // 숫자
Card c = new Card(); // 카드 1장 생성
c.setShape(shape);
c.setNum(j);
cardPack[cnt] = c;
cnt++;
}
}
}
// 카드를 섞는 메서드
public void shuffle() {
for (int i = 0; i < cardPack.length; i++) {
int index = (int) (Math.random() * 52) + 0;
Card tmp = cardPack[i];
cardPack[i] = cardPack[index];
cardPack[index] = tmp;
}
}
public class CardMain {
public static void main(String[] args) {
// 카드 클래스 확인
Card cd = new Card();
// 기본 생성자 확인
cd.print();
// 정상 카드모양 숫자 출력 확인
cd.setShape("♣");
cd.setNum(13);
cd.print();
// 비정상 카드모양 숫자 출력 확인
cd.setShape("$");
cd.setNum(19);
cd.print();
System.out.println(); // 줄바꿈
System.out.println("============================="); // 구분선
// 카드팩 클래스 확인
CardPack cp = new CardPack();
cp.shuffle(); // 카드 섞기
// 카드 출력
for (int i = 0; i < cp.getCardPack().length; i++) {
cp.getCardPack()[i].print();
if ((i + 1) % 13 == 0) {
System.out.println();
}
}
System.out.println("--------------------");
System.out.println();
Card tmp = cp.pick(); // 카드 하나 뽑기
tmp.print();
System.out.println();
System.out.println("--------------------");
cp.pick().print(); // 카드 하나 뽑기
System.out.println();
System.out.println("--------------------");
for (int i = 0; i < cp.getCnt(); i++) { // 뽑은 카드가 없어졌는지 확인
cp.getCardPack()[i].print();
if ((i + 1) % 13 == 0) {
System.out.println();
}
}
System.out.println();
System.out.println("--------------------");
cp.initialCard(); // 카드 초기화
cp.shuffle();
for (int i = 0; i < cp.getCardPack().length; i++) { // 카드 초기화 확인
cp.getCardPack()[i].print();
if ((i + 1) % 13 == 0) {
System.out.println();
}
}
}
}
[Java] Card / CardPack Class 만들기 끝!
(다음 게시물 예고편)
[Java] 수강 관리 프로그램 만들기
728x90
@rlozlr :: 얼렁뚱땅 개발자
얼렁뚱땅 주니어 개발자
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!