832 lines
24 KiB
JSON
832 lines
24 KiB
JSON
|
|
{
|
||
|
|
"1-1": {
|
||
|
|
"type": "scene",
|
||
|
|
"ele": "$..objects[?(@.name=='작업실')]",
|
||
|
|
"point": 1.7,
|
||
|
|
"desc": "문제 1/장면 1/[배경] 이름 설정 1/이름을 '작업실'로 변경하기",
|
||
|
|
"sort": 11
|
||
|
|
},
|
||
|
|
"1-2": {
|
||
|
|
"type": "scene",
|
||
|
|
"ele": "$..objects[?(@.name=='로봇방')]",
|
||
|
|
"point": 1.7,
|
||
|
|
"desc": "문제 1/장면 2/[배경] 이름 설정 2/이름을 '로봇방'으로 변경하기",
|
||
|
|
"sort": 12
|
||
|
|
},
|
||
|
|
"1-3": {
|
||
|
|
"type": "scene",
|
||
|
|
"ele": "$..objects[?(@.name=='렌치')]",
|
||
|
|
"point": 1.6,
|
||
|
|
"desc": "문제 1/렌치/[개체] 이름 설정 1/이름 변경 없음",
|
||
|
|
"sort": 13
|
||
|
|
},
|
||
|
|
"1-4": {
|
||
|
|
"type": "scene",
|
||
|
|
"ele": "$..objects[?(@.name=='로봇')]",
|
||
|
|
"point": 1.7,
|
||
|
|
"desc": "문제 1/둥근로봇/[개체] 이름 설정 2/이름을 '로봇'으로 변경하기",
|
||
|
|
"sort": 14
|
||
|
|
},
|
||
|
|
"1-5": {
|
||
|
|
"type": "scene",
|
||
|
|
"ele": "$..objects[?(@.name=~'^(뿅망치|망치)$')]",
|
||
|
|
"point": 1.7,
|
||
|
|
"desc": "문제 1/뿅망치(1)_1/[개체] 이름 설정 3/이름을 '망치'로 변경하기",
|
||
|
|
"sort": 15
|
||
|
|
},
|
||
|
|
"1-6": {
|
||
|
|
"type": "scene",
|
||
|
|
"ele": "$..objects[?(@.name=~'^(로봇 팔|단소)$')]",
|
||
|
|
"point": 1.6,
|
||
|
|
"desc": "문제 1/로봇 팔/[개체] 이름 설정 4/이름 변경 없음",
|
||
|
|
"sort": 16
|
||
|
|
},
|
||
|
|
"1-0": {
|
||
|
|
"ele": "$..variables[?(@.name=='고장 원인')]",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/렌치/변수/'고장 원인' 변수 만들기 (변수 기본값은 '0', '모든 오브젝트에 사용' 설정하기)",
|
||
|
|
"type": "scene",
|
||
|
|
"sort": 101
|
||
|
|
},
|
||
|
|
"2-0": {
|
||
|
|
"ele": "$.messages[?(@.name=='수리 완료')]",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/렌치/신호/'수리 완료' 신호 만들기",
|
||
|
|
"type": "scene",
|
||
|
|
"sort": 102
|
||
|
|
},
|
||
|
|
"3-0": {
|
||
|
|
"type": "script",
|
||
|
|
"ele": "$.objects[?(@.name=~'렌치')].script",
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"ele": "$[0][0].type",
|
||
|
|
"answer": "when_run_button_click",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/렌치/시작/시작하기 버튼을 클릭했을 때"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[0][1].type",
|
||
|
|
"$[0][1].params[0].params[0]",
|
||
|
|
"$[0][1].params[1].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"locate_xy",
|
||
|
|
"-90",
|
||
|
|
"-40"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/렌치/[시작]의 세부 동작 1/x: '-90' y: '-40' 위치로 이동하기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[0][2].type",
|
||
|
|
"$[0][2].params[0].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"rotate_absolute",
|
||
|
|
"180"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/렌치/[시작]의 세부 동작 2/방향을 '180°' 로 정하기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[0][3].type",
|
||
|
|
"$[0][3].params[0].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"set_scale_size",
|
||
|
|
"110"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/렌치/[시작]의 세부 동작 3/크기를 '110' 으로 정하기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[1][0].type",
|
||
|
|
"answer": "when_object_click",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/렌치/오브젝트/오브젝트를 클릭했을 때"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[1][1].type",
|
||
|
|
"$[1][1].params[0].params[0]",
|
||
|
|
"$[1][1].params[1].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"locate_xy",
|
||
|
|
"25",
|
||
|
|
"10"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/렌치/[오브젝트]의 세부 동작 1/x: '25' y: '10' 위치로 이동하기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[1][2].type",
|
||
|
|
"$[1][2].params[0].type",
|
||
|
|
"$[1][2].params[0].params[0].type",
|
||
|
|
"$[1][2].params[0].params[1]",
|
||
|
|
"$[1][2].params[0].params[2].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"if_else",
|
||
|
|
"boolean_basic_operator",
|
||
|
|
"get_variable",
|
||
|
|
"EQUAL",
|
||
|
|
"나사 조임"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/렌치/만일 / 아니면/만일 '고장 원인 값' = '나사 조임' 이라면",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[1][2].statements[0][0].params[*].params",
|
||
|
|
"answer": [
|
||
|
|
"로봇이 수리되었습니다.",
|
||
|
|
"1"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/렌치/[만일]의 세부 동작 1/'로봇이 수리되었습니다.' 를 '1' 초 동안 '말하기'"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[1][2].statements[0][1].type",
|
||
|
|
"answer": "message_cast",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/렌치/[만일]의 세부 동작 2/'수리 완료' 신호 보내기"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[1][2].statements[1][0].params[*].params",
|
||
|
|
"answer": [
|
||
|
|
"고장 원인을 다시 확인하세요.",
|
||
|
|
"2"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/렌치/[아니면]의 세부 동작/'고장 원인을 다시 확인하세요.' 를 '2' 초 동안 '말하기'"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[1][3].type",
|
||
|
|
"$[1][3].params[0].params[0]",
|
||
|
|
"$[1][3].params[1].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"locate_xy",
|
||
|
|
"-90",
|
||
|
|
"-40"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/렌치/[오브젝트]의 세부 동작 2/x: '-90' y: '-40' 위치로 이동하기",
|
||
|
|
"type": "list"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"sortBlock": [
|
||
|
|
"when_run_button_click",
|
||
|
|
"when_object_click"
|
||
|
|
],
|
||
|
|
"sort": 105
|
||
|
|
},
|
||
|
|
"14-0": {
|
||
|
|
"ele": "$..variables[?(@.name=='수리된 로봇')]",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇/변수/'수리된 로봇' 변수 만들기 (변수 기본값은 '0', '모든 오브젝트에 사용' 설정하기)",
|
||
|
|
"type": "scene",
|
||
|
|
"sort": 114
|
||
|
|
},
|
||
|
|
"15-0": {
|
||
|
|
"ele": "$.messages[?(@.name=='로봇 이동')]",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇/신호/'로봇 이동' 신호 만들기",
|
||
|
|
"type": "scene",
|
||
|
|
"sort": 115
|
||
|
|
},
|
||
|
|
"4-0": {
|
||
|
|
"type": "script",
|
||
|
|
"ele": "$.objects[?(@.name=='로봇')].script",
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"ele": "$[0][0].type",
|
||
|
|
"answer": "when_run_button_click",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇/시작/시작하기 버튼을 클릭했을 때"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[0][1].type",
|
||
|
|
"$[0][1].params[0].params[0]",
|
||
|
|
"$[0][1].params[1].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"locate_xy",
|
||
|
|
"95",
|
||
|
|
"-30"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇/[시작]의 세부 동작 1/x: '95' y: '-30' 위치로 이동하기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[0][2].type",
|
||
|
|
"$[0][2].params[0].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"set_scale_size",
|
||
|
|
"120"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇/[시작]의 세부 동작 2/크기를 '120' 으로 정하기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[1][0].type",
|
||
|
|
"answer": "when_message_cast",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇/수리 완료/'수리 완료' 신호를 받았을 때"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[1][2].params[*].params",
|
||
|
|
"answer": [
|
||
|
|
"수리되었습니다.",
|
||
|
|
"1"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇/[수리 완료]의 세부 동작 2/'수리되었습니다.' 를 '1' 초 동안 '말하기'"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[1][1].type",
|
||
|
|
"$[1][1].params[1].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"change_variable",
|
||
|
|
"1"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇/[수리 완료]의 세부 동작 1/'수리된 로봇'에 '1' 만큼 더하기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[1][3].type",
|
||
|
|
"$[1][3].params[0].type",
|
||
|
|
"$[1][3].params[0].params[0].type",
|
||
|
|
"$[1][3].params[0].params[1]",
|
||
|
|
"$[1][3].params[0].params[2].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"_if",
|
||
|
|
"boolean_basic_operator",
|
||
|
|
"get_variable",
|
||
|
|
"EQUAL",
|
||
|
|
"2"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇/만일/만일 '수리된 로봇 값' = '2' 이라면",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[1][3].statements[0][0].type",
|
||
|
|
"$[1][3].statements[0][0].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"set_visible_answer",
|
||
|
|
"HIDE"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇/[만일]의 세부 동작 1/대답 '숨기기'",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[1][3].statements[0][1].params[*].params",
|
||
|
|
"answer": [
|
||
|
|
"모두 수리했습니다.",
|
||
|
|
"1"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇/[만일]의 세부 동작 2/'모두 수리했습니다.' 를 '1' 초 동안 '말하기'"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[1][3].statements[0][2].type",
|
||
|
|
"answer": "start_scene",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇/[만일]의 세부 동작 3/ '장면2' 시작하기"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[1][4].type",
|
||
|
|
"answer": "message_cast",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇/[수리 완료]의 세부 동작 3/'로봇 이동' 신호 보내기"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[2][0].type",
|
||
|
|
"answer": "when_message_cast",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇/로봇 이동/'로봇 이동' 신호를 받았을 때"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[2][1].type",
|
||
|
|
"$[2][1].params[0].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"move_x",
|
||
|
|
"120"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇/[로봇 이동]의 세부 동작 1/x 좌표를 '120' 만큼 바꾸기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[2][2].type",
|
||
|
|
"answer": "hide",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇/[로봇 이동]의 세부 동작 2/모양 숨기기"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[2][3].type",
|
||
|
|
"$[2][3].params[0].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"wait_second",
|
||
|
|
"0.2"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇/[로봇 이동]의 세부 동작 3/'0.2' 초 기다리기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[2][4].type",
|
||
|
|
"$[2][4].params[0].params[0]",
|
||
|
|
"$[2][4].params[1].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"locate_xy",
|
||
|
|
"95",
|
||
|
|
"-30"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇/[로봇 이동]의 세부 동작 4/x: '95' y: '-30' 위치로 이동하기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[2][5].type",
|
||
|
|
"$[2][5].params[0].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"wait_second",
|
||
|
|
"0.2"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇/[로봇 이동]의 세부 동작 5/'0.2' 초 기다리기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[2][6].type",
|
||
|
|
"answer": "show",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇/[로봇 이동]의 세부 동작 6/모양 보이기"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"sortBlock": [
|
||
|
|
"when_run_button_click",
|
||
|
|
"when_message_cast",
|
||
|
|
"when_message_cast"
|
||
|
|
],
|
||
|
|
"sort": 115
|
||
|
|
},
|
||
|
|
|
||
|
|
"5-0": {
|
||
|
|
"type": "script",
|
||
|
|
"ele": "$..objects[?(@.name=~'^(망치|뿅망치)$')].script",
|
||
|
|
"ele_tmp": "$.objects[?(@.name=~'망치')].script",
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"ele": "$[0][0].type",
|
||
|
|
"answer": "when_run_button_click",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/망치/시작/시작하기 버튼을 클릭했을 때"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[0][1].type",
|
||
|
|
"$[0][1].params[0].params[0]",
|
||
|
|
"$[0][1].params[1].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"locate_xy",
|
||
|
|
"180",
|
||
|
|
"10"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/망치/[시작]의 세부 동작/x: '180' y: '10' 위치로 이동하기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[1][0].type",
|
||
|
|
"answer": "when_object_click",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/망치/오브젝트/오브젝트를 클릭했을 때"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[1][1].type",
|
||
|
|
"$[1][1].params[0].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"rotate_absolute",
|
||
|
|
"320"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/망치/[오브젝트]의 세부 동작 1/방향을 '320°' 로 정하기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[1][2].params[*].params",
|
||
|
|
"answer": [
|
||
|
|
"더 고장났어요!",
|
||
|
|
"2"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/망치/[오브젝트]의 세부 동작 2/'더 고장났어요!' 를 '2' 초 동안 '말하기'"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[1][3].type",
|
||
|
|
"$[1][3].params[0].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"rotate_absolute",
|
||
|
|
"0"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/망치/[오브젝트]의 세부 동작 3/방향을 '0°' 로 정하기",
|
||
|
|
"type": "list"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"sortBlock": [
|
||
|
|
"when_run_button_click",
|
||
|
|
"when_object_click"
|
||
|
|
],
|
||
|
|
"sort": 135
|
||
|
|
},
|
||
|
|
"6-0": {
|
||
|
|
"type": "script",
|
||
|
|
"ele": "$..objects[?(@.name=~'^(로봇 팔|단소)$')].script",
|
||
|
|
"ele_tmp": "$.objects[?(@.name=~'로봇 팔')].script",
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"ele": "$[0][0].type",
|
||
|
|
"answer": "when_run_button_click",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇 팔/시작/시작하기 버튼을 클릭했을 때"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[0][1].type",
|
||
|
|
"$[0][1].params[0].params[0]",
|
||
|
|
"$[0][1].params[1].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"locate_xy",
|
||
|
|
"10",
|
||
|
|
"15"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇 팔/[시작]의 세부 동작 1/x: '10' y: '15' 위치로 이동하기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[0][2].type",
|
||
|
|
"$[0][2].params[0].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"rotate_absolute",
|
||
|
|
"180"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇 팔/[시작]의 세부 동작 2/방향을 '180°' 로 정하기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[0][3].type",
|
||
|
|
"$[0][3].params[0].params[0].params[3]",
|
||
|
|
"$[0][3].params[0].params[1]",
|
||
|
|
"$[0][3].params[0].params[2].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"repeat_while_true",
|
||
|
|
null,
|
||
|
|
"EQUAL",
|
||
|
|
"2"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇 팔/반복/'수리된 로봇 값' = '2' 이 될 때까지' 반복하기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[0][3].statements[0][0].type",
|
||
|
|
"$[0][3].statements[0][0].params[0].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"wait_second",
|
||
|
|
"1"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇 팔/[반복]의 세부 동작 1/1' 초 기다리기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[0][3].statements[0][1].type",
|
||
|
|
"$[0][3].statements[0][1].params[0].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"ask_and_wait",
|
||
|
|
"어디가 고장났나요?"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇 팔/[반복]의 세부 동작 2/'어디가 고장났나요?' 를 묻고 대답 기다리기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[0][3].statements[0][2].type",
|
||
|
|
"$[0][3].statements[0][2].params[0].type",
|
||
|
|
"$[0][3].statements[0][2].params[0].params[0].type",
|
||
|
|
"$[0][3].statements[0][2].params[0].params[0].params[1]",
|
||
|
|
"$[0][3].statements[0][2].params[0].params[0].params[2].params[0]",
|
||
|
|
"$[0][3].statements[0][2].params[0].params[1]",
|
||
|
|
"$[0][3].statements[0][2].params[0].params[2].type",
|
||
|
|
"$[0][3].statements[0][2].params[0].params[2].params[1]",
|
||
|
|
"$[0][3].statements[0][2].params[0].params[2].params[2].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"if_else",
|
||
|
|
"boolean_and_or",
|
||
|
|
"boolean_basic_operator",
|
||
|
|
"EQUAL",
|
||
|
|
"나사 조임",
|
||
|
|
"OR",
|
||
|
|
"boolean_basic_operator",
|
||
|
|
"EQUAL",
|
||
|
|
"부품 고장"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇 팔/만일 / 아니면/만일 '대답' = '나사 조임' 또는 '대답' = '부품 고장' 이라면",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[0][3].statements[0][2].statements[0][0].type",
|
||
|
|
"$[0][3].statements[0][2].statements[0][0].params[1].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"set_variable",
|
||
|
|
null
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇 팔/[만일]의 세부 동작 1/'고장 원인' 을 '대답' 으로 정하기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[0][3].statements[0][2].statements[0][1].params[*].params",
|
||
|
|
"answer": [
|
||
|
|
"도구를 선택하세요.",
|
||
|
|
"2"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇 팔/[만일]의 세부 동작 2/'도구를 선택하세요' 를 '2' 초 동안 '말하기'"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[0][3].statements[0][2].statements[1][0].params[*].params",
|
||
|
|
"answer": [
|
||
|
|
"나사 조임, 부품 고장 중 무엇입니까?",
|
||
|
|
"2"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇 팔/[아니면]의 세부 동작 1/'나사 조임, 부품 고장 중 무엇입니까?' 를 '2' 초 동안 말하기"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[0][3].statements[0][3].type",
|
||
|
|
"$[0][3].statements[0][3].params[0].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"wait_second",
|
||
|
|
"2"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇 팔/[아니면]의 세부 동작 2/'2' 초 기다리기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[1][0].type",
|
||
|
|
"answer": "when_object_click",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇 팔/오브젝트/오브젝트를 클릭했을 때"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[1][1].type",
|
||
|
|
"$[1][1].params[0].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"rotate_absolute",
|
||
|
|
"130"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇 팔/[오브젝트]의 세부 동작 1/방향을 '130°' 로 정하기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[1][2].type",
|
||
|
|
"$[1][2].params[0].type",
|
||
|
|
"$[1][2].params[0].params[0].type",
|
||
|
|
"$[1][2].params[0].params[1]",
|
||
|
|
"$[1][2].params[0].params[2].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"if_else",
|
||
|
|
"boolean_basic_operator",
|
||
|
|
"get_variable",
|
||
|
|
"EQUAL",
|
||
|
|
"부품 고장"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇 팔/만일 / 아니면/만일 '고장 원인' 값 = '부품 고장' 이라면",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[1][2].statements[0][0].params[*].params",
|
||
|
|
"answer": [
|
||
|
|
"로봇이 수리되었습니다.",
|
||
|
|
"1"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇 팔/[만일]의 세부 동작 1/'로봇이 수리되었습니다.' 를 '1' 초 동안 '말하기'"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[1][2].statements[0][1].type",
|
||
|
|
"answer": "message_cast",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇 팔/[만일]의 세부 동작 2/'수리 완료' 신호 보내기"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[1][2].statements[1][0].params[*].params",
|
||
|
|
"answer": [
|
||
|
|
"고장 원인을 확인하세요.",
|
||
|
|
"2"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇 팔/[아니면]의 세부 동작/'고장 원인을 다시 확인하세요' 를 '2' 초 동안 '말하기'"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[1][3].type",
|
||
|
|
"$[1][3].params[0].params[0]",
|
||
|
|
"$[1][3].params[1].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"locate_xy",
|
||
|
|
"10",
|
||
|
|
"15"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇 팔/[오브젝트]의 세부 동작 2/x: '10' y: '15' 위치로 이동하기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[1][4].type",
|
||
|
|
"$[1][4].params[0].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"rotate_absolute",
|
||
|
|
"180"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇 팔/[오브젝트]의 세부 동작 3/방향을 '180°' 로 정하기",
|
||
|
|
"type": "list"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"sortBlock": [
|
||
|
|
"when_run_button_click",
|
||
|
|
"when_object_click"
|
||
|
|
],
|
||
|
|
"sort": 141
|
||
|
|
},
|
||
|
|
"7-0": {
|
||
|
|
"type": "script",
|
||
|
|
"ele": "$.objects[?(@.name=~'로봇방|장면 ')].script",
|
||
|
|
"blocks": [
|
||
|
|
{
|
||
|
|
"ele": "$[0][0].type",
|
||
|
|
"answer": "when_scene_start",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇방/장면 2/장면이 시작되었을 때"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[0][1].type",
|
||
|
|
"answer": "hide_variable",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇방/[장면 2]의 세부 동작 1/변수 '고장 원인' 숨기기"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[0][2].type",
|
||
|
|
"answer": "hide_variable",
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇방/[장면 2]의 세부 동작 2/변수 '수리된 로봇' 숨기기"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[0][3].type",
|
||
|
|
"$[0][3].params[0].params[0]",
|
||
|
|
"$[0][3].params[1]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"dialog",
|
||
|
|
"모든 로봇 수리 완료!",
|
||
|
|
"speak"
|
||
|
|
],
|
||
|
|
"point": 1.29,
|
||
|
|
"desc": "문제 2/로봇방/[장면 2]의 세부 동작 3/'모든 로봇 수리 완료!' 를 '말하기'",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[1][0].type",
|
||
|
|
"answer": "when_object_click",
|
||
|
|
"point": 2,
|
||
|
|
"desc": "문제 3/로봇방/오브젝트/오브젝트를 클릭했을 때"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[1][1].type",
|
||
|
|
"$[1][1].params[0]",
|
||
|
|
"$[1][1].params[1].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"add_effect_amount",
|
||
|
|
"color",
|
||
|
|
"45"
|
||
|
|
],
|
||
|
|
"point": 2,
|
||
|
|
"desc": "문제 3/로봇방/[오브젝트]의 세부 동작 1/'색깔' 효과를 '45' 만큼 주기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[1][2].type",
|
||
|
|
"$[1][2].params[0].params[0]",
|
||
|
|
"$[1][2].params[1]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"dialog",
|
||
|
|
"처음부터 다시 실행합니다.",
|
||
|
|
"speak"
|
||
|
|
],
|
||
|
|
"point": 2,
|
||
|
|
"desc": "문제 3/로봇방/[오브젝트]의 세부 동작 2/'처음부터 다시 실행합니다.' 를 '말하기'",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": [
|
||
|
|
"$[1][3].type",
|
||
|
|
"$[1][3].params[0].params[0]"
|
||
|
|
],
|
||
|
|
"answer": [
|
||
|
|
"wait_second",
|
||
|
|
"2"
|
||
|
|
],
|
||
|
|
"point": 2,
|
||
|
|
"desc": "문제 3/로봇방/[오브젝트]의 세부 동작 3/'2' 초 기다리기",
|
||
|
|
"type": "list"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"ele": "$[1][4].type",
|
||
|
|
"answer": "restart_project",
|
||
|
|
"point": 2,
|
||
|
|
"desc": "문제 3/로봇방/[오브젝트]의 세부 동작 4/처음부터 다시 실행하기"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"sortBlock": [
|
||
|
|
"when_scene_start",
|
||
|
|
"when_object_click"
|
||
|
|
],
|
||
|
|
"sort": 160
|
||
|
|
}
|
||
|
|
}
|