파이썬을 처음 배우는 과정에서는 코드를 어떻게 시작해야 할지 몰라 한 레벨에서 오래 막힐 수 있습니다. 이럴 때 완성된 답을 그대로 외우기보다 목표와 현재 상황을 먼저 확인하고, 필요한 부분만 예시 풀이와 비교하면 문제 해결 과정을 놓치지 않을 수 있습니다.

Codedash의 파이썬광산(Python Mine)은 광부를 움직이고 바위를 제거하며 철, 금, 푸른보석을 채굴하는 게임형 학습 환경입니다. 짧은 3개 챕터 안에서 함수 호출, 반복문, 조건문, 함수 정의와 무작위 상태 대응까지 순서대로 연습합니다.

사다리와 광부, 광산 통로가 보이는 파이썬광산 배너
파이썬광산코드로 갱도를 이동하고 주변 자원을 확인해 필요한 광석만 채굴합니다.

Chapter 1~3의 15개 레벨 한눈에 보기

레벨게임 미션핵심 개념
1. 광산이동오른쪽 사다리까지 이동함수 호출과 순서
2. 꺾인 갱도아래로 꺾인 길 통과여러 방향 이동
3. 지그재그바위를 피해 계단식 이동이동 순서와 반복
4. 유턴 코스막힌 바위를 우회위쪽 이동과 반복
5. 빙글빙글나선형 갱도 통과구간별 for 반복
6. 무른 바위바위를 부수고 이동clear()
7. 철광석 채굴철광석 5개 수집mine()과 광석 HP
8. 금광석 채굴깊은 곳의 금 채굴경로 탐색과 채굴
9. 두줄 순회두 줄에서 철 5개 수집look()과 함수
10. 심연의 금광석금 2개와 사다리 도착복합 조건과 우회
11. 기회는 두번두 번만 채굴해 Gold 2개를 모으고 사다리 도착if와 제한 횟수
12. 어둠속 채광1무작위 GoldLarge를 캐 Gold 3개를 모으고 사다리 도착look_hp()
13. 어둠속 채광2Iron 2개와 Gold 2개를 모으고 사다리 도착or 조건
14. 작업제한제한된 작업으로 Iron 3개를 모으고 사다리 도착if/elif
15. 압력발판 - 푸른보석금과 푸른보석을 찾아 출구 도착def와 무작위 탐색
CURRENT LIVE LEVELS

이 글은 현재 게임에서 실제로 플레이할 수 있는 Chapter 1~3의 15개 레벨을 기준으로 작성했습니다. 각 정답은 통과 가능한 예시이며 같은 목표를 달성하는 다른 코드도 정답이 될 수 있습니다.

TRY FIRST, CHECK LATER

각 레벨의 목표와 풀이 방향을 먼저 읽고 직접 시도해 보세요. 막혔을 때 예시 정답 보기를 열면 전체 코드와 핵심 동작을 확인할 수 있습니다.

채굴 전에 알아둘 함수와 파이썬 문법

01 / MOVE

방향 이동

Dir 값으로 광부가 이동할 방향을 정합니다.

move(Dir.Right)
02 / CLEAR

바위 제거

무른 바위와 그 위의 불필요한 광석을 제거합니다. HardRock에는 사용할 수 없습니다.

clear(Dir.Right)
03 / MINE

광석 채굴

광석의 HP만큼 채굴하면 인벤토리에 자원이 들어옵니다.

mine(Dir.Right)
04 / LOOK

앞의 자원 확인

이동 전에 자원 종류를 읽고 행동을 선택합니다.

look(Dir.Right)
05 / BRANCH

if/elif/else

철, 금, 바위처럼 확인한 결과마다 다른 작업을 실행합니다.

if target == Res.Gold:
    mine()
06 / LOOP

forwhile

정해진 횟수나 사다리에 도착할 때까지 작업을 반복합니다.

while not is_downstairs():
    move(Dir.Right)

move(), clear(), mine(), look()은 파이썬 내장 함수가 아니라 파이썬광산에서 제공하는 전용 게임 함수입니다. 반면 for, while, if, def, 리스트와 들여쓰기는 실제 파이썬 문법입니다.

DIRECTION RULE

move()look()에는 방향을 반드시 전달해야 합니다. mine(), clear(), look_hp()는 방향을 생략하면 기본적으로 오른쪽을 확인합니다.

