12. 리보그 스스로 결정을 할 수 있다면 ...

만약, 만약 ...

잠시만요!!! 리보그는 스스로 몇 가지 결정을 할 수 있습니다. 제가 말씀을 드리지 않았나요?


첫 번째 결정

음… 사실대로 말씀드려, 리보그가 스스로 결정을 하기 위해서 약간의 도움이 필요합니다. 리보그에게 결정할 몇 가지 선택사항을 주어야 합니다. 예를 들어, 리보그가 비퍼 옆에 있을 때, 무엇을 해야 할지에 대해서 몇 가지 선택지를 줄 수 있습니다. 예를 들어, 리보그가 아래처럼 비퍼를 집으라고 할 수 있습니다.

if on_beeper():
    pick_beeper()

위의 코드 의미를 살펴봅시다.

설명이 처음 읽을 때 복잡하게 보일 수 있지만, if 문을 사용하는 것을 사실 매우 간단합니다. 간단한 예제로 사용된 if 문을 살펴보세요. 리보그가 9칸을 이동하면서, 길 중간에 있는 어떤 비퍼라도 줍는다고 가정합시다. 예를 들어, 시작 위치는 다음과 같이 보일 것입니다.

move_pick_start

그리고, 최종 위치는 다음과 같을 것입니다.

move_pick_start

리보그가 다음을 수행하기를 원할 것입니다.

다음 명령문을 9번 반복합니다. 만약 리보그에게 비퍼가 없는데 주우라고 명령을 한다면 리보그는 불평하고 꺼집니다. 여기에 어떻게 수행하는지 코드가 있습니다.

def move_and_pick():
    move()
    if on_beeper():
        pick_beeper()

repeat(move_and_pick, 9)
turn_off()

시작해 보세요!


다시 수확 시기

다시 수확시기가 돌아왔습니다. 하지만, 이번에는 모든 당근 씨앗이 발아하지 않아서, 당근 몇 개가 정원에 비워있습니다. 정원에 있는 모든 당근 (비퍼로 표현)을 리보그가 수확하게 만드세요. 월드 파일은 harvest3.wld입니다. 지난 학습시간에 했던 마지막에서 두 번째 수확 연습문제를 살펴보세요. 여러분이 해야 할 일은 아마도 harvest_one_row() 명령 함수를 수정해서 위의 move_and_pick() 명령 함수와 비슷할 것입니다.

harvest start

여러분이 작성한 새로운 프로그램은 전에 사용한 harvest1.wld 월드 파일에서와 마찬가지로 작동해야 합니다.

previous 다시 반복 피하기 - home - 제 말을 들으세요…그렇지 않다면 next