목차

이전 항목

2. 기본 명령어

다음 항목

4. 창고지기 (Sokoban)

현재 문서

주의사항

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

3. 객체, 배경 이미지, 등

리보그 경로를 막는 벽 외에도, 다양한 객체를 표현하는데 사용되는 이미지가 많다.

3.1. 기본 객체

리보그는 다양한 객체와 상호작용 할 수 있다. 리보그는 take()put() 함수를 사용해서 다음에 나오는 객체를 집거나 놓을 수 있다. 특히, 리보그가 가장 좋아하는 객체는 token 토큰 이다. 사람 대부분이 가치가 없다는 것을 제외하면, 토큰은 웃는 얼굴을 갖는 동전 같다; 리보그는 가치가 없다는 점에 대해서 다르게 생각한다.

만약 객체가 하나 이상 있고, 어떤 객체를 take() 해서 집거나, put() 해서 내려놓을지 명시해야 되면, 문자열로 객체 명칭을 사용한다. 예를 들어, put("token") 혹은 take('token'). [짝만 맞기만 하면, 이중 인용부호든 단일 인용부호든 사용가능하다.]

토큰외에도, 리보그는 다양한 과일, 꽃, 도형 등과 상호작용 할 수 있다. [많은 이미지는 http://openclipart.com 사이트에서 가져왔다]

사과-apple:apple
바나나-banana:banana
당근-carrot:carrot
데이지꽃-daisy:daisy
민들레-dandelion:dandelion 민들래는 예쁘지만, 여기서는 잡초로 간주된다 - 세상에서 제거될 필요가 있다.
낙엽-leaf:leaf 리보그는 특히 낙엽을 좋아하지 않는다. 리보그 세상에서 낙엽의 존재는 가을의 도착을 알린다. 낙엽이 나무에서 떨어지고, 리보그는 낙엽을 가지고 놀기 보다 모아야 된다. 틈만 나면, 리보그는 항상 놀고 싶어 한다.
오렌지-orange:orange
딸기-strawberry:strawberry
튤립-tulip:tulip
정사각형-square:square
별-star:star
삼각형-triangle:triangle 이런 유형의 삼각형은 리보그 세상 내부에만 존재한다. 삼각형을 확대해 보면 다음과 같다.

impossible-triangle

3.2. 장식 객체

상기 객체가 순전히 장식 객체로 그려질 수 있다. 장식으로 그려진 경우, 리보그는 장식객체와 상호 작용할 수 없고, 작업이 완수되었는지 아닌지를 판단할 때 고려되지 않는다.

해당 지점에서 발견한 “정상” 객체 갯수는 표식되는 반면에, 장식 객체에는 숫자가 없다.

3.3. 배경 타일

잔디-grass:grass pale_grass 리보그가 걸어가는데 문제가 되지 않음
자갈-gravel:gravel 리보그가 걸어가는데 문제가 되지 않음
물-water:water 리보그가 익사할 수 있음. 다행스럽게도, 리보그는 front_is_clear() 함수를 사용해서 물을 탐지할 수 있음.
진흙-mud:mud 리보그를 수렁에 빠지게 만들 수 있다. 리보그가 진흙에 빠지기 전까지, 탐지할 수 없다.
벽돌벽-brick wall:bricks 리보그는 벽돌벽과 충돌할 수 있다; 다행스럽게도, front_is_clear() 함수를 사용해서 벽돌벽을 탐지할 수 있다.
얼음-ice:ice 리보그가 미끌어져서 다음 격자로 이동하게 한다. 만약 다음 격자에 장애물이 있다면, 문제가 될 소지가 있다. 얼음위에 서서 미끌어지기 전까지 얼음을 탐지할 수 없다.

slip

3.4. 특수 객체

정규 객체처럼, 특수 객체는 배경 타일 위에 그려진다. 하지만, 리보그가 특수 객체를 집을 수는 없고, 타일에 대한 예상 행동을 변경할 수 있다.

다리-bridge:bridge 다리를 통해, 리보그는 안전하게 물을 건널 수 있다. 물에 빠지는 대신에 다리를 건널 수 있음에 리보그는 항시 기쁨을 표시한다.
담장-fences:fence_right - fence_left - fence_double - fence_vertical 리보그는 담장을 탐지할 수 있다. 만약 리보그에게 담장을 옮겨 배치하게 명령하면, 리보그는 뛰어 넘으려고 해서 슬프게도 실패하게 된다. 둘러싼 영역을 만들려면, 마지막 이미지와 다른 이미지 세개가 겹치게 만들어야 된다.
상자-box:box 리보그는 상자를 밀어서 치울 수 있다... 하지만, 벽 혹은 다른 상자처럼 다른 것이 있다면, 박스를 옮길 수 없게 된다. 리보그가 물에 박스를 밀어 넣으면, 박스가 뜨게 되어 다리가 되어서 안전하게 물을 건널 수 있게 한다. 박스를 밀어 다리로 만들어 물을 건너는 것이 아래 예제에 나와 있다.

box-blocked

3.5. 목적지

리보그는 최종 지점에 도착하거나 특정 지점에 특정 객체를 놓는 것처럼, 특정 목적을 완수할 수 있다. 객체 하나(혹은 그 이상)를 특정 지점에 놓아야 됨을 표기하기 하는데, 다음과 같은 회색 이미지가 사용된다.

apple_goal banana_goal carrot_goal daisy_goal dandelion_goal leaf_goal orange_goal strawberry_goal tulip_goal square_goal star_goal triangle_goal token_goal

리보그가 정해진 최종 지점에서 작업을 끝마쳐야 됨을 표기하는데, 다음 이미지 중 하나가 사용된다.

green_home_tile house racing_flag