Skip to main content

2과: If Else 문

이 수업에서는 VR 로봇이 Dynamic Castle Crasher Playground에서 최소 두 개의 성을 무너뜨리는 프로젝트를 만들 것입니다. 놀이터 레이아웃은 재설정할 때마다 변경되므로 루프와 센서 피드백을 사용하여 과제를 해결하려면 알고리즘이 필요합니다.

Dynamic Castle Crasher Playground 레이아웃의 예:

Dynamic Castle Crasher Playground의 위에서 내려다본 모습 3개. 각각 성이 무작위로 다르게 배열되어 표시되어 있으며, VR 로봇은 항상 아래쪽 시작 지점에 배치되어 있습니다.

학습 성과

  • if else문은 보고된 부울 값에 따라 'if' 또는 'else' 분기 내의 명령을 실행합니다.
  • if else 문은 일반적으로 for 루프나 무한 while루프와 함께 사용되어 조건을 두 번 이상 확인하는 데 사용된다는 것을 알아보세요.
  • 루프에서 if else문이 사용되는 이유를 식별하고 설명하세요.
  • if else문이 있는 프로젝트에서 'if' 분기나 'else' 분기가 실행되게 하는 원인을 설명하세요.

왜 If Else 문을 사용하나요?

Dynamic Castle Crasher 챌린지는 Unit 2의 Castle Crasher 챌린지와 다릅니다. 2단원 과제에서는 간단한 시퀀싱과 드라이브트레인 명령을 사용하여 정적 놀이터에서 성을 무너뜨렸습니다.

def main():
	drivetrain.set_drive_velocity(100, PERCENT)
	drivetrain.set_turn_velocity(100, PERCENT)
	drivetrain.drive_for(전진, 1550, MM)
	drivetrain.turn_for(우회전, 180, 도)
	drivetrain.drive_for(전진, 700, MM)
	drivetrain.turn_for(우회전, 90, 도)

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

Dynamic Castle Crasher 놀이터를 위에서 내려다본 모습. 일부 성만 무너진 것을 보여줍니다. VR 로봇은 놀이터를 돌아다닌 후 놀이터 오른쪽 상단에 있습니다.

If Else 문

if else 문은 부울 조건을 허용하는 문입니다. if else문은 프로젝트의 흐름을 제어하는 조건문입니다. if else문은 특정 명령 시퀀스를 실행합니다if 조건이 충족되면, else(조건이 충족되지 않으면 ) 다른 명령 세트가 실행되어 프로젝트 흐름이 '분기'됩니다. 한 번에 if else의 분기는 하나만 실행됩니다.

if 조건:
	통과
else:
	통과
  • 조건이 True로 보고되면 'if' 분기 내의 명령이 실행됩니다.
  • 조건이 False로 보고되면 'else' 분기 내부의 명령이 실행됩니다.
  • 한 브랜치 내부의 모든 명령이 실행되면 프로젝트는if else문 외부의 다음 명령으로 이동합니다.

여러분은 일상생활에서 종종if else논리를 사용하곤 합니다. 예를 들어, 집 밖으로 나갈 때 무엇을 가져가야 할지 결정할 때, 바깥 날씨에 따라if else논리를 사용할 수 있습니다. 비가 오면 우산을 가져가세요. 비가 오지 않으면선글라스를 가져가세요.

'만약' 분기 -

  • 이 시나리오에서는 '비가 온다'라는 조건이 충족되므로 'if'분기가 실행되고 우산을 가져갑니다. 왼쪽에는 비가 오면 우산을 가져가라는 코드 예제가 있습니다. if 문 다음에 else: 선글라스를 가져가세요라고 적혀있습니다. 코드 위에는 빗방울이 있는 비구름이 있습니다. 오른쪽에는 물방울이 맺힌 다채로운 우산이 있습니다. 규정에 따르면, 비가 오면 우산을 가져가고, 비가 오지 않으면 선글라스를 가져갑니다.

'Else' 브랜치 -

  • 이 시나리오에서 '비가 온다'라는 조건은 이 아닌 이므로 'else' 분기가 실행되고 선글라스를 가져가게 됩니다. 왼쪽에는 비가 오면 우산을 가져가라는 코드 예제가 있습니다. if 문 다음에 else: 선글라스를 가져가세요라고 적혀있습니다. 코드 위에는 밝은 태양이 있습니다. 오른쪽에는 빨간색 선글라스가 있습니다. 규정에 따르면, 비가 오면 우산을 가져가고, 비가 오지 않으면 선글라스를 가져갑니다.

 

If Else 문과 동적 캐슬 크래셔 문제

