2과: If/Else 조건문
이 수업에서는 VR 로봇이 Dynamic Castle Crasher Playground에서 최소 두 개의 건물을 쓰러뜨리는 프로젝트를 만들 것입니다. 놀이터 레이아웃은 재설정할 때마다 변경되므로 루프와 센서 피드백을 사용하여 과제를 해결하려면 알고리즘이 필요합니다.
다이나믹 캐슬 크래셔 놀이터 레이아웃의 예:

학습 성과
- [If then else] 블록은 보고된 부울 값에 따라 If 또는 Else 분기 내부의 블록을 실행하는 C 블록인지 확인합니다.
- [If then else] 블록은 일반적으로 [Repeat] 또는 [Forever] 블록과 함께 사용되어 조건을 두 번 이상 확인하는 데 사용됩니다.
- [If then else] 블록이 루프와 함께 사용되는 이유를 식별하고 설명하세요.
- 프로젝트에서 [If then else] 분기가 실행되는 원인을 설명하세요.
[If then else] 블록을 사용하는 방법
이 챌린지는 Unit 2의 Castle Crasher 챌린지와는 다릅니다. 2단원 과제에서는 간단한 시퀀싱과 Drivetrain 명령을 사용하여 정적 놀이터의 건물을 무너뜨렸습니다.

Dynamic Castle Crasher Playground의 레이아웃이 변경되기 때문에 드라이브트레인 명령만으로는 VR 로봇이 두 개 이상의 건물을 무너뜨리기에 충분하지 않습니다. 드라이브트레인 명령 세트는 한 플레이그라운드에서는 작동하지만 다른 플레이그라운드에서는 작동하지 않을 수 있습니다. 센서와 선택을 사용하는 알고리즘이 필요합니다. [If then else] 블록은 이 프로젝트에 조건문이 있는 선택 항목을 추가하여 알고리즘을 생성하는 데 사용됩니다.

VR 로봇이 Dynamic Castle Crasher Playground에서 건물을 무너뜨리는 데는 두 가지 주요 단계가 있습니다.
- VR 로봇이 성 건물을 감지하면, 그쪽으로 달려가 성 건물을 쓰러뜨리세요.
-
다른 모든 놀이터와 달리 Dynamic Castle Crasher Playground 에는 벽이 없습니다. 건물이 Dynamic Castle Crasher Playground에 있는 유일한 물체이므로 거리 센서를 사용하여 건물을 감지할 수 있습니다.

-
- VR 로봇이 성 건물을 감지하지 못할 경우, 돌아서서 다시 성 건물이 있는지 확인하세요.
-
건물이 Dynamic Castle Crasher Playground에 있는 유일한 물체이므로 거리 센서를 사용하여 성 건물을 감지할 수 있습니다.

-
1단계와 2단계가 완료되면 VR 로봇은 1단계로 돌아가 거리 센서를 사용하여 다음에 쓰러뜨릴 건물을 찾습니다.
-
VEXcode VR에서 새 프로젝트를 시작하고 프로젝트 이름을 Unit9Lesson2로 지정합니다.

-
작업 공간에 [주석] 블록 두 개를 추가하고 위에 설명된 단계를 작성합니다.

-
[If then else] 블록은 위에 설명된 각 동작을 트리거하는 데 사용할 수 있습니다. 각 동작은 [If then else] 블록의 부울 조건이 TRUE 또는 FALSE를 보고하는지에 따라 달라집니다. [Comment] 블록 아래에 [If then else] 블록을 추가합니다.

귀하의 정보를 위해
[If then else] 블록은 부울 리포터 블록을 입력으로 받는 C 블록입니다. [If then else] 블록은 프로젝트의 흐름을 제어하는 조건문입니다. [If then else] 블록은 조건이 충족되면 특정 명령어 시퀀스를 실행하고, 조건이 충족되지 않으면 다른 명령어 세트를 실행하여 프로젝트 흐름을 '분기'합니다. [If then else]의 한 분기만 실행됩니다.

- 조건이 TRUE로 보고되면 If Then 분기 내부의 블록이 실행됩니다.
- 조건이 FALSE로 보고되면 Else 분기 내부의 블록이 실행됩니다.

한 브랜치 내부의 모든 블록이 실행되면 프로젝트는 [If then else] 블록 외부의 다음 블록으로 이동합니다.
-
이 프로젝트에서는 거리 센서를 사용하여 놀이터에서 건물을 감지할 수 있습니다. [If then else] 블록에 <Distance found object> 블록을 추가합니다.

귀하의 정보를 위해
<Distance found object> 블록은 거리 센서가 VR 로봇 앞에 있는 물체를 찾았는지 보고하는 부울 리포터 블록입니다. 이 블록은 VR 로봇의 3000밀리미터(mm) 이내에 물체나 표면이 있는 경우 TRUE를 보고합니다.

-
이제 [If then else] 블록의 각 분기는 프로젝트 시작 시 작성된 주석을 사용하여 정의되어야 합니다. <Distance found object> 블록이 TRUE를 보고하면 VR 로봇은 해당 건물을 향해 달려가 건물을 쓰러뜨려야 합니다. [주석] 블록을 프로젝트의 'If Then' 분기로 이동합니다.

-
VR 로봇이 건물을 감지하지 못하는 경우 어떻게 해야 하는지 알아보려면 다른 [Comment] 블록을 프로젝트의 'Else' 분기로 이동합니다.

-
[If then else] 블록의 'If Then' 분기에 [Drive] 블록을 추가합니다.

-
<Distance found object> 블록이 FALSE를 보고하면 VR 로봇은 돌아서서 놀이터에서 건물을 찾아야 합니다. [If then else] 블록의 'Else' 분기에 있는 [Comment] 블록 아래에 [Turn] 블록을 추가합니다.

-
프로젝트를 테스트하기 전에 하나의 블록을 추가해야 합니다. [If then else] 블록은 스택의 다음 블록으로 이동하기 전에 조건 번만 확인합니다. 7단원에서는 VR 로봇이 다운 아이 센서의 상태를 반복적으로 확인하도록 지시하는 [Forever] 블록을 프로젝트에 추가하였습니다. 거리 센서 조건이 반복적으로 확인되고 있는지 확인하려면 [If then else] 블록 주위의 작업 공간으로 [Forever] 블록을 끌어다 놓습니다.

-
Dynamic Castle Crasher Playground 을 열고 프로젝트를 실행합니다.

-
VR 로봇이 최소 두 개의 건물을 무너뜨리면 놀이터를 다시 로드하고 Dynamic Castle Crasher Playground의 다른 레이아웃에서 프로젝트를 실행합니다.

-
프로젝트를 실행할 때마다 VR 로봇은 거리 센서가 건물을 감지할 때까지 회전한 다음, 해당 건물을 향해 주행하여 건물을 쓰러뜨립니다.

- 프로젝트가 진행되는 동안 VR 로봇이 건물 조각을 가장자리까지 밀어내고 놀이터에서 떨어질 수 있습니다. <Distance found object> 블록은 여전히 VR 로봇 앞에 물체가 있다고 보고하고 있기 때문입니다. 이 블록이 TRUE를 보고하면 VR 로봇이 전진합니다. VR 로봇을 테이블에서 떨어지게 만듭니다.
이 강의의 나머지 부분을 계속하려면 다음 버튼을 선택하세요.