마비노기 모바일 승급 시뮬레이터
이 시뮬레이터는 엘리트/에픽 연금술 재연소 촉매를 사용한 상황을 가정하고 승급에 도전해보는 시뮬레이터입니다. 성공 확률은 40%/10%이며, 실패 시 한 번의 기회가 추가로 주어집니다. 성공했을 때 일정 확률로 대성공이 발생합니다. 시뮬레이터로 승급 상황을 간접 체험해보며 마음을 가다듬고 실제 승급에 도전해보시기 바랍니다. 인증서가 없어 악성 프로그램 알림이 뜰 수 있는데, 개인적으로 만든 exe 파일이라 그렇습니다. 안전한 프로그램입니다. py 코드는 다음과 같습니다.
import tkinter as tk
import random
class UpgradeSimulator:
def __init__(self, window):
self.window = window
self.window.title(“승급 시뮬레이터”)
self.window.geometry(“400×400”)
# 카운터 초기화
self.total_attempts = 0
self.success_count = 0
self.great_success_count = 0
self.failure_count = 0
# 승급 종류 선택
self.upgrade_type = tk.StringVar()
self.upgrade_type.set(“엘리트→에픽”)
self.upgrade_label = tk.Label(self.window, text=”승급 종류를 선택하세요.”, font=(“Arial”, 12))
self.upgrade_label.pack(pady=10)
self.upgrade_options = tk.OptionMenu(self.window, self.upgrade_type, “엘리트→에픽”, “에픽→전설”)
self.upgrade_options.pack()
# 촉매 사용 체크박스
self.use_catalyst_var = tk.BooleanVar()
self.catalyst_checkbox = tk.Checkbutton(self.window, text=”촉매 사용”, variable=self.use_catalyst_var, font=(“Arial”, 12))
self.catalyst_checkbox.pack(pady=10)
# 결과 레이블
self.result_label = tk.Label(self.window, text=”버튼을 눌러 승급하세요!”, font=(“Arial”, 14))
self.result_label.pack(pady=20)
# 통계 레이블
self.stats_label = tk.Label(self.window, text=self.get_stats(), font=(“Arial”, 12))
self.stats_label.pack(pady=10)
# 승급 시도 버튼
self.upgrade_button = tk.Button(self.window, text=”승급하기”, command=self.on_click, font=(“Arial”, 12))
self.upgrade_button.pack(pady=10)
# 초기화 버튼
self.reset_button = tk.Button(self.window, text=”초기화”, command=self.reset_stats, font=(“Arial”, 12))
self.reset_button.pack(pady=10)
def try_upgrade(self, use_catalyst):
# 승급 확률 설정
if self.upgrade_type.get() == “엘리트→에픽”:
success_rate = 0.4 # 성공 확률
great_success_rate = success_rate * 0.1 # 대성공은 4%
else: # 에픽→전설
success_rate = 0.1 # 성공 확률
great_success_rate = success_rate * 0.1 # 대성공은 1%
attempts = 2 if use_catalyst else 1
for _ in range(attempts):
rand = random.random()
if rand < great_success_rate:
return “ 대성공!”, True
elif rand < success_rate:
return “ 성공”, False
# 실패면 다음 루프
return “ 실패”, False
def on_click(self):
use_catalyst = self.use_catalyst_var.get() # 촉매 체크 여부
result, is_great_success = self.try_upgrade(use_catalyst)
# 카운트 증가
self.total_attempts += 1
if is_great_success:
self.great_success_count += 1
elif “ 성공” in result:
self.success_count += 1
else:
self.failure_count += 1
# 결과 & 통계 출력
self.result_label.config(text=result)
self.update_stats()
def update_stats(self):
stats_text = f”시도: {self.total_attempts} | 성공: {self.success_count} | 대성공: {self.great_success_count} | 실패: {self.failure_count}”
self.stats_label.config(text=stats_text)
def reset_stats(self):
# 카운터 초기화
self.total_attempts = 0
self.success_count = 0
self.failure_count = 0
self.great_success_count = 0
self.update_stats()
def get_stats(self):
return f”시도: {self.total_attempts} | 성공: {self.success_count} | 대성공: {self.great_success_count} | 실패: {self.failure_count}”
def run_gui():
window = tk.Tk()
simulator = UpgradeSimulator(window)
window.mainloop()
if __name__ == “__main__”:
run_gui()