Lunatic Mine
시간 제한2.953초메모리 제한589 MB
제련, 합성, 마법 부여, 승급을 활용해 20,000번의 명령어 안에 도전 과제 10개를 모두 달성하는 인터랙티브 채광 게임을 설계합니다.
문제
이 문제는 비적응적 인터랙티브 문제입니다.
🌙 Lunatic Mine ⛏
달의 광산 한복판에서 돌을 캐면서 끝없는 도전 과제를 깨는 초특급 광산 시뮬레이터! 이건 그저 광(鑛)부의 꿈이 아닙니다! 당신은 이제 단단한 바위 속에서 반짝이는 돌을 캐며, 도전 과제 10개를 노리는 진정한 광(狂)부가 될 수 있습니다!
입구에서 곡괭이를 휘두르면, 지하 깊숙이 숨겨진 돌이 빛을 발합니다. 하지만 조심하세요, 이건 단순히 돌을 깨부수는 일이 아닙니다! 돌 속에 숨겨진 재치 있는(?) 사건들이 당신을 기다리고 있습니다. 어떤 돌은 돈을 주고, 어떤 돌은 강화석을 주고, 어떤 돌은… 글쎄, 아무것도 안 줍니다. 웃기지 않나요?
곡괭이 강화를 통해 우주 최강 채광 능력을 얻고 싶으신가요? 도전 과제 10개를 모두 달성해서 끝판왕이 되고 싶으신가요?
그렇다면 이 게임이야말로 당신을 위한 것입니다. 웃음과 헛수고가 가득한 광산 모험, 지금 바로 곡괭이를 들고 뛰어드세요!
- Lunatic Mine 광고
목차
- 제 1장. 게임 시스템
- 제 2장. 랜덤 시스템과 인벤토리 & 장착 시스템
- 제 3장. 제련 시스템
- 제 4장. 마법 부여 시스템
- 제 5장. 합성 & 마법 승급 시스템
- 제 6장. 축복 시스템
- 제 7장. 채광 시스템
- 최종장. 업적 시스템
🎮 제 1장. 게임 시스템 🎮
Lunatic Mine 게임에는 두 종류의 재화가 있습니다! 루나🌙와 강화석💎이죠! 루나는 이 게임에서 통용되는 화폐라고 보아도 무방합니다. 반면에 강화석은 여러분의 곡괭이⛏를 좀 더 강화하기 위해 필요한 재화입니다. 강화할 곡괭이가 어떻게 되어 있는지 한번 살펴보시죠! 편의상 의 값을 로 정의하겠습니다.
-
곡괭이 능력치 ⛏
-
마법 등급 🔮
-
마법 🪄
-
이상 이하의 정수 개와 이상 이하의 정수 개로 표현됩니다.
- 첫 번째 정수는 마법 아이디, 두 번째 정수는 마법의 세부 수치를 의미합니다.
-
마법은 곡괭이의 각종 능력치를 좋게 만들어줍니다.
-
한 곡괭이에는 3개의 마법이 부여되며 각각 0번, 1번, 2번 마법 슬롯이라 부릅니다.
-
영향을 주는 능력치의 종류가 같은 마법끼리는 0번, 1번, 2번 마법 슬롯 순서대로 능력치를 바꾸기 때문에 같은 마법의 구성이더라도 순서가 다르면 최종 능력치가 다를 수 있습니다.
- 다음과 같은 상황에서 2번 마법 슬롯은 고려하지 않는다고 가정합니다.
- 0번 마법 슬롯은 수치를 만큼 올려주고, 1번 마법 슬롯이 수치를 배 올려준다면 최종 적용 수치는 입니다.
- 0번 마법 슬롯은 수치를 배 올려주고, 1번 마법 슬롯이 수치를 만큼 올려준다면 최종 적용 수치는 입니다.
-
-
제련 레벨 🔨
- 이상 이하의 정수로 표현됩니다.
- 이 정수는 제련 레벨을 의미합니다.
- 제련 시스템[🔨]의 레벨을 의미합니다.
- 보통 제련 레벨이 높으면 곡괭이 능력치가 좋습니다.
- 이상 이하의 정수로 표현됩니다.
-
최종 레벨 ⚒️
-
최소 루나 🌙
-
최대 루나 🌕
-
달빛 ✨
-
배율 🔥
-
강화석 드랍률 💎
-
행운 🍀
-
할인 🆓
-
여러분은 강화한 곡괭이로 채광을 할 수 있습니다. 채광하면 곡괭이 강화 상태에 따라서 루나와 강화석을 얻을 수 있습니다. 채광으로 얻은 재화로 곡괭이 강화에 다시 투자해 지속적으로 곡괭이 능력치를 올리는 것이 가능하죠. 곡괭이로 가능한 행동은 총 6가지입니다. 여러분은 명령어를 통해 아래 행동을 취할 수 있습니다.
-
채광 (
mine)-
여러분이 가장 많이 하게 될 행동입니다.
- 해당 행동으로, 장착한 곡괭이의 능력에 따라 루나와 강화석을 얻을 수 있습니다.
-
-
장착 (
equip)- 이 게임에서는 곡괭이가 세 개입니다. 곡괭이가 세 개! 그 세 개의 곡괭이 중 원하는 곡괭이를 장착할 수 있는 명령어입니다.
- 곡괭이는 0번, 1번, 2번 곡괭이가 있습니다.
-
제련 (
smelt)- 루나를 소모하여, 장착한 곡괭이의 제련 레벨을 올릴 수 있습니다.
-
합성 (
craft)- 루나와 강화석을 소모하여, 더 좋은 강화석을 제작할 수 있습니다.
-
마법 승급 (
rank_up)- 강화석을 소모하여, 장착한 곡괭이의 마법 등급을 올릴 수 있습니다.
-
마법 부여 (
enchant)- 루나를 소모하여, 장착한 곡괭이에 마법을 부여할 수 있습니다.
좋습니다. 그러면 시스템 흐름을 요약해 봅시다.
-
게임 흐름
- 채광을 통해 루나와 강화석을 얻습니다.
- 합성을 통해 더 좋은 강화석을 얻습니다.
- 제련, 마법 승급, 마법 부여를 통해 곡괭이를 강화합니다.

