만약, 만약 ...
잠시만요!!! 리보그는 스스로 몇 가지 결정을 할 수 있습니다. 제가 말씀을 드리지 않았나요?
음… 사실대로 말씀드려, 리보그가 스스로 결정을 하기 위해서 약간의 도움이 필요합니다. 리보그에게 결정할 몇 가지 선택사항을 주어야 합니다. 예를 들어, 리보그가 비퍼 옆에 있을 때, 무엇을 해야 할지에 대해서 몇 가지 선택지를 줄 수 있습니다. 예를 들어, 리보그가 아래처럼 비퍼를 집으라고 할 수 있습니다.
if on_beeper():
pick_beeper()
위의 코드 의미를 살펴봅시다.
설명이 처음 읽을 때 복잡하게 보일 수 있지만, if 문을 사용하는 것을 사실 매우 간단합니다. 간단한 예제로 사용된 if 문을 살펴보세요. 리보그가 9칸을 이동하면서, 길 중간에 있는 어떤 비퍼라도 줍는다고 가정합시다. 예를 들어, 시작 위치는 다음과 같이 보일 것입니다.
그리고, 최종 위치는 다음과 같을 것입니다.
리보그가 다음을 수행하기를 원할 것입니다.
다음 명령문을 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() 명령 함수와 비슷할 것입니다.
여러분이 작성한 새로운 프로그램은 전에 사용한 harvest1.wld 월드 파일에서와 마찬가지로 작동해야 합니다.