{ "1-1": { "type": "scene", "ele": "$..objects[?(@.name=='별이 빛나는 숲')]", "point": 1.5, "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.7, "desc": "문제 1/번개(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/신호/[개체] 이름 설정 3/이름을 '공'으로 변경하기", "sort": 15 }, "1-6": { "type": "scene", "ele": "$..objects[?(@.name=='막대')]", "point": 1.7, "desc": "문제 1/진행 상태 바/[개체] 이름 설정 4/이름을 '막대'로 변경하기", "sort": 16 }, "1-0": { "ele": "$.messages[?(@.name=='게임시작')]", "point": 0.95, "desc": "문제 2/번개/신호/'게임시작' 신호 만들기", "type": "scene", "sort": 101 }, "2-0": { "ele": "$.messages[?(@.name=='미션성공')]", "point": 0.95, "desc": "문제 2/번개/신호/'미션성공' 신호 만들기", "type": "scene", "sort": 102 }, "3-0": { "ele": "$.variables[?(@.name=='점수')]", "point": 0.95, "desc": "문제 2/번개/변수/'점수' 변수 만들기", "type": "scene", "sort": 102 }, "4-0": { "type": "script", "ele": "$.objects[?(@.name=~'번개')].script", "blocks": [ { "ele": "$[0][0].type", "answer": "when_run_button_click", "point": 0.95, "desc": "문제 2/번개/시작/시작하기 버튼을 클릭했을 때" }, { "ele": [ "$[0][1].type", "$[0][1].params[0].params[0]" ], "answer": [ "set_scale_size", 30 ], "point": 0.95, "desc": "문제 2/번개/[시작]의 세부 동작 1/크기를 '30' 으로 정하기", "type": "list" }, { "ele": [ "$[0][2].type", "$[0][2].params[0].params[0]", "$[0][2].params[1].params[0]" ], "answer": [ "locate_xy", "-205", 105 ], "point": 0.95, "desc": "문제 2/번개/[시작]의 세부 동작 2/x: '-205' y: '105' 위치로 이동하기", "type": "list" }, { "ele": "$[0][3].type", "answer": "hide", "point": 0.95, "desc": "문제 2/번개/[시작]의 세부 동작 3/모양 숨기기" }, { "ele": "$[1][0].type", "answer": "when_message_cast", "point": 0.95, "desc": "문제 2/번개/신호/'게임시작' 신호를 받았을 때" }, { "ele": [ "$[1][1].type", "$[1][1].params[0]" ], "answer": [ "repeat_inf", null ], "point": 0.95, "desc": "문제 2/번개/반복/계속 반복하기", "type": "list" }, { "ele": [ "$[1][1].statements[0][0].type", "$[1][1].statements[0][0].params[0].params[0]" ], "answer": [ "repeat_basic", 3 ], "point": 0.95, "desc": "문제 2/번개/반복/'3' 번 반복하기", "type": "list" }, { "ele": [ "$[1][1].statements[0][0].statements[0][0].type", "$[1][1].statements[0][0].statements[0][0].params[0]" ], "answer": [ "create_clone", "self" ], "point": 0.95, "desc": "문제 2/번개/[반복]의 세부 동작 1/'자신' 의 복제본 만들기", "type": "list" }, { "ele": [ "$[1][1].statements[0][1].type", "$[1][1].statements[0][1].params[0].params[0]" ], "answer": [ "wait_second", 3 ], "point": 0.95, "desc": "문제 2/번개/반복/'3' 초 기다리기", "type": "list" }, { "ele": "$[2][0].type", "answer": "when_clone_start", "point": 0.95, "desc": "문제 2/번개/복제본/복제본이 처음 생성되었을 때" }, { "ele": [ "$[2][1].type", "$[2][1].params[0].params[1].params[0]", "$[2][1].params[0].params[3].params[0]", "$[2][1].params[1].params[0]" ], "answer": [ "locate_xy", "-220", 220, 150 ], "point": 0.95, "desc": "문제 2/번개/[복제본]의 세부 동작1/x: '-220 부터 220 사이의 무작위 수' y: '150' 위치로 이동하기", "type": "list" }, { "ele": "$[2][2].type", "answer": "show", "point": 0.95, "desc": "문제 2/번개/[복제본]의 세부 동작2/모양 보이기" }, { "ele": [ "$[2][3].type", "$[2][3].params[0]" ], "answer": [ "repeat_inf", null ], "point": 0.95, "desc": "문제 2/번개/반복/계속 반복하기", "type": "list" }, { "ele": [ "$[2][3].statements[0][0].type", "$[2][3].statements[0][0].params[0].params[1].params[0]", "$[2][3].statements[0][0].params[0].params[3].params[0]" ], "answer": [ "move_y", "-1", "-2" ], "point": 0.95, "desc": "문제 2/번개/[반복]의 세부 동작 1/y 좌표를 '-1 부터 -2 사이의 무작위 수' 만큼 바꾸기", "type": "list" }, { "ele": [ "$[2][3].statements[0][1].type", "$[2][3].statements[0][1].params[0].type" ], "answer": [ "_if", "reach_something" ], "point": 0.95, "desc": "문제 2/번개/만일/만일 '공' 에 닿았는가? 라면", "type": "list" }, { "ele": [ "$[2][3].statements[0][1].statements[0][0].type", "$[2][3].statements[0][1].statements[0][0].params[1].params[0]" ], "answer": [ "change_variable", "-2" ], "point": 0.95, "desc": "문제 2/번개/[만일]의 세부 동작 1/'점수' 에 '-2' 만큼 더하기", "type": "list" }, { "ele": [ "$[2][3].statements[0][1].statements[0][1].type", "$[2][3].statements[0][1].statements[0][1].params[0].params[0]" ], "answer": [ "wait_second", 0.1 ], "point": 0.95, "desc": "문제 2/번개/[만일]의 세부 동작 2/'0.1' 초 기다리기", "type": "list" }, { "ele": "$[2][3].statements[0][1].statements[0][2].type", "answer": "delete_clone", "point": 0.95, "desc": "문제 2/번개/[만일]의 세부 동작 3/이 복제본 삭제하기" }, { "ele": "$[3][0].type", "answer": "when_message_cast", "point": 0.95, "desc": "문제 2/번개/신호/'미션성공' 신호를 받았을 때" }, { "ele": [ "$[3][1].type", "$[3][1].params[0]" ], "answer": [ "stop_object", "otherThread" ], "point": 0.95, "desc": "문제 2/번개/[신호]의 세부 동작 1/'자신의 다른' 코드 멈추기", "type": "list" } ], "sort": 106 }, "5-0": { "type": "script", "ele": "$.objects[?(@.name=~'별')].script", "blocks": [ { "ele": "$[0][0].type", "answer": "when_run_button_click", "point": 0.95, "desc": "문제 2/별/시작/시작하기 버튼을 클릭했을 때" }, { "ele": [ "$[0][1].type", "$[0][1].params[0].params[0]" ], "answer": [ "set_scale_size", "10" ], "point": 0.95, "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", "-205", "105" ], "point": 0.95, "desc": "문제 2/별/[시작]의 세부 동작 2/x: '-205' y: '105' 위치로 이동하기", "type": "list" }, { "ele": "$[0][3].type", "answer": "hide", "point": 0.95, "desc": "문제 2/별/[시작]의 세부 동작 3/모양 숨기기" }, { "ele": "$[1][0].type", "answer": "when_message_cast", "point": 0.95, "desc": "문제 2/별/신호/'게임시작' 신호를 받았을 때" }, { "ele": [ "$[1][1].type", "$[1][1].params[0]" ], "answer": [ "repeat_inf", null ], "point": 0.95, "desc": "문제 2/별/반복/계속 반복하기", "type": "list" }, { "ele": [ "$[1][1].statements[0][0].type", "$[1][1].statements[0][0].params[0].params[0]" ], "answer": [ "repeat_basic", "3" ], "point": 0.95, "desc": "문제 2/별/반복/'3' 번 반복하기", "type": "list" }, { "ele": [ "$[1][1].statements[0][0].statements[0][0].type", "$[1][1].statements[0][0].statements[0][0].params[0]" ], "answer": [ "create_clone", "self" ], "point": 0.95, "desc": "문제 2/별/[반복]의 세부 동작 1/'자신' 의 복제본 만들기", "type": "list" }, { "ele": [ "$[1][1].statements[0][1].type", "$[1][1].statements[0][1].params[0].params[0]" ], "answer": [ "wait_second", "3" ], "point": 0.95, "desc": "문제 2/별/반복/'3' 초 기다리기", "type": "list" }, { "ele": "$[2][0].type", "answer": "when_clone_start", "point": 0.95, "desc": "문제 2/별/복제본/복제본이 처음 생성되었을 때" }, { "ele": [ "$[2][1].type", "$[2][1].params[0].params[1].params[0]", "$[2][1].params[0].params[3].params[0]" ], "answer": [ "set_scale_size", "10", "40" ], "point": 0.95, "desc": "문제 2/별/[복제본]의 세부 동작1/크기를 '10 부터 40 사이의 무작위 수' 로 정하기 ", "type": "list" }, { "ele": [ "$[2][2].type", "$[2][2].params[0].params[1].params[0]", "$[2][2].params[0].params[3].params[0]", "$[2][2].params[1].params[0]" ], "answer": [ "locate_xy", "-220", "220", "150" ], "point": 0.95, "desc": "문제 2/별/[복제본]의 세부 동작2/x: '-220부터 220 사이의 무작위 수' y: '150' 위치로 이동하기", "type": "list" }, { "ele": "$[2][3].type", "answer": "show", "point": 0.95, "desc": "문제 2/별/[복제본]의 세부 동작3/모양 보이기" }, { "ele": [ "$[2][4].type", "$[2][4].params[0]" ], "answer": [ "repeat_inf", null ], "point": 0.95, "desc": "문제 2/별/반복/계속 반복하기", "type": "list" }, { "ele": [ "$[2][4].statements[0][0].type", "$[2][4].statements[0][0].params[0].params[1].params[0]", "$[2][4].statements[0][0].params[0].params[3].params[0]" ], "answer": [ "move_y", "-1", "-2" ], "point": 0.95, "desc": "문제 2/별/[반복]의 세부 동작 1/y 좌표를 '-1 부터 -2 사이의 무작위 수' 만큼 바꾸기", "type": "list" }, { "ele": [ "$[2][4].statements[0][1].type", "$[2][4].statements[0][1].params[0].type" ], "answer": [ "_if", "reach_something" ], "point": 0.95, "desc": "문제 2/별/만일/만일 '공' 에 닿았는가? 라면", "type": "list" }, { "ele": [ "$[2][4].statements[0][1].statements[0][0].type", "$[2][4].statements[0][1].statements[0][0].params[1].params[0]" ], "answer": [ "change_variable", "2" ], "point": 0.95, "desc": "문제 2/별/[만일]의 세부 동작 1/'점수' 에 '2' 만큼 더하기", "type": "list" }, { "ele": [ "$[2][4].statements[0][1].statements[0][1].type", "$[2][4].statements[0][1].statements[0][1].params[0].params[0]" ], "answer": [ "wait_second", "0.1" ], "point": 0.95, "desc": "문제 2/별/[만일]의 세부 동작 2/'0.1' 초 기다리기", "type": "list" }, { "ele": "$[2][4].statements[0][1].statements[0][2].type", "answer": "delete_clone", "point": 0.95, "desc": "문제 2/별/[만일]의 세부 동작 3/이 복제본 삭제하기" }, { "ele": [ "$[2][4].statements[0][2].type", "$[2][4].statements[0][2].params[0].type", "$[2][4].statements[0][2].params[0].params[0].type", "$[2][4].statements[0][2].params[0].params[1]", "$[2][4].statements[0][2].params[0].params[2].params[0]" ], "answer": [ "_if", "boolean_basic_operator", "get_variable", "GREATER_OR_EQUAL", "10" ], "point": 0.95, "desc": "문제 2/별/만일/만일 '점수' 값 ≥ '10' 이라면", "type": "list" }, { "ele": "$[2][4].statements[0][2].statements[0][0].type", "answer": "message_cast", "point": 0.95, "desc": "문제 2/별/신호/'미션성공' 신호 보내기" }, { "ele": "$[3][0].type", "answer": "when_message_cast", "point": 0.95, "desc": "문제 2/별/신호/'미션성공' 신호를 받았을 때" }, { "ele": [ "$[3][1].type", "$[3][1].params[0]" ], "answer": [ "stop_object", "otherThread" ], "point": 0.95, "desc": "문제 2/별/[신호]의 세부 동작 1/'자신의 다른' 코드 멈추기", "type": "list" } ], "sort": 125 }, "6-0": { "type": "script", "ele": "$.objects[?(@.name=~'공|신')].script", "blocks": [ { "ele": "$[0][0].type", "answer": "when_run_button_click", "point": 0.95, "desc": "문제 2/공/시작/시작하기 버튼을 클릭했을 때" }, { "ele": [ "$[0][1].type", "$[0][1].params[0].params[0]" ], "answer": [ "set_scale_size", "15" ], "point": 0.95, "desc": "문제 2/공/[시작]의 세부 동작 1/크기를 '15' 로 정하기", "type": "list" }, { "ele": [ "$[0][2].type", "$[0][2].params[0].params[0]", "$[0][2].params[1].params[0]" ], "answer": [ "locate_xy", "0", "0" ], "point": 0.95, "desc": "문제 2/공/[시작]의 세부 동작 2/x: '0' y: '0' 위치로 이동하기", "type": "list" }, { "ele": "$[0][3].type", "answer": "hide", "point": 0.95, "desc": "문제 2/공/[시작]의 세부 동작 3/모양 숨기기" }, { "ele": "$[1][0].type", "answer": "when_message_cast", "point": 0.95, "desc": "문제 2/공/신호/'게임시작' 신호를 받았을 때" }, { "ele": [ "$[1][1].type", "$[1][1].params[0]" ], "answer": [ "repeat_inf", null ], "point": 0.95, "desc": "문제 2/공/반복/계속 반복하기", "type": "list" }, { "ele": [ "$[1][1].statements[0][0].type", "$[1][1].statements[0][0].params[0].type", "$[1][1].statements[0][0].params[0].params[0]" ], "answer": [ "_if", "is_press_some_key", "32" ], "point": 0.95, "desc": "문제 2/공/만일/만일 '스페이스' 키가 눌러져 있는가? 라면", "type": "list" }, { "ele": [ "$[1][1].statements[0][0].statements[0][0].type", "$[1][1].statements[0][0].statements[0][0].params[0]" ], "answer": [ "create_clone", "self" ], "point": 0.95, "desc": "문제 2/공/[만일]의 세부 동작 1/'자신' 의 복제본 만들기", "type": "list" }, { "ele": [ "$[1][1].statements[0][0].statements[0][1].type", "$[1][1].statements[0][0].statements[0][1].params[0]", "$[1][1].statements[0][0].statements[0][1].params[1].params[0]" ], "answer": [ "add_effect_amount", "color", "10" ], "point": 0.95, "desc": "문제 2/공/[만일]의 세부 동작 2/'색깔' 효과를 '10' 만큼 주기", "type": "list" }, { "ele": [ "$[1][1].statements[0][0].statements[0][2].type", "$[1][1].statements[0][0].statements[0][2].params[0].params[0]" ], "answer": [ "wait_second", "0.1" ], "point": 0.95, "desc": "문제 2/공/[만일]의 세부 동작 3/'0.1' 초 기다리기", "type": "list" }, { "ele": "$[2][0].type", "answer": "when_clone_start", "point": 0.95, "desc": "문제 2/공/복제본/복제본이 처음 생성되었을 때" }, { "ele": "$[2][1].type", "answer": "locate", "point": 0.95, "desc": "문제 2/공/[복제본]의 세부 동작1/'막대' 위치로 이동하기" }, { "ele": "$[2][2].type", "answer": "show", "point": 0.95, "desc": "문제 2/공/[복제본]의 세부 동작2/모양 보이기" }, { "ele": [ "$[2][3].type", "$[2][3].params[0].params[0].params[3]", "$[2][3].params[0].params[1]", "$[2][3].params[0].params[2].params[0]" ], "answer": [ "repeat_while_true", null, "wall_up", null ], "point": 0.95, "desc": "문제 2/공/반복/'위쪽 벽' 에 닿았는가? '이 될 때까지' 반복하기", "type": "list" }, { "ele": [ "$[2][3].statements[0][0].type", "$[2][3].statements[0][0].params[0].params[0]" ], "answer": [ "move_y", 10 ], "point": 0.95, "desc": "문제 2/공/[반복]의 세부 동작 1/y 좌표를 '10' 만큼 바꾸기", "type": "list" }, { "ele": [ "$[2][3].statements[0][1].type", "$[2][3].statements[0][1].params[0].type" ], "answer": [ "_if", "reach_something" ], "point": 0.95, "desc": "문제 2/공/만일/만일 '별' 에 닿았는가? 라면", "type": "list" }, { "ele": [ "$[2][3].statements[0][1].statements[0][0].type", "$[2][3].statements[0][1].statements[0][0].params[0].params[0]" ], "answer": [ "wait_second", "0.1" ], "point": 0.95, "desc": "문제 2/공/[만일]의 세부 동작 1/'0.1' 초 기다리기", "type": "list" }, { "ele": "$[2][3].statements[0][1].statements[0][1].type", "answer": "delete_clone", "point": 0.95, "desc": "문제 2/공/[만일]의 세부 동작 2/이 복제본 삭제하기" }, { "ele": "$[2][4].type", "answer": "delete_clone", "point": 0.95, "desc": "문제 2/공/복제본/이 복제본 삭제하기" }, { "ele": "$[3][0].type", "answer": "when_message_cast", "point": 0.95, "desc": "문제 2/공/신호/'미션성공' 신호를 받았을 때" }, { "ele": [ "$[3][1].type", "$[3][1].params[0]" ], "answer": [ "stop_object", "otherThread" ], "point": 0.95, "desc": "문제 2/공/[신호]의 세부 동작/'자신의 다른' 코드 멈추기", "type": "list" } ], "sort": 148 }, "7-0": { "type": "script", "ele": "$.objects[?(@.name=~'막대|진행 상태 ')].script", "blocks": [ { "ele": "$[0][0].type", "answer": "when_run_button_click", "point": 0.95, "desc": "문제 2/막대/시작/시작하기 버튼을 클릭했을 때" }, { "ele": [ "$[0][1].type", "$[0][1].params[0].params[0]" ], "answer": [ "set_scale_size", "60" ], "point": 0.95, "desc": "문제 2/막대/[시작]의 세부 동작 1/크기를 'h60' 으로 정하기", "type": "list" }, { "ele": [ "$[0][2].type", "$[0][2].params[0].params[0]", "$[0][2].params[1].params[0]" ], "answer": [ "locate_xy", "0", "-110" ], "point": 0.95, "desc": "문제 2/막대/[시작]의 세부 동작 2/x: '0' y: '-110' 위치로 이동하기", "type": "list" }, { "ele": "$[0][3].type", "answer": "message_cast", "point": 0.95, "desc": "문제 2/막대/신호/'게임시작' 신호 보내기" }, { "ele": "$[1][0].type", "answer": "when_message_cast", "point": 0.95, "desc": "문제 2/막대/신호/'게임시작' 신호를 받았을 때" }, { "ele": [ "$[1][1].type", "$[1][1].params[0].params[0]" ], "answer": [ "wait_second", "0.3" ], "point": 0.95, "desc": "문제 2/막대/[신호]의 세부 동작 1/'0.3' 초 기다리기", "type": "list" }, { "ele": [ "$[1][2].type", "$[1][2].params[0]" ], "answer": [ "repeat_inf", null ], "point": 0.95, "desc": "문제 2/막대/반복/계속 반복하기", "type": "list" }, { "ele": [ "$[1][2].statements[0][0].type", "$[1][2].statements[0][0].params[0].type", "$[1][2].statements[0][0].params[0].params[0]" ], "answer": [ "_if", "is_press_some_key", "37" ], "point": 0.95, "desc": "문제 2/막대/만일/만일 '왼쪽 화살표' 키가 눌러져 있는가? 라면", "type": "list" }, { "ele": [ "$[1][2].statements[0][0].statements[0][0].type", "$[1][2].statements[0][0].statements[0][0].params[0].params[0]" ], "answer": [ "move_x", "-10" ], "point": 0.95, "desc": "문제 2/막대/[만일]의 세부 동작 1/x 좌표를 '-10' 만큼 바꾸기", "type": "list" }, { "ele": [ "$[1][2].statements[0][1].type", "$[1][2].statements[0][1].params[0].type", "$[1][2].statements[0][1].params[0].params[0]" ], "answer": [ "_if", "is_press_some_key", "39" ], "point": 0.95, "desc": "문제 2/막대/만일/만일 '오른쪽 화살표' 키가 눌러져 있는가? 라면", "type": "list" }, { "ele": [ "$[1][2].statements[0][1].statements[0][0].type", "$[1][2].statements[0][1].statements[0][0].params[0].params[0]" ], "answer": [ "move_x", "10" ], "point": 0.95, "desc": "문제 2/막대/[만일2]의 세부 동작 1/x 좌표를 '10' 만큼 바꾸기", "type": "list" }, { "ele": "$[2][0].type", "answer": "when_message_cast", "point": 0.95, "desc": "문제 2/막대/신호/'미션성공' 신호를 받았을 때" }, { "ele": [ "$[2][1].type", "$[2][1].params[0]" ], "answer": [ "stop_object", "otherThread" ], "point": 0.95, "desc": "문제 2/막대/[신호]의 세부 동작 1/'자신의 다른' 코드 멈추기", "type": "list" }, { "ele": "$[2][2].params[*].params", "answer": [ "미션성공!", "2" ], "point": 0.95, "desc": "문제 2/막대/[신호]의 세부 동작 1/'미션성공!' 을 '2' 초 동안 '말하기'" }, { "ele": "$[2][3].type", "answer": "start_neighbor_scene", "point": 0.95, "desc": "문제 2/막대/[신호]의 세부 동작 1/'다음' 장면 시작하기" } ], "sort": 168 }, "8-0": { "type": "script", "ele": "$.objects[?(@.name=~'우주|장면 ')].script", "blocks": [ { "ele": "$[0][0].type", "answer": "when_scene_start", "point": 0.95, "desc": "문제 2/우주/장면 2/장면이 시작되었을 때" }, { "ele": "$[0][1].type", "answer": "hide_variable", "point": 0.95, "desc": "문제 2/우주/[장면 2]의 세부 동작 1/변수 '점수' 숨기기" }, { "ele": "$[1][0].type", "answer": "when_object_click", "point": 2.5, "desc": "문제 3/우주/오브젝트/오브젝트를 클릭했을 때" }, { "ele": [ "$[1][1].type", "$[1][1].params[0]", "$[1][1].params[1].params[0]" ], "answer": [ "add_effect_amount", "color", 30 ], "point": 2.5, "desc": "문제 3/우주/[오브젝트]의 세부 동작 1/'색깔' 효과를 '30' 만큼 주기", "type": "list" }, { "ele": "$[1][2].params[*].params", "answer": [ "다시시작!", 2 ], "point": 2.5, "desc": "문제 3/우주/[오브젝트]의 세부 동작 2/'다시시작!' 을 '2' 초 동안 '말하기'" }, { "ele": "$[1][3].type", "answer": "restart_project", "point": 2.5, "desc": "문제 3/우주/[오브젝트]의 세부 동작 3/처음부터 다시 실행하기" } ], "sort": 183 } }