Chapter 1: 광산 길을 따라 이동하기

Chapter 1의 다섯 레벨은 광석을 캐기 전에 이동 함수와 실행 순서를 익히는 과정입니다. 오른쪽과 아래쪽 이동에서 시작해 마지막에는 네 방향의 단순 반복문을 순서대로 작성해 나선형 길을 통과합니다.

파이썬광산 Chapter 1 시작하기
01
CHAPTER 1 · STAGE 01

광산이동: 오른쪽으로 여섯 칸 이동하기

목표: 시작 지점에서 오른쪽에 있는 아래층 사다리까지 이동합니다.

목표 좌표 (8, 3) move(Dir.Right) 함수 호출 · for

첫 레벨에서는 move(Dir.Right)를 실행할 때마다 광부가 오른쪽으로 한 칸 이동합니다. 같은 명령을 여섯 줄 작성해도 되지만, 정해진 횟수만큼 반복하는 for문을 사용하면 이동 횟수가 더 분명하게 보입니다.

Level 1 광산이동의 오른쪽 직선 통로와 목표 사다리 게임 화면
Level 1 광산이동 게임 화면광부 오른쪽으로 이어진 직선 통로와 끝에 있는 아래층 사다리를 확인할 수 있습니다.
Level 1 예시 정답 보기
for _ in range(6):
    move(Dir.Right)

range(6)이 여섯 번 반복되므로 시작 위치에서 목표 사다리까지 정확히 이동합니다.

02
CHAPTER 1 · STAGE 02

꺾인 갱도: 오른쪽과 아래쪽 이동 조합하기

목표: 아래쪽으로 꺾인 통로를 따라 사다리까지 이동합니다.

목표 좌표 (6, 5) Right + Down 순서대로 실행

경로는 오른쪽 두 칸, 아래쪽 두 칸, 다시 오른쪽 두 칸으로 이어집니다. 이동 횟수만 맞아도 방향의 순서가 다르면 바위에 막히므로 위에서 아래로 실행되는 코드 순서를 함께 확인해야 합니다.

Level 2 꺾인 갱도의 아래쪽으로 꺾인 통로 게임 화면
Level 2 꺾인 갱도 게임 화면오른쪽으로 이동한 뒤 아래로 내려가 다시 오른쪽 사다리로 향하는 경로입니다.
Level 2 예시 정답 보기
for _ in range(2):
    move(Dir.Right)

for _ in range(2):
    move(Dir.Down)

for _ in range(2):
    move(Dir.Right)

같은 두 칸 이동을 세 구간으로 나누면 꺾이는 위치와 방향을 쉽게 확인할 수 있습니다.

03
CHAPTER 1 · STAGE 03

지그재그: 이동 순서를 구간별로 작성하기

목표: 바위를 피해 계단처럼 지그재그로 내려가 사다리에 도착합니다.

목표 좌표 (7, 5) Right + Down 단순 for 반복

경로를 눈으로 따라가며 오른쪽 두 칸, 아래 한 칸, 오른쪽 한 칸, 아래 한 칸, 오른쪽 두 칸 순서로 작성합니다. 같은 방향으로 두 칸 이동하는 구간만 for문으로 묶으면 됩니다.

Level 3 지그재그의 계단 모양 광산 통로 게임 화면
Level 3 지그재그 게임 화면바위 사이에서 오른쪽과 아래쪽 이동을 번갈아 사용해야 하는 계단 모양 통로입니다.
Level 3 예시 정답 보기
for _ in range(2):
    move(Dir.Right)

move(Dir.Down)
move(Dir.Right)
move(Dir.Down)

for _ in range(2):
    move(Dir.Right)

방향이 바뀌는 순서를 그대로 위에서 아래로 작성하고, 연속된 오른쪽 두 칸만 반복합니다.

04
CHAPTER 1 · STAGE 04

유턴 코스: 아래로 우회한 뒤 다시 올라가기

목표: 앞을 막은 바위 아래로 크게 돌아 위쪽 사다리에 도착합니다.

목표 좌표 (6, 3) Down + Right + Up Dir.Left 사용 불가

이 레벨에서 실제로 사용할 수 있는 방향은 아래쪽, 오른쪽, 위쪽입니다. 먼저 세 칸 내려간 다음 네 칸 오른쪽으로 이동하고 다시 세 칸 올라오면 됩니다.

