본문 바로가기
프로그래밍

메이플 스타포스 강화 시뮬레이션 코드

by 코끼리_땃쥐 2022. 6. 2.
반응형
def starforce_enforce(starforce = 0):
    """
    star_pos -> 시작 스타포스
    리턴값 -> 22성 성공 여부(bool)
    """
    destroy_persent = { 0 : 0
                    , 1 : 0
                    , 2 : 0
                    , 3 : 0
                    , 4 : 0
                    , 5 : 0
                    , 6 : 0
                    , 7 : 0
                    , 8 : 0
                    , 9 : 0
                    , 10 : 0
                    , 11 : 0
                    , 12 : 0.6
                    , 13 : 1.3
                    , 14 : 1.4
                    , 15 : 2.1
                    , 16 : 2.1
                    , 17 : 2.1
                    , 18 : 2.8
                    , 19 : 2.8
                    , 20 : 7.0
                    , 21 : 7.0
                        }

    success_persent = { 0 : 95
                    , 1 : 90
                    , 2 : 85
                    , 3 : 80
                    , 4 : 75
                    , 5 : 70
                    , 6 : 65
                    , 7 : 60
                    , 8 : 55
                    , 9 : 50
                    , 10 : 50
                    , 11 : 45
                    , 12 : 40
                    , 13 : 35
                    , 14 : 30
                    , 15 : 30
                    , 16 : 30
                    , 17 : 30
                    , 18 : 30
                    , 19 : 30
                    , 20 : 30
                    , 21 : 30
                        }

    fail_persent = {0 : 5
                ,1 : 10
                ,2 : 15
                ,3 : 20
                ,4 : 25
                ,5 : 30
                ,6 : 35
                ,7 : 40
                ,8 : 45
                ,9 : 50
                ,10 : 50
                ,11 : 55
                ,12 : 59.4
                ,13 : 63.7
                ,14 : 68.6
                ,15 : 67.9
                ,16 : 67.9
                ,17 : 67.9
                ,18 : 67.2
                ,19 : 67.2
                ,20 : 63.0
                ,21 : 63.0
                    }

    count = 0
    while True:
        random_num = random.random() * 100
                        # 0 ~ 100
        count += 1
        destroy = destroy_persent[starforce]
        success = success_persent[starforce]
        fail = fail_persent[starforce]
        if random_num <= destroy:
            return False
        
        elif random_num <= destroy+success:
            starforce += 1 
            
        elif random_num:
            if starforce%5 != 0:
                starforce -= 1
                
        if starforce == 22:
            return True

스타포스 강화 코드를 만들었습니다.

22성강화할때까지 도전합니다.

 

for test in range(10):
    success = 0
    for idx in range(1000):
        result = starforce_enforce()
        if result:
            success += 1

    print(f"1000번중에 {success}번 성공함")

1000번을 10번 도전해서 평균치를 구해봅니다

 

평균치는 45.9번 성공

22성까지 한번도 안터지고 갈 확률 약 4.6프로 정도입니다

 

실제로는 다를수 있습니다. 시뮬레이션은 시뮬레이션 일뿐입니다 .!

반응형

'프로그래밍' 카테고리의 다른 글

이름 궁합 테스트 만들기  (0) 2022.06.06
로또번호 랜덤 뽑기  (0) 2022.06.02
export(함수 내보내기)  (0) 2022.04.02
class 상속  (0) 2022.01.17
서브 클래싱이란 ?  (0) 2022.01.17

댓글