The Python Challenge – Level 7

먼저 문제 페이지는 아래와 같다.
http://www.pythonchallenge.com/pc/def/hockey.html

해당 페이지에 접속을 하면 "it's in the air. look at the letters." 라고 나온다.
공기중에서 볼 수 있는것?

badcob님의 힌트를 받아 아래 페이지가 존재 한단것을 알 수 있었다.
http://www.pythonchallenge.com/pc/def/oxygen.html
(nomja님의 제보로 다시 한번 확인해보니 이전 문제에서 출력되는 hocky에서 이루어지는 글자가 oxygen이군!)

해당 페이지에는 이미지가 삽입되어 있었다.

이미지에서 회색 및 검은색 박스 부분의 데이터를 뽑아 스트링으로 변환하여 보니 아래와 같은 메세지가 나왔다.

smart guy, you made it. the next level is [105, 110, 116, 101, 103, 114, 105, 116, 121]

다시 뒤의 숫자값들을 변환한 결과 "integrity" 라는 단어를 얻을 수 있었다.
최종 코드는 아래와 같다.

#!c:\python26\python.exe
import Image

final = ''
im = Image.open("oxygen.png")
for x in range(87):
        box = ( (x*7), 43, (x*7+1), 44)
        output = im.crop(box)
        data = output.tostring()
        final += data[0]
print final

data = [105, 110, 116, 101, 103, 114, 105, 116, 121]
next = ''
for byte in data:
        next += str(chr(byte))
print 'next : ' + next

PS. 이 문제를 풀기위해서는 PIL (Python Imaging Library)에 대한 이해가 필요하다.
http://www.pythonware.com/products/pil/

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다