주의: 화면 힌트에 왼쪽 이동이 언급될 수 있지만 이 레벨에서는 Dir.Left가 허용되지 않습니다.

Level 4 유턴 코스의 아래쪽 우회 통로와 위쪽 사다리 게임 화면
Level 4 유턴 코스 게임 화면가운데 바위벽 아래로 내려갔다가 오른쪽에서 다시 올라와야 하는 U자형 경로입니다.
Level 4 예시 정답 보기
for _ in range(3):
    move(Dir.Down)

for _ in range(4):
    move(Dir.Right)

for _ in range(3):
    move(Dir.Up)

내려간 횟수와 올라온 횟수가 같기 때문에 마지막에는 시작점과 같은 높이의 사다리에 도착합니다.

05
CHAPTER 1 · STAGE 05

빙글빙글: 방향별 반복문으로 나선형 길 통과하기

목표: 바위벽을 따라 나선형으로 돌아 안쪽 사다리에 도착합니다.

목표 좌표 (6, 5) 네 방향 이동 방향별 for 반복

경로는 오른쪽 6칸, 아래 4칸, 왼쪽 6칸, 위 2칸, 오른쪽 4칸입니다. 각 방향을 별도의 for문으로 작성하면 화면의 나선형 경로와 코드를 위에서 아래로 바로 비교할 수 있습니다.

Level 5 빙글빙글의 나선형 광산 통로 게임 화면
Level 5 빙글빙글 게임 화면바깥쪽에서 안쪽 사다리까지 여러 방향으로 감아 들어가는 나선형 통로입니다.
Level 5 예시 정답 보기
for _ in range(6):
    move(Dir.Right)

for _ in range(4):
    move(Dir.Down)

for _ in range(6):
    move(Dir.Left)

for _ in range(2):
    move(Dir.Up)

for _ in range(4):
    move(Dir.Right)

방향이 바뀔 때마다 새 for문을 시작하므로 나선형 이동 순서를 그대로 확인할 수 있습니다.

Chapter 2: 바위를 제거하고 광석 채굴하기

Chapter 2에서는 clear()로 무른 바위를 제거하고 mine()으로 광석을 수집합니다. 후반에는 look()으로 앞의 자원을 확인해 필요한 광석과 제거할 바위를 구분합니다.

파이썬광산 Chapter 2 시작하기
06
CHAPTER 2 · STAGE 06

무른 바위: 제거한 자리를 통로로 만들기

목표: 앞을 막은 무른 바위 세 개를 부수고 오른쪽 사다리까지 이동합니다.

목표 좌표 (6, 3) clear() 제거 후 이동

clear()는 방향을 생략하면 오른쪽의 무른 바위를 제거합니다. 바위를 제거한 다음에만 그 칸으로 이동할 수 있으므로 제거 → 이동 순서를 세 번 반복하고 마지막 사다리 칸으로 한 번 더 이동합니다.

Level 6 무른 바위가 오른쪽 통로를 막고 있는 게임 화면
Level 6 무른 바위 게임 화면주황색 무른 바위 세 칸을 차례로 제거해야 오른쪽 사다리까지 이동할 수 있습니다.
Level 6 예시 정답 보기
for _ in range(3):
    clear()
    move(Dir.Right)

move(Dir.Right)

마지막 칸은 바위가 아니라 사다리이므로 clear() 없이 이동합니다.

07
CHAPTER 2 · STAGE 07

철광석 채굴: 광석 크기에 맞춰 여러 번 캐기

목표: 통로의 철광석을 채굴해 Iron 5개를 수집합니다.

Iron 5개 이상 mine() Small 1회 · Medium 2회

작은 철광석은 한 번 채굴하면 Iron 1개를 주지만, 마지막 중형 철광석은 두 번 채굴해야 하며 완전히 채굴하면 Iron 2개가 들어옵니다. 중간의 빈 무른 바위는 clear()로 제거합니다.

Level 7 통로에 작은 철광석과 중형 철광석이 놓인 게임 화면
Level 7 철광석 채굴 게임 화면직선 통로에 놓인 작은 철광석과 마지막 중형 철광석의 크기 차이를 확인할 수 있습니다.
Level 7 예시 정답 보기
mine()
move(Dir.Right)

