목차

이전 항목

4. 신문 배달 재방문

다음 항목

6. 증가

현재 문서

주의사항

해당 문서는 중요 변경 작업 중에 있습니다. 일부 문서에 텍스트가 빠져있거나, 불어로 플레이스홀더(placeholder) 자리차지만 되어 있을 수 있습니다.

5. 세상

주석

World() 는 매우 특수한 함수로, 저자는 정규 파이썬 관례를 따르지 않기로 하고, 대문자로 시작되는 명칭을 부여했다.

Home 1 이 아닌 세상을 선택한다. 그리고 나서, 다음 프로그램을 두번 실행한다:

World("Home 1")
move()
move()

처음 실행할 때, 세상이 Home 1 으로 변경된다는 정보를 리보그가 알려준다. 세상을 쳐다보면 확인할 수 있다.

두번째 실행할 때, Home 1 이 이미 선택되어 있기 때문에, World() 함수는 실제적으로 무시되고, 프로그램 나머지 부분이 실행된다.

5.1. 프로그래밍 연습

World() 세상에 관해서 좀더 일러주기 전에, 이전에 작성했던 프로그램을 재방문한다.

직접 작성한다! 이점이 중요하다.

Storm 1 세상을 선택한다. 리보그가 모든 낙엽을 모아서 쓰레기통에 담는 프로그램을 작성한다. 작성한 프로그램에는 아마도 carries_object() 함수를 사용하는 것이 필요하다.

힌트

from library import *
think(0)

def collect_leaves():
    while not wall_in_front():
        move()
        if object_here():
            while object_here():
                take()

def throw_away():
    while not wall_in_front():
        move()
        if wall_in_front():
            turn_right()
            move()
            while carries_object():
                put()

#----- 정의 끝

collect_leaves()
turn_around()
throw_away()
turn_around()
move()

5.2. 원격 세상 적재하기

Storm 1 세상을 면밀히 살펴보고, 낙엽이 있는 장소에 주목한다.

이제, Storm 1 에 흩어져 있는 모든 낙엽을 리보그가 주어서 쓰레기통에 담도록 작성한 프로그램 최상단에, 다음 코드 한줄을 추가한다:

World("http://reeborg.ca/worlds/not_storm1.json")

[not_storm1 말미에 영문자 “l” 이 아니고, 숫자 “1” 임에 주의한다.] 프로그램을 한번 실행한다: 리보그가 세상이 적절히 잘 적재되었음을 일러줘야 한다. 모양은 이전에 살펴본 것과 통일해야 된다.

상단 세상명칭 선택자에 매우 긴 명칭( World() 함수에 인자로 사용됨)이 나온 것에 주목한다.

최상단 “World info” 버튼을 클릭한다. 세상에 대한 간략한 기술이 되어있는데, carries_object() 사용을 가정하지 않는다는 사실이 포함되어 있다. 이것은 무시하고, 프로그램을 실행한다. 발생한 일에 대해서 착실히 적어 놓는다.

5.3. 원격 세상 다시 적재하기

그래서, 작성한 프로그램은 정상 동작하는 것은 아니다. 이 문제를 어떻게 고치는지 곧 알게 된다. 그러는 동안에, 뭔가 다른 것을 했으면 한다. 프로그램 첫번째 줄을 다음과 같이 변경한다:

World("http://reeborg.ca/worlds/not_storm1.json",
      "Not Storm 1")

World() 함수에 두번째 인자를 추가했다. 편집기에서 한번에 세상을 보기에는 너무 길어서 이를 회피하고자, 다른 행에 두번째 인자를 넣었다. 파이썬은 ( 시작 괄호를 함수 인자로 사용할 때, 닫는 괄호를 찾을 때까지 필요하면 다음 행까지 쭉 읽어 내려가고, 이 모든 것을 마치 한줄에 있었던 것처럼 처리한다. 하지만, 문자열은 쪼개지 않았음에 주목한다; 콤마 다음에 새줄에 작성했다. 그렇게 함으로써, 함수 인자는 해당 줄에 모두 위치하게 된다.

이제 다시 실행한다. 이렇게 바꾼다고, 작업하고 있던 문제가 해결된 것은 아니다. 하지만, 상단을 살펴보면, 세상에 대한 명칭이 이전에 봤던 매우 긴 장문의 주소가 아니라 Not Storm 1 으로 나온다.

5.4. 작업 저장하기

로컬 컴퓨터에 파일 형태로 작성한 프로그램을 저장하고자 하면, 상단에 “Additional options” 과 “Save program to file” 을 클릭해서 저장한다. 나중에, 저장한 프로그램을 “Import program from file” 을 클릭해서 불러올 수 있다.

선생님께

To do: 대신 permalinks 를 사용하는 방법을 설명한다.