포켓몬 스티커 뽑기 v1.0

 

기능: 엔터를 누르면 빵을 먹고 스티커를 뽑음.
스티커 등급은  SS, S, A ~ F 까지 있음.

각 등급 안에는 포켓몬 종류가 여러가지 있음. 


알고리즘:

스티커 등급 별 확률(int)들을 변수들에 저장.
스티커 등급 별 포켓몬(String)들을 배열들에 저장.

if 문으로 SS에서 F 까지 순차적으로 가챠를 돌림.
돌리는 중 등급 확률에 컷 당하지 않으면 다음 함수로 빠져나감.
컷 당하면 다음 등급 확률로 넘어감. SS 에서 F까지 쭉 감.

다음 함수로 빠져나가면 해당하는 등급의 배열 중에서 랜덤으로 한 포켓몬을 뽑고 출력함.
프로그램 자동 재실행.
끝.

Loader class:

Main class:





import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.SplittableRandom;

public class Main {
int SS = 1;
int S = 30;
int A = 59;
int B = 160;
int C = 170;
int D = 180;
int E = 190;
int F = 210;

String[] SSstickers = { "뮤", "뮤츠" };
String[] Sstickers = { "망나뇽", "파이어", "프리져", "썬더", "리자몽" };
String[] Astickers = { "잠만보", "메가프테라", "투구푸스", "암스타", "폴리곤" };
String[] Bstickers = { "부스터", "쥬피썬더", "샤미드", "라프라스", "갸라도스", "피카츄" };
String[] Cstickers = { "켄타로스", "쁘사이저", "마그마", "에레브", "루주라", "스라크" };
String[] Dstickers = { "마임맨", "아쿠스타", "왕콘치", "시드라", "캥카", "덩쿠리" };
String[] Estickers = { "럭키", "코뿌리", "또도가스", "내루미", "홍수몬", "시라소몬", "가디" };
String[] Fstickers = { "텅구리", "나시", "잉어킹", "질퍽이" };

public Main() {
this.main();
}

private void main() {
/* 확률 조절용 코드
* ArrayList<Integer> ranks = new ArrayList<Integer>(); ranks.add(SS);
* ranks.add(S); ranks.add(A); ranks.add(B); ranks.add(C); ranks.add(D);
* ranks.add(E); ranks.add(F);
* int sum = 0; for (int i = 0; i < ranks.size(); i++) { sum += ranks.get(i); }
* System.out.println(ranks); System.out.println(sum);
*/

this.printTitle();
this.print("포켓몬빵을 먹기: Enter");
try {
System.in.read();
} catch (IOException e) {
e.printStackTrace();
}
this.print("결과: ");
try {
System.in.read();
} catch (IOException e) {
e.printStackTrace();
}
this.getSticker();
}

private void getSticker() {
SplittableRandom random = new SplittableRandom();
if (random.nextInt(0, 1000) <= SS) {
this.printResult("SS");
} else if (random.nextInt(0, 1000) <= S) {
this.printResult("S");
} else if (random.nextInt(0, 1000) <= A) {
this.printResult("A");
} else if (random.nextInt(0, 1000) <= B) {
this.printResult("B");
} else if (random.nextInt(0, 1000) <= C) {
this.printResult("C");
} else if (random.nextInt(0, 1000) <= D) {
this.printResult("D");
} else if (random.nextInt(0, 1000) <= E) {
this.printResult("E");
} else {
this.printResult("F");
}
this.main();
}

private void printResult(String c) {
ArrayList<String> stickers;
switch (c) {
case "SS":
stickers = new ArrayList<String>();
for (int i = 0; i < SSstickers.length; i++) {
stickers.add(SSstickers[i]);
}
Collections.shuffle(stickers);
print(c);
print(stickers.get(0));
break;
case "S":
stickers = new ArrayList<String>();
for (int i = 0; i < Sstickers.length; i++) {
stickers.add(Sstickers[i]);
}
Collections.shuffle(stickers);
print(c);
print(stickers.get(0));
break;
case "A":
stickers = new ArrayList<String>();
for (int i = 0; i < Astickers.length; i++) {
stickers.add(Astickers[i]);
}
Collections.shuffle(stickers);
print(c);
print(stickers.get(0));
break;
case "B":
stickers = new ArrayList<String>();
for (int i = 0; i < Bstickers.length; i++) {
stickers.add(Bstickers[i]);
}
Collections.shuffle(stickers);
print(c);
print(stickers.get(0));
break;
case "C":
stickers = new ArrayList<String>();
for (int i = 0; i < Cstickers.length; i++) {
stickers.add(Cstickers[i]);
}
Collections.shuffle(stickers);
print(c);
print(stickers.get(0));
break;
case "D":
stickers = new ArrayList<String>();
for (int i = 0; i < Dstickers.length; i++) {
stickers.add(Dstickers[i]);
}
Collections.shuffle(stickers);
print(c);
print(stickers.get(0));
break;
case "E":
stickers = new ArrayList<String>();
for (int i = 0; i < Estickers.length; i++) {
stickers.add(Estickers[i]);
}
Collections.shuffle(stickers);
print(c);
print(stickers.get(0));
break;
case "F":
stickers = new ArrayList<String>();
for (int i = 0; i < Fstickers.length; i++) {
stickers.add(Fstickers[i]);
}
Collections.shuffle(stickers);
print(c);
print(stickers.get(0));
break;
}
}

private void printTitle() {
System.out.println("****************************\r\n" + "\r\n" + "    Pokemon Sticker v1.0\r\n" + "\r\n"
+ "       developed by Byul\r\n" + "****************************");
}

private void print(String s) {
System.out.println(s);
}
}











댓글

이 블로그의 인기 게시물

substring 예제: 문자열을 입력 받아 한 글자씩 회전시켜 모두 출력하는 프로그램을 작성하라

단체 채팅 구현