clear()
move(Dir.Right)

mine()
move(Dir.Right)

clear()
move(Dir.Right)

mine()
move(Dir.Right)

mine()
mine()

마지막 mine() 두 번이 HP 2인 중형 철광석을 완전히 채굴합니다.

08
CHAPTER 2 · STAGE 08

금광석 채굴: 깊은 통로의 금에 접근하기

목표: 아래쪽 깊은 통로로 이동해 Gold 1개를 채굴합니다.

Gold 1개 이상 경로 탐색 HardRock 이동 불가

금광석은 단단한 바위 위에 있어 광석 칸으로 직접 이동할 수 없습니다. 금의 왼쪽 칸까지 이동한 뒤 오른쪽을 향해 mine()을 실행해야 합니다. 통로를 막은 철광석은 수집 목표가 아니므로 clear()로 제거할 수 있습니다.

Level 8 아래쪽 통로의 단단한 바위 위 금광석 게임 화면
Level 8 금광석 채굴 게임 화면아래쪽 통로 끝의 금광석은 단단한 바위 위에 있어 왼쪽 칸에서 채굴해야 합니다.
Level 8 예시 정답 보기
move(Dir.Right)
move(Dir.Down)

for _ in range(2):
    move(Dir.Right)

clear()
move(Dir.Right)
mine()

마지막 위치에서 오른쪽의 금광석을 채굴합니다. 금 아래의 단단한 바위는 제거하거나 밟을 수 없습니다.

09
CHAPTER 2 · STAGE 09

두줄 순회: 자원을 확인해 철만 채굴하기

목표: 위아래 두 줄의 통로를 왕복하며 Iron 5개를 수집합니다.

Iron 5개 이상 look(direction) def advance()

look(direction)으로 다음 칸의 자원을 확인합니다. 철이면 mine(direction)으로 채굴하고, 철이 아닌 석탄이나 무른 바위라면 clear(direction)로 제거합니다. 중형 철광석은 첫 채굴 뒤에도 Res.Iron으로 보이므로 한 번 더 채굴해야 합니다.

Level 9 두 줄 통로에 철광석과 석탄이 섞여 있는 게임 화면
Level 9 두줄 순회 게임 화면위아래 두 줄에 철광석과 석탄이 섞여 있어 자원 종류를 확인하며 왕복해야 합니다.
Level 9 예시 정답 보기
def advance(direction):
    if look(direction) == Res.Iron:
        mine(direction)
        if look(direction) == Res.Iron:
            mine(direction)
    else:
        clear(direction)

    move(direction)


for _ in range(6):
    advance(Dir.Right)

move(Dir.Down)

for _ in range(6):
    advance(Dir.Left)

advance() 함수가 확인, 작업, 이동의 공통 순서를 묶어 오른쪽과 왼쪽 왕복에 재사용됩니다.

10
CHAPTER 2 · STAGE 10

심연의 금광석: 금을 캐고 출구까지 우회하기

목표: Gold 2개를 수집하고 오른쪽 위 사다리까지 도착합니다.

Gold 2개 이상 목표 좌표 (8, 3) 두 조건 모두 충족

중형 금광석은 두 번 채굴해야 Gold 2개가 들어옵니다. 금을 채굴한 뒤에는 같은 자리에 내려가 위쪽 우회 통로로 돌아가야 합니다. 이 레벨은 금 수집과 사다리 도착 중 하나만 달성해서는 클리어되지 않습니다.

Level 10 아래쪽 금광석과 오른쪽 위 목표 사다리가 있는 게임 화면
Level 10 심연의 금광석 게임 화면아래쪽의 중형 금광석을 채굴한 뒤 위쪽 통로로 돌아 오른쪽 사다리까지 이동해야 합니다.
Level 10 예시 정답 보기
def advance(direction):
    while look(direction) == Res.Gold:
        mine(direction)

    if look(direction) == Res.SoftRock:
        clear(direction)

    move(direction)


path = [
    Dir.Right, Dir.Down, Dir.Right, Dir.Down,
    Dir.Right, Dir.Down, Dir.Up, Dir.Right,
    Dir.Up, Dir.Right, Dir.Up, Dir.Right,
]

for direction in path:
    advance(direction)