VR 로봇이 Dynamic Castle Crasher Playground에서 성을 성공적으로 무너뜨리려면 두 가지 주요 단계가 있습니다. 기본적으로 VR 로봇은 놀이터에서 성을 찾아 감지하고, 이를 운전해 넘어뜨릴 수 있어야 합니다. if else문의 관점에서 이는 다음과 같이 표현될 수 있습니다.

  1. VR 로봇이 성을 감지하면, 성을 향해 전진하여 성 쓰러뜨리세요.Dynamic Castle Crasher 놀이터의 위에서 내려다본 모습. 이 놀이터 중앙에 있는 성은 빨간색 상자로 표시되어 있고, VR 로봇의 시작 위치에서 성을 가리키는 화살표가 그려져 있습니다. 이는 VR 로봇이 성을 향해 이동한다는 것을 나타냅니다.
  2. 그렇지 않으면,(VR 로봇이 성을 감지하지 못할 경우), 돌아서서 놀이터의 다른 위치에 성이 있는지 확인하세요.Dynamic Castle Crasher 놀이터의 위에서 내려다본 모습이며, 가운데 성은 빨간색 상자로 강조 표시되어 있습니다. VR 로봇 주위의 화살표는 시계 방향으로 회전하는 모습을 보여주며, 로봇이 다른 성을 볼 때까지 회전한다는 것을 나타냅니다.

VR 로봇의 거리 센서를 사용하여 이 놀이터의 성을 감지할 수 있습니다.다른 모든 놀이터와 달리 Dynamic Castle Crasher 놀이터 에는 벽이 없습니다. 성은 Dynamic Castle Crasher Playground에 있는 유일한 물체이기 때문에 거리 센서가 물체를 감지하면 그 물체는 성이 됩니다. VR 로봇은 거리 센서의 상태를 반복적으로 확인해야 합니다. 이 두 가지 기본 단계완료되면 VR 로봇은 뒤로 돌아가 거리 센서를 사용하여 다음에 무너뜨릴 성을 찾을 수 있습니다.

If Else 문장을 사용한 프로젝트 계획

  • 새 프로젝트를 시작하고 메시지가 표시되면 Dynamic Castle Crasher Playground선택합니다. VEXcode VR에서 새로운 놀이터를 선택할 때 보이는 Dynamic Castle Crasher 놀이터의 썸네일입니다.
  • 프로젝트 이름을 Unit9Lesson2로 지정하세요.
    프로젝트 이름이 빨간색으로 강조 표시된 VEXcode VR 도구 모음입니다. 프로젝트 이름은 단원 9, 수업 2입니다.
  • 위에서 식별된 단계에 따라 프로젝트의 의도를 설명하는 주석을 작업 공간에 추가합니다. 첫 번째 주석은 if else문의 조건을 설명하고, 다음 두 주석은 if else문의 각 분기의 동작을 설명합니다. Python 주석은 # (파운드) 기호로 시작한다는 것을 기억하세요. 프로젝트는 다음과 같아야 합니다.

    def main():
    	# 거리 센서가 성을 감지했나요?
    	
    	# 거리 센서로 감지된 충돌성
    	
    	# 거리 센서를 사용하여 성을 찾으려면 돌아서세요
  • if else 명령문을 사용하면 위에 설명된 각 동작을 트리거할 수 있습니다. 각 동작은 if else문의 부울 조건이 True 또는 False로 보고되는지 여부에 따라 달라집니다. 주석 뒤에 if else문장을 추가합니다. 이제 프로젝트는 다음과 같이 보일 것입니다.

    def main():
    	# 거리 센서가 성을 감지했나요?
    	
    	# 거리 센서로 감지된 충돌 성
    	
    	# 거리 센서를 사용하여 성을 찾으려면 돌아서세요
    	
    	if condition:
    		pass
    	else:
    		pass
  • if else 문의 각 분기는 주석을 사용하여 정의할 수 있습니다. 거리 센서을 감지하면 VR 로봇은 성을 무너위해 주행해야 합니다. 성을 감지하기 위해 방향을 바꿔야. 프로젝트의 if 및 else 분기를 연관된 작업을 설명하는 주석에 맞게 이동합니다. 이제 프로젝트는 다음과 같이 보일 것입니다.

    def main():
    	# 거리 센서가 성을 감지했나요?
    	
    	if condition:
    		# 거리 센서에 의해 감지된 충돌성
    		패스
    		
    	else:
    		# 거리 센서를 사용하여 성을 찾기 위해 돌아서기
    		패스

이 강의의 나머지 부분을 계속하려면 다음 버튼을 선택하세요.