Reeborg (13) python (13) Scratch (8) Minecraft (4) TED (1) etc. (1) lua (1) science (1)

2022년 9월 23일 금요일

정원사 로봇 리보그(초급) - 9. 민들레 뽑기 (2)

민들레 뽑기 (2)

리보그가 정원에 무작위로 돋은 잡초를 뽑아 쓰레기통에 버리게 하는 프로그램을 작성하며, 여러 상황에서 참과 거짓을 판단하여 작업을 수행하는 조건 명령과 함수에 대해 알아봅니다. 이번에는 이전과 같은 상황에서 반복을 이용하여 문제를 해결해 봅니다.




여러분의 임무

이번에는 두 개의 repeat 반복 명령을 사용하여 이전 단계에서 만든 코드를 개선해 봅니다. 이전 단계와 문제 상황은 변하지 않지만 해결된 코드는 훨씬 간결하게 표현될 것입니다. 코드의 가독성을 높이려면 주석과 공백을 사용해야합니다!

여러분이 알아야 할 것은

  • 이전 단계에서 해결한 코드가 있어야 합니다.

난이도

  • ⭐ ⭐

시작 시 조건

        로봇은 (x, y) = (1, 3)에 위치해 있고, 싣고 있는 객체는 없습니다.

목표 달성 시 조건

        로봇의 최종위치는 반드시 (x, y) = (1, 3)에 있어야 합니다.

 

반복 구문 익히기

종종 여러분은 여러 명령줄을 한꺼번에 일정 횟수만큼 반복해야 한다는 것을 알게 될 것입니다. 
예를 들어, 이전 단계에서 리보그에게 같은 일을 반복하라고 말해야 했습니다.
파이썬에서 이것을 할 수 있는 방법이 있지만, 지금 지금 설명하기에는 좀 어렵습니다. 대신 '리보그 세상'에서만 사용할 수 있는 반복 명령어인 repeat 에 대해 알려드리겠습니다.
파이썬에서는 일반적으로 반복을 다음과 같이 for i in range(n) 과 같이 사용합니다. 
for i in range(n):
    # some
    # instructions
    # here

그렇지만 리보그 세상에서는 repeat 명령을 이용하여 다음과 같이 표현할 수 있습니다.

repeat n:    # where n is a natural number, like 3 or 7
    # some
    # instructions
    # here

노트

 repeat 은 일반적인 파이썬 프로그램에서는 사용되지 않는 명령어입니다. 리보그 세상 안에서만 실행됩니다.

아래 코드 블록은 반복명령의 예이다. 아래 코드는 4번 반복되며 리보그가 사각형 모양으로 이동합니다.

repeat 4:
    move()
    turn_left()

repeat을 사용하면 다음과 같이 일부 함수를 다시 정의할 수 있습니다

def turn_right():
    repeat 3:
        turn_left()

 반복 블록을 사용하기 위해 라이브러리 탭에 저장 한 코드를 조정할 수 있습니다. 

교육자용

리보그세상에서 repeat을 사용하는 이유는 초보자들이 이해하기 어려운 파이썬의 표준 표기법과 개념(for _ in range(n)range에서 변수 _ )을 당장에 도입하지 않기 위해서입니다.

학생들이 변수에 대해 배울 때가 되면 표준 반복문인 for문을 같이 배우게 될 것입니다.

그리고 리보그세상에서는 설계상 repeat n 에서n 정수이어야 합니다. 변수는 될 수 없습니다.


여러분의 차례

다음 링크를 클릭하여 앞뜰에 무작위로 돋아난 민들레를 제거하세요.


코드 작성: http://reeborg.ca/reeborg.html?lang=ko-en&mode=python&menu=worlds%2Fmenus%2Fsk_menu_ko.json&name=9%20%EB%8B%A8%EA%B3%84&url=worlds%2Fsk_ko%2Fstep9.json


원문 출처: https://cs20.ca/ConstrainedLanguage/Step9.html


댓글 없음:

댓글 쓰기