while문이 금광석이 완전히 사라질 때까지 채굴하고, 경로 리스트가 아래쪽 금과 위쪽 출구를 차례로 연결합니다.

Chapter 3: 제한된 작업과 무작위 광석 해결하기

Chapter 3에서는 모든 레벨의 채굴 횟수가 제한됩니다. 이 중 Level 12, 13, 15는 레벨을 다시 시작할 때 광석 위치가 달라집니다. 위치를 외우는 대신 look()으로 자원 종류를 읽고, if/elif/else로 필요한 행동을 선택해야 합니다.

파이썬광산 Chapter 3 시작하기
11
CHAPTER 3 · STAGE 11

기회는 두번: 금광석일 때만 채굴하기

목표: 단 두 번의 채굴 기회로 Gold 2개를 수집하고 사다리에 도착합니다.

mine() 최대 2회 Gold 2개 이상 목표 좌표 (10, 3)

통로에는 금광석과 철광석이 섞여 있습니다. 철에 mine()을 사용하면 제한된 기회를 잃으므로 앞이 Res.Gold일 때만 채굴합니다. 철은 아래의 무른 바위와 함께 clear()로 제거해 통로를 만듭니다.

Level 11 직선 통로에 철광석과 금광석이 섞여 있는 게임 화면
Level 11 기회는 두번 게임 화면철광석과 금광석이 한 줄에 섞여 있으므로 채굴 전에 자원 종류를 확인해야 합니다.
Level 11 예시 정답 보기
while not is_downstairs():
    if look(Dir.Right) == Res.Gold:
        mine()
    else:
        clear()

    move(Dir.Right)

사다리에 도착할 때까지 매 칸을 확인하므로 금에만 정확히 두 번 mine()을 사용합니다.

12
CHAPTER 3 · STAGE 12

어둠속 채광1: 광석 HP를 읽어 정확히 채굴하기

목표: 무작위 위치의 대형 금광석을 세 번 채굴해 Gold 3개를 얻고 사다리에 도착합니다.

mine() 최대 3회 Gold 3개 이상 무작위 배치

대형 금광석과 철·석탄 미끼의 위치는 레벨을 다시 시작할 때 달라질 수 있습니다. look()으로 금을 찾고, 금의 남은 HP를 look_hp()로 읽어 그 횟수만큼만 채굴해야 합니다.

Level 12 어두운 통로에서 광부 주변만 밝혀진 게임 화면
Level 12 어둠속 채광1 게임 화면광부 주변만 보이는 야간 광산이며 GoldLarge와 미끼 광석의 위치는 재시작할 때 달라집니다.
Level 12 예시 정답 보기
while not is_downstairs():
    if look(Dir.Right) == Res.Gold:
        for _ in range(look_hp()):
            mine()
    else:
        clear()

    move(Dir.Right)

대형 금광석의 HP는 3이므로 금을 찾았을 때만 세 번 채굴합니다. 위치가 바뀌어도 같은 코드로 해결할 수 있습니다.

13
CHAPTER 3 · STAGE 13

어둠속 채광2: or로 두 광석 선택하기

목표: 무작위 통로에서 Iron 2개와 Gold 2개를 수집하고 사다리에 도착합니다.

mine() 최대 4회 Iron 2 + Gold 2 or 연산자

철 또는 금일 때 채굴해야 하므로 두 비교식을 or로 연결합니다. 석탄은 목표가 아니며 채굴 기회도 네 번뿐이므로 clear()로 제거합니다. 여섯 광석의 위치는 다시 시작할 때 달라집니다.

Level 13 어두운 통로에서 철과 금, 석탄을 구분해야 하는 게임 화면
Level 13 어둠속 채광2 게임 화면어둠 속 무작위 통로에서 앞의 자원을 확인해 Iron과 Gold만 골라야 합니다.
Level 13 예시 정답 보기
while not is_downstairs():
    target = look(Dir.Right)

    if target == Res.Iron or target == Res.Gold:
        mine()
    else:
        clear()

    move(Dir.Right)

철 2개와 금 2개에만 총 네 번 채굴하므로 작업 제한을 넘기지 않습니다.

14
CHAPTER 3 · STAGE 14

작업제한: if/elif로 필요한 작업만 실행하기

