(Q) 아이템 강화 시뮬레이션
강화 확률은 아이템과 같다
- 성공 : 25% 확률로 아이템의 레벨이 +1 됩니다
- 실패 : 25% 확률로 아이템의 레벨이 -1 됩니다
- 현상 유지 : 50% 확률로 아이템의 레벨이 변하지 않습니다
(단, 아이템의 레벨은 0보다 작거나 15보다 커지는 일은 없습니다)
package day06;
import java.util.Random;
public class Day06_random_Test09 {
public static void main(String[] args) {
Random r = new Random();
int itemLV = 0;
int count = 0;
while(true) {
int range = r.nextInt(100) + 1;
if(range <= 25) {
itemLV ++;
count ++;
}
else if(range <= 50) {
itemLV --;
count ++;
if(itemLV <= 0) {
itemLV = 0;
}
}
else {
itemLV += 0;
count ++;
}
if(itemLV >= 15) {
break;
}
}
System.out.println("아이템 15강 강화 성공");
System.out.println("소요된 강화 횟수 : " + count);
}
}
★ random을 이용한 확률 구현의 원리
- int range = r.nextInt(100) + 1; (1부터 100까지 쓰여진 공을 상자에 넣는다)
- while 반복문을 통해 공을 뽑는 행동을 반복한다 ~ 아이템 레벨(itemLV)이 15 이상이 될 때까지
- 공에 쓰인 숫자가
i) if(range ≤ 25) (0 초과 25 이하일 때) : 아이템 레벨(itemLV)이 1만큼 증가한다 + 강화 횟수(count) 증가
ii) else if(range ≤ 50) (25 초과 50 이하일 때) : 아이템 레벨(itemLV)이 1만큼 감소한다 + 강화 횟수(count) 증가
+ if(itemLV <= 0) : 만약 아이템 레벨(itemLV)이 0 이하가 되면 0으로 한다
III) else (50 초과 100 이하일 때) : 아이템 레벨(itemLV)의 변화는 없다 + 강화 횟수(count) 증가
- if(itemLV >= 15) : 아이템 레벨이 15 이상이 되면 반복문을 탈출한다
'국비교육 > 국비교육 복습' 카테고리의 다른 글
Day07_array_Test10 : 점심 메뉴 추천 (배열의 활용 + random) (0) | 2022.08.07 |
---|---|
Day07_array_Test07 : 성적의 총합, 평균, 등수 구하기 (배열의 활용 - count) (★★) (0) | 2022.08.07 |
Day06_random_Test07 : 업다운 게임 (random의 활용) (★) (0) | 2022.08.07 |
Day06_random_Test06 : 블루마블 무인도 탈출 (random의 활용) (0) | 2022.08.07 |
Day06_random_Test04 : 랜덤 구구단 문제 (3번 틀리면 게임 오버) (0) | 2022.08.07 |