Coding for KidsCoding for Kids
창의적인 레벨도전 과제교사 가이드
기능 투표
고급 파이썬 개발 과정
챕터
>
레벨

비동기/대기
문제 설정

Objective

다양한 주방 재료들을 모아 요리를 준비하기 위해 “질문”을 설정하세요.

나중에 사용하고 섭취하기 위해 설정 및 준비해야 하는 다양한 주방 및 식자재들이 있습니다. 이를 용이하게 하기 위해 question() 함수를 설정할 수 있습니다. 이 함수는 write()와 유사한 비동기(async) 함수지만 정적인 메시지를 표시하는 대신 **“Yes”**와 “No” 옵션이 있는 질문을 표시할 수 있습니다.

question() 함수를 설정하려면 조건을 처리할 수 있는 사용자 정의 함수를 반드시 설정해야 합니다. 이 함수는 비동기(async) 함수임을 나타내기 위해 시작 부분에 async가 포함되어야 합니다. 내부에서는, question() 함수가 변수에 저장되며, 다른 async 함수들과 마찬가지로 함수 앞에 await가 작성되어 있습니다. 인수로, question() 함수는 당신이 물어보고자 하는 질문의 문자열을 받습니다.

async def question_function(): answer = await player.question("Question you would like to ask") if answer: # Actions to take if answer is Yes else: # Actions to take if answer is No

함수 내부에서는 if 문을 사용하여 응답이 참(True)인지 거짓(False)인지에 따라 어떤 작업을 수행할지 결정합니다. 질문용 사용자 정의 함수들은 코드 에디터에 설정되며 하나의 소스에서 여러 아이템을 수집하거나 배치할 수 있도록 해줍니다.

주방에서 준비해야 하는 아이템은: "water", "ice", "meat" 그리고 "potato" 입니다. 이 아이템들은 수집되어 주방의 다른 장소에 배치되어야 합니다. "ice"는 냉동고 안에 배치되어야 하며, "water"는 냄비 안에 넣어야 하고, "meat"와 "potato"는 각각 다른 오븐 안에 배치되어야 합니다.

먼저 오른쪽 방에 있는 금색 X 표시까지 걸어간 후, 코드 에디터에 나와 있는 await dispencer() 사용자 정의 함수를 사용하세요. 얼음 상자를 마주한 후 해당 함수를 두(2) 번 사용합니다. 이 함수는 질문을 할 것이며, "ice"를 수집하기 위해서는 Yes로, "water"를 수집하기 위해서는 No로 대답해야 합니다.

두 아이템을 모두 수집한 후, 냉동고 앞에 있는 어두운 X 표시로 걸어간 후 place() 함수를 사용하여 냉동고 안에 "ice"를 배치하세요. 예: player.place("ice"). 그 다음, 자루 앞에 위치한 밝은 X 표시까지 걸어가 collect() 함수를 사용하여 "potato"를 수집하세요. 예: player.collect("potato").

그 후, 중앙 냄비 옆의 어두운 X 표시까지 걸어가 수집한 "water"를 place() 함수를 사용하여 배치하세요. 예: player.place("water"). 완료되면, 냉장고 앞에 위치한 위쪽의 밝은 X 표시까지 걸어가 "meat"을 수집하세요. 예: player.collect("meat").

이제 "meat"과 "potato" 두 아이템을 모두 수집했으므로, 왼쪽 방에 있는 두 개의 금색 X 표시로 걸어가 코드 에디터에 작성된 await oven() 사용자 정의 함수를 사용하세요. 오른쪽 오븐에서는 "potato"를 **구워(bake)**야 하며, 왼쪽 오븐에서는 "meat"을 굽기(grill) 위해 선택해야 레벨을 완료할 수 있습니다.

코드북