목표: 제한된 채굴과 제거 횟수 안에서 Iron 3개를 수집하고 사다리에 도착합니다.

mine() 최대 3회 clear() 최대 4회 목표 좌표 (12, 3)

철광석이면 mine(), 빈 무른 바위이면 clear()를 실행합니다. 두 조건을 만족하지 않는 빈 통로에서는 작업 함수를 호출하지 않고 이동해야 제한 횟수를 정확히 지킬 수 있습니다.

Level 14 긴 통로에 철광석과 무른 바위가 배치된 게임 화면
Level 14 작업제한 게임 화면긴 통로의 철광석 세 개와 무른 바위 네 개에만 정확히 작업해야 합니다.
Level 14 예시 정답 보기
while not is_downstairs():
    target = look(Dir.Right)

    if target == Res.Iron:
        mine()
    elif target == Res.SoftRock:
        clear()

    move(Dir.Right)

맵에 있는 철광석 세 개와 무른 바위 네 개에만 작업하므로 두 제한을 모두 맞춥니다.

15
CHAPTER 3 · STAGE 15

압력발판 - 푸른보석: 함수로 무작위 미로 탐색하기

목표: 압력발판으로 불을 켜고 미로를 탐색해 Gold와 GemBlue를 하나씩 수집한 뒤 사다리에 도착합니다.

mine() 최대 2회 Gold 1 + GemBlue 1 def · 무작위 배치

금, 푸른보석, 철, 석탄의 위치는 다시 시작할 때 달라집니다. 각 구간마다 다음 칸을 확인해 금이나 푸른보석만 채굴하고 나머지는 제거한 뒤 이동합니다. 같은 처리 과정을 explore() 함수로 만들면 다섯 개 통로 구간에 재사용할 수 있습니다.

참고: 압력발판은 어둠을 밝히는 시각 효과를 켭니다. 실제 클리어에는 Gold, GemBlue 수집과 사다리 도착 세 조건이 모두 필요합니다.

Level 15 압력발판으로 밝혀진 미로에 금과 푸른보석이 보이는 게임 화면
Level 15 압력발판 - 푸른보석 게임 화면시작 직후 압력발판을 밟아 불을 켠 상태로, 미로 안의 Gold와 GemBlue 후보 위치를 확인할 수 있습니다.
Level 15 예시 정답 보기
def explore(direction, steps):
    for _ in range(steps):
        target = look(direction)

        if target == Res.Gold or target == Res.GemBlue:
            mine(direction)
        else:
            clear(direction)

        move(direction)


explore(Dir.Right, 6)
explore(Dir.Down, 2)
explore(Dir.Left, 6)
explore(Dir.Down, 2)
explore(Dir.Right, 6)

미로 전체의 후보 칸을 지나면서 목표 광석만 두 번 채굴합니다. 자원 배치가 바뀌어도 종류를 직접 확인하므로 같은 코드가 동작합니다.

코드가 실행되지 않을 때 확인할 부분

  1. look()의 방향을 확인합니다. look()은 방향이 필수이므로 look(Dir.Right)처럼 작성해야 합니다.
  2. Level 7~9에서는 사다리 반복을 사용하지 않습니다. 세 레벨에는 목표 사다리가 없으므로 while not is_downstairs()를 사용하면 반복이 끝나지 않습니다.
  3. clear()mine()을 구분합니다. 광석에 clear()를 사용하면 통로는 열리지만 해당 자원은 인벤토리에 들어오지 않습니다.
  4. 광석의 크기와 실제 HP를 함께 확인합니다. 기본적으로 Small, Medium, Large는 HP 1, 2, 3이며 완전히 채굴하면 각각 1개, 2개, 3개의 자원을 얻습니다. 다만 Level 9의 CoalMedium 미끼처럼 HP가 별도로 지정된 예외도 있습니다.
  5. 무작위 레벨은 위치를 외우지 않습니다. Level 12, 13, 15는 다시 시작할 때 배치가 달라지므로 look() 결과로 행동을 선택해야 합니다.
  6. 제한된 작업은 빈칸에 사용하지 않습니다. 실패한 mine()이나 clear() 호출도 사용 횟수에서 차감될 수 있습니다.
  7. 수집과 도착 조건을 모두 확인합니다. Level 10~15는 모두 목표 자원을 모으고 사다리에도 도착해야 완료됩니다.
  8. 단단한 바위는 통과할 수 없습니다. HardRock 위의 광석은 옆 칸에서 채굴하며, 광석이 사라진 뒤에도 단단한 바위 자체는 남습니다.