이제 세부적인 사항에 대해서 살펴봅시다.
👜 제 2장. 랜덤 시스템과 인벤토리 & 장착 시스템 👜
이 게임에서는 유사 난수 생성기를 활용합니다. 따라서 시드와 명령어 순서만 알고 있다면, 항상 같은 결과를 얻을 수 있습니다!
-
랜덤 함수
-
시드
- 이상 미만의 정수이며 으로 정의합니다.
-
rand()
- 유사 난수 생성기 함수이며, 선형 합동 생성기를 활용합니다.
- rand() 함수를 번째로 호출하면 식에 따라 를 반환합니다.
- 은 위에서 언급한 시드입니다.
- 이때 , , 입니다.
-
randInt(, )
- 이상 이하의 정수를 반환하는 함수입니다.
- randInt(, )를 호출하면 rand() 의 몫 을 반환합니다.
-
chance()
- % 확률로 True를 반환하는 함수입니다.
- chance()를 호출하면 randInt(, ) 의 논리 연산 결과를 반환합니다.
-
choice()
- 배열 에 있는 임의의 원소 하나를 반환하는 함수입니다.
- choice()을 호출하면 배열 의 randInt(, 의 길이 )번째 원소를 반환합니다.
- 원소가 개인 배열은 첫 번째 원소가 번째이고, 마지막 원소가 번째 원소입니다.
-
명령어
- 랜덤 함수를 호출하는 명령어는 제공하지 않습니다.
-
-
인벤토리
-
인벤토리를 통해 곡괭이 3개, 루나, 강화석, 축복 강화석을 보유할 수 있습니다.
-
곡괭이는 모든 곡괭이 능력치의 집합으로 표현됩니다.
- 곡괭이 능력치는 게임 시스템[🎮] 설명란에서 정의했음을 유의하세요.
-
루나는 이상 이하의 정수로 표현됩니다.
-
강화석은 길이가 인 정수형 배열로 표현됩니다.
-
각 원소는 이상 이하의 정수입니다.
- 번째 원소는 일반 강화석 개수를 의미합니다.
- 번째 원소는 레어 강화석 개수를 의미합니다.
- 번째 원소는 에픽 강화석 개수를 의미합니다.
- 번째 원소는 유니크 강화석 개수를 의미합니다.
- 번째 원소는 레전드리 강화석 개수를 의미합니다.
-
5종류의 강화석은 등급 순서대로 0번, 1번, 2번, 3번, 4번 등급 강화석으로 부르기도 합니다.
-
-
축복 강화석 개수는 이상 이하의 정수로 표현됩니다.
-
-
게임 시작 시
-
초기 곡괭이 3개와 1000 루나, 일반 강화석 20개가 지급됩니다.
-
축복 강화석, 레어 강화석, 에픽 강화석, 유니크 강화석, 레전드리 강화석은 0개입니다.
-
초기 곡괭이의 능력치는 다음과 같습니다.
- 제련 레벨 :
- 마법 등급 : 일반
- 마법 : 0번, 1번, 2번 마법 슬롯 모두 0번 마법이 부여된 상태
- 최소 루나 :
- 최대 루나 :
- 달빛 :
- 배율 :
- 강화석 드랍률 : 모든 등급 (%)
- 행운 :
- 할인 :
-
-
명령어
- 인벤토리를 열람하는 명령어는 제공하지 않습니다.
-
-
장착
-
원하는 곡괭이를 장착합니다.
-
장착한 곡괭이로만 채광할 수 있습니다.
-
장착한 곡괭이에만 제련, 마법 승급, 마법 부여를 할 수 있습니다.
-
게임은 0번 곡괭이를 장착한 상태에서 시작합니다.
-
명령어
equip: 번째 곡괭이를 장착합니다.- 는 이상 이하의 정수이어야 합니다.
- 반환값
1: 장착에 성공한 경우 반환합니다.
-
이제 여러분은 이 게임을 즐길 준비가 된 겁니다! 한번 강화 시스템들도 하나씩 알아보죠. 다음은 제련 시스템[🔨]입니다!
🔨 제 3장. 제련 시스템 ��
-
제련
-
-로 표시된 칸은, 해당 레벨에서는 해당 능력치가 제공되지 않는다는 의미입니다. -
위 표를 참고하여, 곡괭이의 레벨에 따른 성공 확률, 제련 비용, 제련 후의 곡괭이 능력치를 알 수 있습니다.
-
제련 레벨은 최대 30레벨까지 존재하며, 최종 레벨은 최대 39레벨까지 존재합니다. 즉, 제련으로 올릴 수 있는 레벨은 30레벨이 최대입니다.
-
성공 여부에 따라 결과가 2가지 존재합니다.
- 실패할 경우, 레벨이 유지됩니다.
- 성공할 경우, 레벨이 상승합니다.
-
명령어
-
smelt: 장착한 곡괭이의 제련 레벨 올리기를 시도합니다. -
반환값이
-1이 아닐 때, 현재 레벨에서 다음 레벨로 올라갈 확률이 %라면 chance()를 한 번 호출합니다. -
반환값
-1: 제련하기 위한 루나가 부족하거나 제련 레벨이 최대 레벨에 도달한 경우 반환합니다.0: 제련에 실패한 경우 반환합니다. 즉, chance() 값이 False인 경우입니다.1: 제련에 성공한 경우 반환합니다. 즉, chance() 값이 True인 경우입니다.
-
-
곡괭이의 기본 능력치를 담당하는 제련 시스템[🔨]입니다. 제련 레벨은 높을수록 무조건 좋습니다! 아마도요?
🪄 제 4장. 마법 부여 시스템 ��
-
마법 부여
-
-로 표시된 칸은, 해당 마법 등급에서는 해당 마법이 나오지 않는다는 의미입니다. -
마법은 곡괭이의 기본 능력치를 변경하지 않습니다. 채광 시스템[⛏]의 계산식에서만 영향을 주는 것에 유의하세요.
-
표기 이름 옆의 소괄호 안 정수는("
달빛+ (1)", "배율% (11)")은 마법의 고유한 아이디입니다. 이 아이디로 어떤 종류의 마법인지 알 수 있습니다.- 0번 마법은 아무 능력 없음으로 정의합니다. 또한 0번 마법은 마법 부여 시에 나타나지 않습니다.
- 번 마법이 채광 시스템[⛏]에서 영향을 주는 능력치 값을 라 정의합니다.
-
마법 등급별 세부 수치 옆의 소괄호 안 기호는("
(+) 2~200", "(%) 1~10")은, 해당 마법이 어떻게 계산되는가를 나타내는 연산 기호입니다.-
세부 수치로 결정된 값을 정수 라 정의합니다.
- 만약 세부 수치가 범위 형태일 때 세부 수치의 최솟값을 , 최댓값을 라 하면, randInt(, )입니다.
- 만약 세부 수치가 범위 형태가 아니고 단일 수치라면, 는 해당 수치값입니다.
-
연산 기호
-
+: -
%: 의 몫 -
13, 15번 마법처럼 가 정수가 아닌 정수형 배열일 수도 있습니다. 15번의 경우는 모든 에 대해 다음과 같이 연산합니다.
+:%: 의 몫
-
13번의 경우는 15번과 비슷하지만, 특정 에 대해서만 연산합니다.
- 곡괭이 마법 등급이 일반, 레어 등급인 경우 인 경우에 대해서만 를 계산합니다.
- 곡괭이 마법 등급이 에픽, 유니크 등급인 경우 인 경우에 대해서만 를 계산합니다.
- 곡괭이 마법 등급이 레전드리 등급인 경우 인 경우에 대해서만 를 계산합니다.
-
-
-
마법 부여 방식은 다음과 같습니다.
-
장착한 곡괭이의 마법 등급에서 나올 수 있는 마법 아이디를 오름차순 상태로 정렬한 상태의 배열을 이라 정의합니다.
-
다음 과정을 0번, 1번, 2번 마법 슬롯 순서대로 진행합니다.
-
choice()에서 나온 값을 해당 마법 슬롯의 마법 아이디로 합니다.
- 마법 부여가 이루어지면 기존 마법 슬롯에 있던 마법은 사라집니다.
- 즉, 마법 부여를 통해 기존 마법을 새 마법으로 덮어쓰게 되며 되돌릴 수 없으니 주의해 주세요.
-
해당 마법 아이디의 세부 수치가 범위 형태일 때 위에서 언급한 randInt(, )를 시행합니다.
-
-
-
마법 아이디에 대응하는 곡괭이 능력치 종류는 다음과 같습니다.
-
장착한 곡괭이의 마법 등급에 따라 마법 부여 비용이 다릅니다.
- 일반 : 1000 루나
- 레어 : 3000 루나
- 에픽 : 8000 루나
- 유니크 : 15000 루나
- 레전드리 : 50000 루나
-
명령어
-
enchant: 장착한 곡괭이에 마법 3개를 부여합니다. -
반환값
-
-1: 마법 부여를 하기 위한 루나가 부족한 경우 반환합니다. -
1: 마법 부여에 성공한 경우 다음과 같은 형태로 반환합니다.1<magic slot 0 id>: 0번 마법 슬롯의 마법 아이디<magic slot 0 data>: 0번 마법 슬롯의 값<magic slot 1 id>: 1번 마법 슬롯의 마법 아이디<magic slot 1 data>: 1번 마법 슬롯의 값<magic slot 2 id>: 2번 마법 슬롯의 마법 아이디<magic slot 2 data>: 2번 마법 슬롯의 값- 값은 항상 이상 이하의 정수로 주어집니다.
-
-
-
마법 시스템[🪄][🔮]을 통해 곡괭이를 더 강화할 수 있습니다! 제련 시스템[🔨]과 마법 시스템[🪄][🔮]은 서로 영향을 줄 수 있으니 한번 마법 종류를 꼼꼼하게 읽어보는 것을 추천합니다.
💎 제 5장. 합성 & 마법 승급 시스템 ��
-
합성
-
번 등급 강화석 2개와 루나를 소모하여 번 등급 강화석 1개를 제작합니다. 이를 번 등급 강화석 합성이라고 정의합니다.
-
합성하고자 하는 강화석의 등급에 따라 합성 비용이 다릅니다.
- 일반 : 합성을 통해 제작할 수 없음.
- 레어 : 1250 루나
- 에픽 : 2500 루나
- 유니크 : 5000 루나
- 레전드리 : 10000 루나
-
명령어
-
craft: 번 등급 강화석을 합성합니다. -
은 이상 이하의 정수이어야 합니다.
-
각 정수에 대응하는 등급은 다음과 같습니다.
- 은 레어 강화석입니다.
- 는 에픽 강화석입니다.
- 은 유니크 강화석입니다.
- 는 레전드리 강화석입니다.
-
반환값
-1: 합성을 하기 위한 이전 등급의 강화석 또는 루나가 부족한 경우 반환합니다.1: 합성에 성공한 경우 반환합니다.
-
-
-
마법 승급
-
강화석을 소모해 장착한 곡괭이의 마법 등급을 한 단계 올립니다.
-
목표 등급 강화석 1개를 소모합니다.
- 예를 들어 일반 등급 곡괭이를 레어 등급 곡괭이로 승급시키기 위해서 레어 강화석 1개를 소모합니다.
-
목표로 하는 마법 등급마다 성공 확률이 존재합니다.
- 일반 : 마법 승급을 통해 도달할 수 없음.
- 레어 : 16%
- 에픽 : 9%
- 유니크 : 4%
- 레전드리 : 1%
-
성공 여부에 따라 결과가 2가지 존재합니다.
-
명령어
-
rank_up: 장착한 곡괭이의 마법 승급을 시도합니다. -
반환값이
-1이 아닐 때 현재 마법 등급에서 승급할 확률이 %라면 chance()를 한 번 호출합니다. -
반환값
-1: 목표 등급 강화석이 부족하거나, 장착한 곡괭이의 마법 등급이 레전드리일 경우 반환합니다.0: 마법 승급에 실패한 경우 반환합니다. 즉, chance() 값이 False인 경우입니다.1: 마법 승급에 성공한 경우 반환합니다. 즉, chance() 값이 True인 경우입니다.
-
-
합성 시스템[💎]과 마법 승급 시스템[🔮]은 마법 부여 시스템[🪄]을 더 강력하게 만들어주는 시스템입니다. 강력한 마법을 얻고 싶다면 해당 시스템을 숙지해 두는 게 좋겠네요!
🙏 제 6장. 축복 시스템 🙏
-
축복
-
-로 표시된 칸은, 해당 축복 레벨에서는 해당 능력치가 제공되지 않는다는 의미입니다. -
위 표를 참고하여, 축복 레벨에 의해 얻는 능력치를 알 수 있습니다.
- 축복으로 얻은 능력치는 채광 시스템[⛏]의 계산식에서만 영향을 줍니다. 축복은 곡괭이의 능력치가 아님에 유의하세요.
- 위 표에서 는 이상 이하의 정수입니다.
-
축복 강화석을 일정량 보유 시, 즉시 축복 강화석이 일정량 소모되고 축복 레벨이 상승합니다.
- 현재 축복 레벨이 일 때, 레벨 상승을 위해 개의 축복 강화석이 필요합니다. (은 이상 미만의 정수)
-
마법 승급에 실패할 때, 목표로 하는 곡괭이의 마법 등급에 따라 일정량의 축복 강화석을 얻습니다.
- 일반 : 마법 승급을 통해 도달할 수 없음.
- 레어 : 1개
- 에픽 : 2개
- 유니크 : 4개
- 레전드리 : 8개
-
명령어
- 축복 시스템[🙏]을 열람하는 명령어는 제공하지 않습니다.
-
축복은 곡괭이의 연이은 마법 승급 실패의 고통을 덜어주는 시스템입니다. 정말 갓겜이죠?
⛏ 제 7장. 채광 시스템 ⛏
-
채광
-
축복 레벨 그리고 장착한 곡괭이의 제련 레벨과 마법 상태에 따라 얻게 되는 루나와 강화석의 양이 달라집니다.
-
채광 프로세스 : 해당 과정은 작성된 순서대로 이루어지며, rand() 호출 순서에 따라 결과가 달라질 수 있음에 유의하세요.
-
얻을 재화 계산에 필요한 값들을 구합니다.
-
최종 레벨을 계산합니다.
- 장착한 곡괭이의 0, 1, 2번 마법 슬롯 중 16번 마법이 존재한다면 해당 수치에 맞게 레벨을 상승시킵니다.
- 즉, 레벨 마법을 적용합니다.
-
제련 능력치를 불러옵니다.
- 장착한 곡괭이의 최종 레벨에 알맞은 능력치를 불러옵니다.
- 이를 기본 최소 루나, 기본 최대 루나, 기본 달빛, 기본 강화석 드랍률이라 정의합니다.
-
축복 능력치를 불러옵니다.
- 현재 축복 레벨에 맞는 능력치를 불러옵니다.
- 이를 축복 최소 루나, 축복 최대 루나, 축복 달빛, 축복 강화석 드랍률, 축복 배율이라 정의합니다.
-
최종 배율은 다음과 같이 계산됩니다.
- 최종 배율 = (100 + 축복 배율) ← 마법 적용
- 해당 수치에 영향을 주는 마법은 10, 11, 12번 마법입니다.
-
최종 달빛은 다음과 같이 계산됩니다.
- 최종 달빛 = (기본 달빛 + 축복 달빛) ← 마법 적용
- 해당 수치에 영향을 주는 마법은 1, 2, 3번 마법입니다.
-
최종 최소 루나는 다음과 같이 계산됩니다.
- 최종 최소 루나 = ((((기본 최소 루나 + 축복 최소 루나) ← 마법 적용) + 최종 달빛) 최종 배율) 100 의 몫
- 해당 수치에 영향을 주는 마법은 4, 5, 6번 마법입니다.
-
최종 최대 루나는 다음과 같이 계산됩니다.
- 최종 최대 루나 = ((((기본 최대 루나 + 축복 최대 루나) ← 마법 적용) + 최종 달빛) 최종 배율) 100 의 몫
- 해당 수치에 영향을 주는 마법은 7, 8, 9번 마법입니다.
-
최종 강화석 드랍률은 다음과 같이 계산됩니다.
- 최종 강화석 드랍률 = (기본 강화석 드랍률 + 축복 강화석 드랍률) ← 마법 적용
- 강화석 등급별로 독립적으로 계산됩니다.
- 해당 수치에 영향을 주는 마법은 13, 15번 마법입니다.
-
최종 행운은 다음과 같이 계산됩니다.
- 최종 행운 = (1) ← 마법 적용
- 해당 수치에 영향을 주는 마법은 14번 마법입니다.
-
최종 할인은 다음과 같이 계산됩니다.
-
-
최종 루나는 다음과 같이 계산됩니다.
- randInt(최종 최소 루나, (최종 최소 루나, 최종 최대 루나))의 값
-
다음 값이 채광을 통해 획득하는 루나의 수 입니다.
- 획득하는 루나 = (최종 루나) ← 마법 적용
- 해당 수치에 영향을 주는 마법은 18번 마법입니다.
-
다음 값이 획득하는 강화석의 개수입니다.
-
일반, 레어, 에픽, 유니크, 레전드리 순서로 진행됩니다.
-
해당 등급 최종 강화석 드랍률이 100(%) 이상이라면 100(%) 당 강화석 1개를 확정적으로 지급합니다. 이를 확정적으로 얻는 해당 등급의 강화석이라 정의합니다.
-
강화석 드랍률을 100으로 나눈 나머지를 로 정의합니다. 이를 확률적으로 얻는 해당 등급의 강화석이라 정의합니다.
-
chance()가 True면 강화석을 1개 얻습니다.
- 가 이어도 호출됨을 유의하세요.
-
획득하는 해당 등급의 강화석 개수 = ((확정적으로 얻는 해당 등급의 강화석의 개수) (확률적으로 얻는 해당 등급의 강화석의 개수)) (최종 행운)
-
-
-
-
명령어
-
mine: 장착한 곡괭이로 채광합니다. -
반환값 :
-
1: 채광에 성공한 경우, 다음 한 줄에 길이가 인 정수형 배열을 추가로 반환합니다.- 배열은 채광으로 획득한 [루나, 일반 강화석의 개수, 레어 강화석의 개수, 에픽 강화석의 개수, 유니크 강화석의 개수, 레전드리 강화석의 개수]로 구성됩니다.
- 각 원소는 이상 이하의 정수입니다.
- 각 원소는 공백으로 구분되어 주어집니다.
-
-
-
강화한 곡괭이로 채광하는 과정입니다. 꽤 복잡하지만 제련 레벨, 축복 레벨, 마법 등급이 높을수록 더 많은 재화를 얻는다고 보면 됩니다!
🏆 최종장. 업적 시스템 🏆
-
업적
- Lunatic Mine 게임에는 총 10개의 도전과제가 존재합니다.
- 1개의 행동을 완료할 때마다 도전과제 달성 여부를 확인합니다.
- 각각의 도전과제는 한번 달성하면, 이후에 조건을 만족시키지 못하더라도 달성한 것으로 유지됩니다.
- 명령어
- 업적 시스템[🏆]을 열람하는 명령어는 제공하지 않습니다.
-
게임 종료
- 명령어
exit: Lunatic Mine 게임을 종료합니다. 😢
- 명령어
-
채점
-
여러분은 이 게임을 플레이해서 엔딩을 보셔야 합니다!
-
엔딩의 조건은 다음과 같습니다.
-
채점 데이터 273개에 대해 각각 해당 조건을 만족시켜야 합니다.
- 게임 종료를 제외한 명령어 사용 횟수가 번 이하이어야 합니다.
- 마지막 명령어는 게임 종료 명령어이어야 합니다.
- 게임 종료 명령어를 입력했을 때, 10개의 업적이 모두 달성되어 있어야 합니다.
-
각 채점 데이터에서 시드가 주어집니다. 273개의 시드는 아래의 제한 설명란을 참고해 주세요.
-
-
엔딩을 보신다면 이 문제에서 를 받을 수 있습니다. 한번 광질을 하러 가볼까요?
-
📝 세 줄 요약 📝
- 이 문제는 해당 게임을 플레이하는 프로그램을 작성하는 문제입니다.
- 장착 명령어로 곡괭이를 장착하고, 채광 명령어로 재화를 얻고, 제련, 마법 부여, 마법 승급, 합성 명령어로 곡괭이를 강화합니다.
- 입력으로는 시드가 주어지며, 주어진 모든 273개의 데이터에 대해 10개의 업적을 모두 달성하면 를 받습니
입력
첫 번째 줄에 시드 가 주어집니다.
출력
다음을 표준 출력 스트림(stdout)으로 한 줄에 출력하여 번까지 명령어를 사용할 수 있습니다.
mine: 장착한 곡괭이로 채광합니다.equip: 번 곡괭이를 장착합니다.smelt: 장착한 곡괭이의 제련 레벨 올리기를 시도합니다.craft: 번 등급 강화석을 합성합니다.rank_up: 장착한 곡괭이의 마법 승급을 시도합니다.enchant: 장착한 곡괭이에 마법 3개를 부여합니다.
명령어를 출력한 뒤, 여러분은 인터랙터에게서 다음과 같은 결과를 알 수 있습니다.
-
mine: 첫 번째 줄에 명령어 결과가 출력됩니다. 채광에 성공한 경우에 한해서 추가로 1개 줄에 걸쳐 채광 결과가 출력됩니다.-
1: 채광에 성공한 경우-
다음 1개의 줄이 추가로 출력됩니다.
<luna> <normal_upgrade_stone> <rare_upgrade_stone> <epic_upgrade_stone> <unique_upgrade_stone> <legendary_upgrade_stone>- 위의 모든 값은 이상 이하의 정수로 주어집니다.
-
-
-
equip: 첫 번째 줄에 명령어 결과가 출력됩니다.1: 장착에 성공한 경우
-
smelt: 첫 번째 줄에 명령어 결과가 출력됩니다.-1: 제련하기 위한 루나가 부족하거나 제련 레벨이 최대 레벨에 도달한 경우0: 제련에 실패한 경우1: 제련에 성공한 경우
-
craft: 첫 번째 줄에 명령어 결과가 출력됩니다.-1: 합성을 하기 위한 이전 등급의 강화석 또는 루나가 부족한 경우1: 합성에 성공한 경우
-
rank_up: 첫 번째 줄에 명령어 결과가 출력됩니다.-1: 목표 등급 강화석이 부족하거나, 장착한 곡괭이의 마법 등급이 레전드리일 경우0: 승급에 실패한 경우1: 승급에 성공한 경우
-
enchant: 첫 번째 줄에 명령어 결과가 출력됩니다. 마법 부여에 성공한 경우에 한해서 추가로 6개 줄에 걸쳐 마법 부여의 결과가 출력됩니다.-
-1: 마법 부여를 하기 위한 루나가 부족한 경우 -
1: 마법 부여에 성공한 경우-
다음 6개의 줄이 추가로 출력됩니다.
<magic slot 0 id><magic slot 0 data><magic slot 1 id><magic slot 1 data><magic slot 2 id><magic slot 2 data>
-
-
<magic slot 0 id>,<magic slot 1 id>,<magic slot 2 id>는 이상 이하의 정수로 주어집니다. -
<magic slot 0 data>,<magic slot 1 data>,<magic slot 2 data>는 이상 이하의 정수로 주어집니다.
-
만약 게임을 종료하고 싶다면 다음과 같이 출력합니다.
exit를 한 줄에 출력합니다.- 출력을 마친 직후 프로그램을 종료합니다.
다음과 같은 경우에는 를 받습니다.
-
게임 종료를 제외한 명령어 사용 횟수가 번을 초과한 경우
-
다음 예시와 같이 명령어 사용 중에 유효한 범위 내의 정수를 출력하지 않는 경우
equip명령어에서 인 경우craft명령어에서 인 경우
다음과 같은 경우에는 예상하지 못한 채점 결과를 받을 수 있습니다.
- 어떤 출력 직후 출력 버퍼를 비우지 않은 경우
- 출력 형식을 어기는 경우
- 정답 출력을 마친 직후 프로그램을 종료하지 않은 경우
제한
채점 데이터 273개의 각 시드는 다음과 같습니다.
- 1862538421, 192693474, 2472848044, 2895839591, 4234048010, 3783670316, 585521783, 4024458069, 3052185564, 2233264476, 1545484490, 2558925763, 2266317592, 376534116, 3246980444, 833327613, 2789119774, 1000566532, 3375505481, 2150019652, 1402153620, 706063958, 3254896780, 1631583093, 2421125164, 3685802975, 3901985367, 2512424818, 4138913925, 83431422, 2431377546, 56357581, 3458832251, 4174515225, 3824944713, 3126953839, 2784706672, 4089928192, 525443002, 58335198, 2252937767, 790662409, 1267595300, 1641256185, 247881980, 3611792099, 4083816982, 2038325350, 57520250, 3827750312, 3322074672, 1601702001, 408133686, 2419036451, 3364365824, 3597166208, 2247307115, 1962178654, 1784011574, 2169035327, 2312364783, 1278297087, 1511316662, 2898028050, 576433360, 2384425963, 3956589767, 1655536062, 3491881761, 3646970477, 4060122242, 2803807644, 2183977317, 1549494274, 1248481496, 3783402640, 3984376381, 4223366429, 2536679677, 2087878803, 3682669997, 803913810, 3843496437, 2929466063, 74566307, 3952787622, 644482098, 2887371412, 956205127, 7369883, 4175250364, 189806644, 2775561613, 1246691137, 3328549706, 1114784965, 2381171890, 2502495945, 1705306555, 2713305170, 2348264199, 2118999346, 1424966344, 2923188932, 889365229, 2558708866, 1493582713, 562140579, 3630877946, 1636312080, 3078413503, 447621008, 2961344208, 776721666, 1355647956, 898556247, 2321782663, 1098010307, 3580981048, 2341465796, 2225133857, 2690795459, 4124123800, 493169549, 1709901102, 615567460, 3951182182, 860030121, 2843159645, 1101956466, 1424789975, 1420898684, 1332804951, 3286085476, 2188379223, 2922992945, 475362393, 3574640559, 1348763073, 128376441, 4047546310, 3178776982, 4016265345, 787726945, 3549240693, 3896151954, 790846261, 2329686336, 2232565467, 2941623398, 4210624961, 635848434, 2639331217, 3772743305, 2401051113, 3094340044, 1383581498, 4229996755, 2285103966, 3826825965, 2606275018, 3168048382, 2739996120, 2357205560, 2975099774, 2043624067, 605285298, 624417961, 908032891, 3699345510, 567041713, 3482226978, 675827087, 3982176493, 349142046, 831680894, 3426225560, 4107947654, 390114902, 4082485937, 1634149073, 2130762027, 3603236747, 2147801087, 3837825236, 3971166451, 1881031586, 3634501447, 4161475220, 654824570, 316105196, 3253134115, 208684904, 2133831977, 3585140402, 3951903306, 2773601234, 3033502673, 3236080332, 2075889510, 3186893406, 1045176472, 183616481, 2027325216, 3608348589, 2030965569, 3076336500, 1499559601, 838763120, 2731648265, 1770539795, 1298350644, 2193666374, 1888453161, 129994837, 4144255946, 2921160096, 1432682322, 774551952, 3138793617, 1129499479, 3013413674, 3694251808, 3805514875, 877124738, 4234471185, 3200483109, 2529051202, 1990962994, 357583314, 3396021808, 2255452607, 3604688993, 2522064818, 668728789, 2635164176, 493723433, 1398836304, 3727225571, 3991515135, 490631758, 1540657983, 2507218155, 1719630719, 3480361982, 451631246, 1206940546, 1117328135, 2725694659, 4093695318, 3744207704, 3443227006, 3004387025, 3236900929, 3243351594, 1135794830, 1989582371, 3287884975, 3979461488, 2073908885, 3078326623, 3772539225, 4184830044, 4084496384, 1095528298, 209615871, 1013102723, 3578049974, 1901969299, 3988345635, 3183419049, 1683669069, 1774616592
아래 Python 3.12.3 코드로 모든 채점 데이터의 시드를 생성할 수 있습니다.
import random
random.seed("Lunatic Mine")
for _ in range(273):
print(random.randint(0, 2 ** 32 - 1), end=", ")
힌트
언어별로 표준 출력 버퍼를 비우는 방법은 다음과 같습니다.
- C:
fflush(stdout) - C++:
std::cout << std::flush - Java:
System.out.flush() - Python:
sys.stdout.flush()