python challenge level5

2009. 8. 27. 00:20

http://www.pythonchallenge.com/pc/def/peak.html

pronounce it 이라고 적혀진 페이지가 있다.

소스를 보면 아래의 내용을 볼 수 있다.

<peakhell src="banner.p"/>
<!-- peak hell sounds familiar ? -->

banner.p
파일을 다운받아서 보았지만 별다른 힌트는 없어보였다
peakhell 이 도대체 뭘까.. 이리저리 고민하다가 forum의 hint 페이지를 찾아보았다.
(http://www.pythonchallenge.com/forums/)

힌트 없냐는 말에 누군가가 "Try browsing "Global Modules Index" 라는 코멘트를 달아놓았다.

Global Module 중에 peakhell과 비슷한 발음이 나는 녀석을 찾다보니 PICKLE 이라는 녀석이 있었다.

PICKLE 에 대한 설명은 http://docs.python.org/library/pickle.html 에서 볼 수 있다.
간략히 말하면 pickle module은 python object serialization 으로 파이썬 객체를  바이트 스트림으로 바꿀 수 있다. (unplckling 이라 하면 이 반대의 과정을 의미한다)

이점에 착안해서 banner.p를 읽어와서 이를 unpickling 해보았다.


import pickle

f = open("banner.p",'rb')
result = pickle.load(f)
list_length = len(result)
i=0
temp = ()
while i < list_length:
	tuple_length  = len(result[i])
	j = 0
	word = ''
	while j < tuple_length: 
		temp = result[i][j]
		j+=1
		k = 0
		while k < temp[1]:
			if temp[0] ==' ':
				word += ' ' 				
			else:
				word += temp[0]
			k+=1
	print word
	i+=1


코드를 수행하면 banner command를 실행한 것처럼 channel 이라고 크게 찍히는 문자열을 볼 수 있다.

http://www.pythonchallenge.com/pc/def/channel.html

'War game > pythonchallenge' 카테고리의 다른 글

pythonchallenge level11  (0) 2009.10.22
pythonchallenge level10  (0) 2009.10.20
pythonchallenge level9  (0) 2009.10.16
pythonchallenge level8  (0) 2009.10.16
pythonchallenge level7  (0) 2009.10.16
python challenge level6  (0) 2009.09.21
pythonchallenge level4  (0) 2009.08.20
pythonchallenge level3  (0) 2009.08.19
pythonchallenge level2  (0) 2009.08.17
pythonchallenge level1  (0) 2009.08.17

badcob War game/pythonchallenge