01 / READ

오류가 난 줄부터 읽습니다

함수 이름, 괄호, 방향 인자와 들여쓰기를 차례로 확인하면 문법 오류를 빠르게 찾을 수 있습니다.

02 / TRACE

한 반복씩 따라갑니다

현재 위치와 다음 칸의 자원을 종이에 기록하면 이동과 작업 순서가 어긋난 지점을 찾기 쉽습니다.

03 / COMPARE

정답의 구조를 비교합니다

코드를 통째로 외우기보다 내 코드에서 빠진 조건이나 반복 종료 시점만 예시와 비교합니다.

04 / RETRY

무작위 배치로 다시 확인합니다

Level 12, 13, 15를 여러 번 재시작해도 통과한다면 위치가 아닌 상태를 기준으로 푼 것입니다.

수업에서는 풀이 과정을 함께 비교할 수 있습니다

CLASSROOM WORKFLOW

강사는 Codedash 클래스에서 학생별 현재 레벨과 클리어 진행도를 확인할 수 있습니다. 학생이 레벨을 클리어하기 전에 도움요청을 누르면 현재 코드가 제출되고, 레벨을 클리어하면 최종 코드가 제출됩니다. 강사는 이 코드를 열어보고 실행해 이동 경로, 광석 판별, 반복 종료 중 어느 부분에서 막혔는지 확인할 수 있습니다.

먼저 힌트만 보고 수정하게 한 뒤 계속 막히는 경우 이 글의 예시 정답과 학생 코드를 한 줄씩 비교하면, 단순 복사보다 각 조건과 반복이 필요한 이유를 설명하기 좋습니다.

지금 파이썬광산의 첫 갱도에 들어가 보세요

현재 파이썬광산의 3개 챕터와 15개 레벨은 모두 무료로 플레이할 수 있습니다. 이동에서 시작해 채굴, 조건 판단, 무작위 탐색까지 짧은 단계로 이어집니다.

파이썬광산 Level 1 시작하기

다음 챕터는 앞 챕터의 5개 레벨을 완료하면 순서대로 열립니다.

자주 묻는 질문

현재 파이썬광산은 몇 레벨까지 있나요?

현재 실제 게임에는 Chapter 1, 2, 3에 각각 5개씩 총 15개 레벨이 있습니다. 이 글은 현재 플레이할 수 있는 15개 레벨을 모두 다룹니다.

이 글의 코드만 정답인가요?

아닙니다. 같은 목표와 작업 제한을 만족하는 코드는 여러 가지가 될 수 있습니다. 이 글에서는 초보자가 실행 순서와 문법의 역할을 확인하기 쉬운 예시 풀이를 제공합니다.

블록코딩으로도 같은 레벨을 풀 수 있나요?

네. 파이썬광산에서는 블록코딩과 파이썬 코드를 전환해 사용할 수 있습니다. 반복과 조건 구조를 블록으로 먼저 만든 뒤 파이썬의 들여쓰기와 비교할 수 있습니다.

look()을 인자 없이 쓰면 왜 오류가 나나요?

look()은 어느 방향을 확인할지 반드시 지정해야 하는 함수입니다. 오른쪽을 확인하려면 look(Dir.Right)라고 작성해야 합니다.

Level 12, 13, 15의 광석 위치가 정답 화면과 다릅니다.

정상입니다. 세 레벨은 다시 시작할 때 자원 배치가 달라질 수 있습니다. 좌표에 맞춘 고정 이동보다 look()으로 현재 자원을 확인하는 풀이를 사용해야 합니다.

광석을 제거했는데 수집 개수가 늘지 않습니다.

clear()는 무른 바위와 그 위의 광석을 제거하지만 자원을 수집하지 않습니다. 목표 광석은 mine()으로 HP가 0이 될 때까지 완전히 채굴해야 합니다.

모든 챕터를 바로 선택할 수 있나요?

모든 챕터는 무료지만 진행 순서가 있습니다. Chapter 1의 5개 레벨을 완료하면 Chapter 2가 열리고, Chapter 2를 완료하면 Chapter 3가 열립니다.