{ "1-1": { "type": "scene", "ele": "$..objects[?(@.name=='체육관')]", "points": 1.7, "desc": "문제 1/장면 1/[배경] 이름 설정 1/이름을 '체육관'으로 변경하기", "sort": 11 }, "1-2": { "type": "scene", "ele": "$..objects[?(@.name=='복도')]", "points": 1.7, "desc": "문제 1/장면 2/[배경] 이름 설정 2/이름을 '복도'로 변경하기", "sort": 12 }, "1-3": { "type": "scene", "ele": "$..objects[?(@.name=='곰인형')]", "points": 1.6, "desc": "문제 1/곰인형/[개체] 이름 설정 1/이름 변경 없음", "sort": 13 }, "1-4": { "type": "scene", "ele": "$..objects[?(@.name=='풍선')]", "points": 1.6, "desc": "문제 1/풍선/[개체] 이름 설정 2/이름 변경 없음", "sort": 14 }, "1-5": { "type": "scene", "ele": "$..objects[?(@.name=='다트 날개')]", "points": 1.7, "desc": "문제 1/빛나는 효과/[개체] 이름 설정 3/이름을 '다트 날개'로 변경하기", "sort": 15 }, "1-6": { "type": "scene", "ele": "$..objects[?(@.name=='다트')]", "points": 1.7, "desc": "문제 1/룰렛 화살표/[개체] 이름 설정 4/이름을 '다트'로 변경하기", "sort": 16 }, "1-0": { "ele": "$..variables[?(@.name=='다트 개수')]", "points": 1.29, "desc": "문제 2/곰인형/변수 1/'다트 개수' 변수 만들기 (변수 기본값은 '0', '모든 오브젝트에 사용' 설정하기)", "type": "scene", "sort": 101 }, "2-0": { "ele": "$..variables[?(@.name=='점수')]", "points": 1.29, "desc": "문제 2/곰인형/변수 2/'점수' 변수 만들기 (변수 기본값은 '0', '모든 오브젝트에 사용' 설정하기)", "type": "scene", "sort": 102 }, "3-0": { "type": "script", "ele": "$.objects[?(@.name=~'곰인형')].script", "blocks": [ { "ele": "$[0][0].type", "answer": "when_run_button_click", "points": 1.29, "desc": "문제 2/곰인형/시작/시작하기 버튼을 클릭했을 때" }, { "ele": [ "$[0][1].type", "$[0][1].params[0].params[0]", "$[0][1].params[1].params[0]" ], "answer": [ "locate_xy", "180", "-70" ], "points": 1.29, "desc": "문제 2/곰인형/[시작]의 세부 동작 1/x: '180' y: '-70' 위치로 이동하기", "type": "list" }, { "ele": "$[0][2].params[0].params[0]", "answer": "25", "points": 1.29, "desc": "문제 2/곰인형/[시작]의 세부 동작 2/크기를 '25' 로 정하기" }, { "ele": "$[0][3].type", "answer": "hide", "points": 1.29, "desc": "문제 2/곰인형/[시작]의 세부 동작 3/모양 숨기기" }, { "ele": [ "$[0][4].type", "$[0][4].params[0].params[0]" ], "answer": [ "repeat_basic", "3" ], "points": 1.29, "desc": "문제 2/곰인형/반복/'3' 번 반복하기", "type": "list" }, { "ele": [ "$[0][4].statements[0][0].type", "$[0][4].statements[0][0].params[0]" ], "answer": [ "create_clone", "self" ], "points": 1.29, "desc": "문제 2/곰인형/[반복]의 세부 동작 1/'자신' 의 복제본 만들기", "type": "list" }, { "ele": [ "$[0][4].statements[0][1].type", "$[0][4].statements[0][1].params[0].params[0]" ], "answer": [ "move_y", "70" ], "points": 1.29, "desc": "문제 2/곰인형/[반복]의 세부 동작 2/y 좌표를 '70' 만큼 바꾸기", "type": "list" }, { "ele": "$[1][0].type", "answer": "when_clone_start", "points": 1.29, "desc": "문제 2/곰인형/복제본/복제본이 처음 생성되었을 때" }, { "ele": "$[1][1].type", "answer": "show", "points": 1.29, "desc": "문제 2/곰인형/[복제본]의 세부 동작/모양 보이기" }, { "ele": [ "$[1][2].type", "$[1][2].params[0]" ], "answer": [ "repeat_inf", null ], "points": 1.29, "desc": "문제 2/곰인형/반복/계속 반복하기", "type": "list" }, { "ele": [ "$[1][2].statements[0][0].type", "$[1][2].statements[0][0].params[0].type" ], "answer": [ "_if", "reach_something" ], "points": 1.29, "desc": "문제 2/곰인형/만일/만일 '다트'에 닿았는가? 라면", "type": "list" }, { "ele": [ "$[1][2].statements[0][0].statements[0][0].type", "$[1][2].statements[0][0].statements[0][0].params[1].params[0]" ], "answer": [ "change_variable", "-5" ], "points": 1.29, "desc": "문제 2/곰인형/[만일]의 세부 동작 1/'점수' 에 '-5' 만큼 더하기", "type": "list" }, { "ele": "$[1][2].statements[0][0].statements[0][1].type", "answer": "delete_clone", "points": 1.29, "desc": "문제 2/곰인형/[만일]의 세부 동작 2/이 복제본 삭제하기" } ], "sort": 105 }, "4-0": { "type": "script", "ele": "$.objects[?(@.name=~'풍선')].script", "blocks": [ { "ele": "$[0][0].type", "answer": "when_run_button_click", "points": 1.29, "desc": "문제 2/풍선/시작/시작하기 버튼을 클릭했을 때" }, { "ele": [ "$[0][1].type", "$[0][1].params[0].params[0]", "$[0][1].params[1].params[0]" ], "answer": [ "locate_xy", "130", "-100" ], "points": 1.29, "desc": "문제 2/풍선/[시작]의 세부 동작 1/x: '130' y: '-100' 위치로 이동하기", "type": "list" }, { "ele": "$[0][2].params[0].params[0]", "answer": "30", "points": 1.29, "desc": "문제 2/풍선/[시작]의 세부 동작 2/크기를 '30' 으로 정하기" }, { "ele": "$[0][3].type", "answer": "hide", "points": 1.29, "desc": "문제 2/풍선/[시작]의 세부 동작 3/모양 숨기기" }, { "ele": [ "$[0][4].type", "$[0][4].params[0].params[0]" ], "answer": [ "repeat_basic", "6" ], "points": 1.29, "desc": "문제 2/풍선/반복/'6' 번 반복하기", "type": "list" }, { "ele": [ "$[0][4].statements[0][0].type", "$[0][4].statements[0][0].params[0]" ], "answer": [ "create_clone", "self" ], "points": 1.29, "desc": "문제 2/풍선/[반복]의 세부 동작 1/'자신' 의 복제본 만들기", "type": "list" }, { "ele": [ "$[0][4].statements[0][1].type", "$[0][4].statements[0][1].params[0].params[0]" ], "answer": [ "move_y", "40" ], "points": 1.29, "desc": "문제 2/풍선/[반복]의 세부 동작 2/y 좌표를 '40' 만큼 바꾸기", "type": "list" }, { "ele": "$[1][0].type", "answer": "when_clone_start", "points": 1.29, "desc": "문제 2/풍선/복제본/복제본이 처음 생성되었을 때" }, { "ele": "$[1][1].type", "answer": "show", "points": 1.29, "desc": "문제 2/풍선/[복제본]의 세부 동작/모양 보이기" }, { "ele": [ "$[1][2].type", "$[1][2].params[0]" ], "answer": [ "repeat_inf", null ], "points": 1.29, "desc": "문제 2/풍선/반복/계속 반복하기", "type": "list" }, { "ele": [ "$[1][2].statements[0][0].type", "$[1][2].statements[0][0].params[0].type" ], "answer": [ "_if", "reach_something" ], "points": 1.29, "desc": "문제 2/풍선/만일/만일 '다트' 에 닿았는가? 라면", "type": "list" }, { "ele": [ "$[1][2].statements[0][0].statements[0][0].type", "$[1][2].statements[0][0].statements[0][0].params[0].type" ], "answer": [ "change_to_some_shape", "get_pictures" ], "points": 1.29, "desc": "문제 2/풍선/[만일]의 세부 동작 1/'풍선_터짐' 모양으로 바꾸기", "type": "list" }, { "ele": [ "$[1][2].statements[0][0].statements[0][1].type", "$[1][2].statements[0][0].statements[0][1].params[0].params[0]" ], "answer": [ "wait_second", "0.5" ], "points": 1.29, "desc": "문제 2/풍선/[만일]의 세부 동작 2/'0.5' 초 기다리기", "type": "list" }, { "ele": [ "$[1][2].statements[0][0].statements[0][2].type", "$[1][2].statements[0][0].statements[0][2].params[1].params[0]" ], "answer": [ "change_variable", "10" ], "points": 1.29, "desc": "문제 2/풍선/[만일]의 세부 동작 3/'점수' 에 '10' 만큼 더하기", "type": "list" }, { "ele": "$[1][2].statements[0][0].statements[0][3].type", "answer": "delete_clone", "points": 1.29, "desc": "문제 2/풍선/[만일]의 세부 동작 4/이 복제본 삭제하기" } ], "sort": 117 }, "5-0": { "type": "script", "ele": "$.objects[?(@.name=~'다트 날개|빛나는 효')].script", "blocks": [ { "ele": "$[0][0].type", "answer": "when_run_button_click", "points": 1.29, "desc": "문제 2/다트 날개/시작/시작하기 버튼을 클릭했을 때" }, { "ele": "$[0][1].params[0].params[0]", "answer": "50", "points": 1.29, "desc": "문제 2/다트 날개/[시작]의 세부 동작/크기를 '50' 으로 정하기" }, { "ele": [ "$[0][2].type", "$[0][2].params[0]" ], "answer": [ "repeat_inf", null ], "points": 1.29, "desc": "문제 2/다트 날개/반복/계속 반복하기", "type": "list" }, { "ele": "$[0][2].statements[0][0].type", "answer": "locate", "points": 1.29, "desc": "문제 2/다트 날개/[반복]의 세부 동작 1/'다트' 위치로 이동하기" }, { "ele": [ "$[0][2].statements[0][1].type", "$[0][2].statements[0][1].params[0].params[0]" ], "answer": [ "move_x", "-20" ], "points": 1.29, "desc": "문제 2/다트 날개/[반복]의 세부 동작 2/x 좌표를 '-20' 만큼 바꾸기", "type": "list" } ], "sort": 132 }, "6-0": { "type": "script", "ele": "$.objects[?(@.name=~'다트|룰렛 화살')].script", "blocks": [ { "ele": "$[0][0].type", "answer": "when_run_button_click", "points": 1.29, "desc": "문제 2/다트/시작/시작하기 버튼을 클릭했을 때" }, { "ele": [ "$[0][1].type", "$[0][1].params[1].params[0]" ], "answer": [ "set_variable", "10" ], "points": 1.29, "desc": "문제 2/다트/[시작]의 세부 동작 1/'다트 개수' 를 '10' 으로 정하기", "type": "list" }, { "ele": [ "$[0][2].type", "$[0][2].params[0].params[0]", "$[0][2].params[1].params[0]" ], "answer": [ "locate_xy", "-180", "-20" ], "points": 1.29, "desc": "문제 2/다트/[시작]의 세부 동작 2/x: '-180' y: '-20' 위치로 이동하기", "type": "list" }, { "ele": [ "$[0][3].type", "$[0][3].params[0].params[0]" ], "answer": [ "rotate_absolute", "90" ], "points": 1.29, "desc": "문제 2/다트/[시작]의 세부 동작 3/방향을 '90°' 로 정하기", "type": "list" }, { "ele": "$[0][4].params[0].params[0]", "answer": "40", "points": 1.29, "desc": "문제 2/다트/[시작]의 세부 동작 4/크기를 '40' 으로 정하기" }, { "ele": [ "$[0][5].type", "$[0][5].params[0]" ], "answer": [ "repeat_inf", null ], "points": 1.29, "desc": "문제 2/다트/반복/계속 반복하기", "type": "list" }, { "ele": [ "$[0][5].statements[0][0].type", "$[0][5].statements[0][0].params[0].type", "$[0][5].statements[0][0].params[0].params[0]" ], "answer": [ "_if", "is_press_some_key", "38" ], "points": 1.29, "desc": "문제 2/다트/만일 1/만일 '위쪽 화살표' 키가 눌러져 있는가? 라면", "type": "list" }, { "ele": [ "$[0][5].statements[0][0].statements[0][0].type", "$[0][5].statements[0][0].statements[0][0].params[0].params[0]" ], "answer": [ "move_y", "3" ], "points": 1.29, "desc": "문제 2/다트/[만일 1]의 세부 동작/y 좌표를 '3' 만큼 바꾸기", "type": "list" }, { "ele": [ "$[0][5].statements[0][1].type", "$[0][5].statements[0][1].params[0].type", "$[0][5].statements[0][1].params[0].params[0]" ], "answer": [ "_if", "is_press_some_key", "40" ], "points": 1.29, "desc": "문제 2/다트/만일 2/만일 '아래쪽 화살표' 키가 눌러져 있는가? 라면", "type": "list" }, { "ele": [ "$[0][5].statements[0][1].statements[0][0].type", "$[0][5].statements[0][1].statements[0][0].params[0].params[0]" ], "answer": [ "move_y", "-3" ], "points": 1.29, "desc": "문제 2/다트/[만일 2]의 세부 동작/y 좌표를 '-3' 만큼 바꾸기", "type": "list" }, { "ele": "$[1][0].params", "answer": [ null, "32" ], "points": 1.29, "desc": "문제 2/다트/스페이스/'스페이스' 키를 눌렀을 때" }, { "ele": [ "$[1][1].type", "$[1][1].params[0].type", "$[1][1].params[0].params[0].type", "$[1][1].params[0].params[1]", "$[1][1].params[0].params[2].params[0]" ], "answer": [ "if_else", "boolean_basic_operator", "get_variable", "GREATER_OR_EQUAL", "50" ], "points": 1.29, "desc": "문제 2/다트/만일/만일 '점수' 값 ≥ '50' 이라면", "type": "list" }, { "ele": [ "$[1][1].statements[0][0].type", "$[1][1].statements[0][0].params[0]" ], "answer": [ "stop_object", "all" ], "points": 1.29, "desc": "문제 2/다트/[만일]의 세부 동작/'모든' 코드 멈추기", "type": "list" }, { "ele": [ "$[1][1].statements[1][0].type", "$[1][1].statements[1][0].params[0].params[0]", "$[1][1].statements[1][0].params[1].params[0]", "$[1][1].statements[1][0].params[2].params[0]" ], "answer": [ "locate_xy_time", "1", "330", null ], "points": 1.29, "desc": "문제 2/다트/[아니면]의 세부 동작 1/'1' 초 동안 x: '330' y: '자신의 y 좌푯값' 위치로 이동하기", "type": "list" }, { "ele": [ "$[1][1].statements[1][1].type", "$[1][1].statements[1][1].params[0].params[0]", "$[1][1].statements[1][1].params[1].params[0]" ], "answer": [ "locate_xy", "-180", "-20" ], "points": 1.29, "desc": "문제 2/다트/[아니면]의 세부 동작 2/x: '-180' y: '-20' 위치로 이동하기", "type": "list" }, { "ele": [ "$[1][1].statements[1][2].type", "$[1][1].statements[1][2].params[1].params[0]" ], "answer": [ "change_variable", "-1" ], "points": 1.29, "desc": "문제 2/다트/[아니면]의 세부 동작 3/'다트 개수' 에 '-1' 만큼 더하기", "type": "list" }, { "ele": [ "$[1][1].statements[1][3].type", "$[1][1].statements[1][3].params[0].params[0]" ], "answer": [ "wait_second", "0.1" ], "points": 1.29, "desc": "문제 2/다트/[아니면]의 세부 동작 4/'0.1' 초 기다리기", "type": "list" }, { "ele": [ "$[1][1].statements[1][4].type", "$[1][1].statements[1][4].params[0]" ], "answer": [ "repeat_inf", null ], "points": 1.29, "desc": "문제 2/다트/반복/계속 반복하기", "type": "list" }, { "ele": [ "$[1][1].statements[1][4].statements[0][0].type", "$[1][1].statements[1][4].statements[0][0].params[0].type", "$[1][1].statements[1][4].statements[0][0].params[0].params[0].params[0].type", "$[1][1].statements[1][4].statements[0][0].params[0].params[0].params[1]", "$[1][1].statements[1][4].statements[0][0].params[0].params[0].params[2].params[0]", "$[1][1].statements[1][4].statements[0][0].params[0].params[1]", "$[1][1].statements[1][4].statements[0][0].params[0].params[2].type", "$[1][1].statements[1][4].statements[0][0].params[0].params[2].params[0].type", "$[1][1].statements[1][4].statements[0][0].params[0].params[2].params[1]", "$[1][1].statements[1][4].statements[0][0].params[0].params[2].params[2].params[0]" ], "answer": [ "_if", "boolean_and_or", "get_variable", "EQUAL", "0", "AND", "boolean_basic_operator", "get_variable", "LESS", "50" ], "points": 1.31, "desc": "문제 2/다트/만일 1/만일 '다트 개수' 값 = '0' '그리고' '점수 값' < '50' 이라면", "type": "list" }, { "ele": "$[1][1].statements[1][4].statements[0][0].statements[0][0].type", "answer": "start_neighbor_scene", "points": 1.29, "desc": "문제 2/다트/[만일 1]의 세부 동작/'다음' 장면 시작하기" }, { "ele": [ "$[1][1].statements[1][4].statements[0][1].type", "$[1][1].statements[1][4].statements[0][1].params[0].type", "$[1][1].statements[1][4].statements[0][1].params[0].params[0].type", "$[1][1].statements[1][4].statements[0][1].params[0].params[1]", "$[1][1].statements[1][4].statements[0][1].params[0].params[2].params[0]" ], "answer": [ "_if", "boolean_basic_operator", "get_variable", "GREATER_OR_EQUAL", "50" ], "points": 1.29, "desc": "문제 2/다트/만일 2/만일 '점수' 값 ≥ '50' 이라면", "type": "list" }, { "ele": [ "$[1][1].statements[1][4].statements[0][1].statements[0][0].type", "$[1][1].statements[1][4].statements[0][1].statements[0][0].params[0].params[0]", "$[1][1].statements[1][4].statements[0][1].statements[0][0].params[1]" ], "answer": [ "dialog", "미션 성공!", "speak" ], "points": 1.29, "desc": "문제 2/다트/[만일 2]의 세부 동작 1/'미션 성공!' 을 '말하기'", "type": "list" }, { "ele": [ "$[1][1].statements[1][4].statements[0][1].statements[0][1].type", "$[1][1].statements[1][4].statements[0][1].statements[0][1].params[0]" ], "answer": [ "stop_object", "all" ], "points": 1.29, "desc": "문제 2/다트/[만일 2]의 세부 동작 2/'모든' 코드 멈추기", "type": "list" } ], "sort": 137 }, "7-0": { "type": "script", "ele": "$.objects[?(@.name=~'복도|장면 ')].script", "blocks": [ { "ele": "$[0][0].type", "answer": "when_scene_start", "points": 1.29, "desc": "문제 2/복도/장면/장면이 시작되었을 때" }, { "ele": "$[0][1].type", "answer": "hide_variable", "points": 1.29, "desc": "문제 2/복도/[장면 2]의 세부 동작 1/변수 '다트 개수' 숨기기" }, { "ele": "$[0][2].type", "answer": "hide_variable", "points": 1.29, "desc": "문제 2/복도/[장면 2]의 세부 동작 2/변수 '점수' 숨기기" }, { "ele": [ "$[0][3].type", "$[0][3].params[0].params[0]", "$[0][3].params[1]" ], "answer": [ "dialog", "미션 실패!", "speak" ], "points": 1.29, "desc": "문제 2/복도/[장면 2]의 세부 동작 3/'미션 실패!' 를 '말하기'", "type": "list" }, { "ele": "$[1][0].type", "answer": "when_object_click", "points": 2, "desc": "문제 3/복도/오브젝트/오브젝트를 클릭했을 때" }, { "ele": [ "$[1][1].type", "$[1][1].params[0]", "$[1][1].params[1].params[0]" ], "answer": [ "add_effect_amount", "color", "60" ], "points": 2, "desc": "문제 3/복도/[오브젝트]의 세부 동작 1/'색깔' 효과를 '60' 만큼 주기", "type": "list" }, { "ele": [ "$[1][2].type", "$[1][2].params[0].params[0]", "$[1][2].params[1]" ], "answer": [ "dialog", "처음부터 다시 실행합니다.", "speak" ], "points": 2, "desc": "문제 3/복도/[오브젝트]의 세부 동작 2/'처음부터 다시 실행합니다.' 를 '말하기'", "type": "list" }, { "ele": [ "$[1][3].type", "$[1][3].params[0].params[0]" ], "answer": [ "wait_second", "2" ], "points": 2, "desc": "문제 3/복도/[오브젝트]의 세부 동작 3/'2' 초 기다리기", "type": "list" }, { "ele": "$[1][4].type", "answer": "restart_project", "points": 2, "desc": "문제 3/복도/[오브젝트]의 세부 동작 4/처음부터 다시 실행하기" } ], "sort": 160 } }