{ "1-1": { "type": "scene", "ele": "$..objects[?(@.name=='바다1')]", "points": 1.8, "desc": "문제 1/장면 1/[배경] 이름 설정 1/이름을 '바다1'로 변경하기", "sort": 11 }, "1-2": { "type": "scene", "ele": "$..objects[?(@.name=='바다2')]", "points": 1.8, "desc": "문제 1/장면 2/[배경] 이름 설정 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.6, "desc": "문제 1/쓰레기/[개체] 이름 설정 3/이름 변경 없음", "sort": 15 }, "1-6": { "type": "scene", "ele": "$..objects[?(@.name=='상어')]", "points": 1.6, "desc": "문제 1/상어(1)/[개체] 이름 설정 4/이름을 '상어'로 변경하기", "sort": 16 }, "1-7": { "ele": "$..variables[?(@.name=='물고기 수')]", "points": 1, "desc": "문제 2/빨간 물고기/변수/'물고기 수' 변수 만들기", "type": "scene", "sort": 101 }, "2-0": { "type": "script", "ele": "$.objects[?(@.name=~'빨간 물고기')].script", "blocks": [ { "ele": "$[0][0].type", "answer": "when_run_button_click", "points": 1.2, "desc": "문제 2/빨간 물고기/시작1/시작하기 버튼을 클릭했을 때" }, { "ele": "$[0][1].params[0].params[0]", "answer": "30", "points": 1.2, "desc": "문제 2/빨간 물고기/[시작1]의 세부 동작 1/크기를 '30' 으로 정하기" }, { "ele": [ "$[0][2].type", "$[0][2].params[0]" ], "answer": [ "repeat_inf", null ], "points": 1.2, "desc": "문제 2/빨간 물고기/반복/계속 반복하기", "type": "list" }, { "ele": [ "$[0][2].statements[0][0].type", "$[0][2].statements[0][0].params[0].type" ], "answer": [ "_if", "reach_something" ], "points": 1.2, "desc": "문제 2/빨간 물고기/만일/만일 '상어' 에 닿았는가? 라면", "type": "list" }, { "ele": [ "$[0][2].statements[0][0].statements[0][0].type", "$[0][2].statements[0][0].statements[0][0].params[1].params[0]" ], "answer": [ "change_variable", "1" ], "points": 1.2, "desc": "문제 2/빨간 물고기/[만일]의 세부 동작 1/'물고기 수'에 '1' 만큼 더하기", "type": "list" }, { "ele": [ "$[0][2].statements[0][0].statements[0][1].type", "$[0][2].statements[0][0].statements[0][1].params[0].params[0]" ], "answer": [ "wait_second", "0.01" ], "points": 1.2, "desc": "문제 2/빨간 물고기/[만일]의 세부 동작 2/'0.01' 초 기다리기", "type": "list" }, { "ele": "$[0][2].statements[0][0].statements[0][2].type", "answer": "hide", "points": 1.2, "desc": "문제 2/빨간 물고기/[만일]의 세부 동작 3/모양 숨기기" }, { "ele": [ "$[0][2].statements[0][0].statements[0][3].type", "$[0][2].statements[0][0].statements[0][3].params[0].type", "$[0][2].statements[0][0].statements[0][3].params[0].params[1].params[0]", "$[0][2].statements[0][0].statements[0][3].params[0].params[3].params[0]" ], "answer": [ "wait_second", "calc_rand", "0.5", "3" ], "points": 1.2, "desc": "문제 2/빨간 물고기/[만일]의 세부 동작 4/'0.5 부터 3 사이의 무작위 수' 초 기다리기", "type": "list" }, { "ele": "$[0][2].statements[0][0].statements[0][4].type", "answer": "show", "points": 1.2, "desc": "문제 2/빨간 물고기/[만일]의 세부 동작 5/모양 보이기" }, { "ele": "$[1][0].type", "answer": "when_run_button_click", "points": 1.2, "desc": "문제 2/빨간 물고기/시작2/시작하기 버튼을 클릭했을 때" }, { "ele": [ "$[1][1].type", "$[1][1].params[0]" ], "answer": [ "repeat_inf", null ], "points": 1.2, "desc": "문제 2/빨간 물고기/반복/계속 반복하기", "type": "list" }, { "ele": [ "$[1][1].statements[0][0].type", "$[1][1].statements[0][0].params[0].params[0]" ], "answer": [ "move_direction", null ], "points": 1.2, "desc": "문제 2/빨간 물고기/[반복]의 세부 동작 1/이동 방향으로 '1 부터 2 사이의 무작위 수' 만큼 움직이기", "type": "list" }, { "ele": [ "$[1][1].statements[0][1].type", "$[1][1].statements[0][1].params[0].type", "$[1][1].statements[0][1].params[0].params[1].params[0]", "$[1][1].statements[0][1].params[0].params[3].params[0]" ], "answer": [ "direction_relative", "calc_rand", "-1", "1" ], "points": 1.2, "desc": "문제 2/빨간 물고기/[반복]의 세부 동작 2/이동 방향을 '-1 부터 1 사이의 무작위 수' 만큼 회전하기", "type": "list" }, { "ele": "$[1][1].statements[0][2].type", "answer": "bounce_wall", "points": 1.2, "desc": "문제 2/빨간 물고기/[반복]의 세부 동작 3/화면 끝에 닿으면 튕기기" } ], "sort": 102, "list": [ "set_scale_size", "repeat_inf" ] }, "3-0": { "type": "script", "ele": "$.objects[?(@.name=~'노란 물고기|물고')].script", "blocks": [ { "ele": "$[0][0].type", "answer": "when_run_button_click", "points": 1.2, "desc": "문제 2/노란 물고기/시작1/시작하기 버튼을 클릭했을 때" }, { "ele": "$[0][1].params[0].params[0]", "answer": "30", "points": 1.2, "desc": "문제 2/노란 물고기/[시작1]의 세부 동작 1/크기를 '30' 으로 정하기" }, { "ele": [ "$[0][2].type", "$[0][2].params[0]" ], "answer": [ "repeat_inf", null ], "points": 1.2, "desc": "문제 2/노란 물고기/반복/계속 반복하기", "type": "list" }, { "ele": [ "$[0][2].statements[0][0].type", "$[0][2].statements[0][0].params[0].type" ], "answer": [ "_if", "reach_something" ], "points": 1.2, "desc": "문제 2/노란 물고기/만일/만일 '상어' 에 닿았는가? 라면", "type": "list" }, { "ele": [ "$[0][2].statements[0][0].statements[0][0].type", "$[0][2].statements[0][0].statements[0][0].params[1].params[0]" ], "answer": [ "change_variable", "2" ], "points": 1.2, "desc": "문제 2/노란 물고기/[만일]의 세부 동작 1/물고기 수'에 '2' 만큼 더하기", "type": "list" }, { "ele": [ "$[0][2].statements[0][0].statements[0][1].type", "$[0][2].statements[0][0].statements[0][1].params[0].params[0]" ], "answer": [ "wait_second", "0.01" ], "points": 1.2, "desc": "문제 2/노란 물고기/[만일]의 세부 동작 2/'0.01' 초 기다리기", "type": "list" }, { "ele": "$[0][2].statements[0][0].statements[0][2].type", "answer": "hide", "points": 1.2, "desc": "문제 2/노란 물고기/[만일]의 세부 동작 3/모양 숨기기" }, { "ele": [ "$[0][2].statements[0][0].statements[0][3].type", "$[0][2].statements[0][0].statements[0][3].params[0].type", "$[0][2].statements[0][0].statements[0][3].params[0].params[1].params[0]", "$[0][2].statements[0][0].statements[0][3].params[0].params[3].params[0]" ], "answer": [ "wait_second", "calc_rand", "0.5", "1.5" ], "points": 1.2, "desc": "문제 2/노란 물고기/[만일]의 세부 동작 4/'0.5' 부터 '1.5' 사이의 무작위 수' 초 기다리기", "type": "list" }, { "ele": "$[0][2].statements[0][0].statements[0][4].type", "answer": "show", "points": 1.2, "desc": "문제 2/노란 물고기/[만일]의 세부 동작 5/모양 보이기" }, { "ele": "$[1][0].type", "answer": "when_run_button_click", "points": 1.2, "desc": "문제 2/노란 물고기/시작2/시작하기 버튼을 클릭했을 때" }, { "ele": [ "$[1][1].type", "$[1][1].params[0]" ], "answer": [ "repeat_inf", null ], "points": 1.2, "desc": "문제 2/노란 물고기/반복/계속 반복하기", "type": "list" }, { "ele": [ "$[1][1].statements[0][0].type", "$[1][1].statements[0][0].params[0].params[0]" ], "answer": [ "move_direction", null ], "points": 1.2, "desc": "문제 2/노란 물고기/[반복]의 세부 동작 1/이동 방향으로 '1 부터 2 사이의 무작위 수' 만큼 움직이기", "type": "list" }, { "ele": [ "$[1][1].statements[0][1].type", "$[1][1].statements[0][1].params[0].type", "$[1][1].statements[0][1].params[0].params[1].params[0]", "$[1][1].statements[0][1].params[0].params[3].params[0]" ], "answer": [ "direction_relative", "calc_rand", "-1", "1" ], "points": 1.2, "desc": "문제 2/노란 물고기/[반복]의 세부 동작 2/이동 방향을 '-1 부터 1 사이의 무작위 수' 만큼 회전하기", "type": "list" }, { "ele": "$[1][1].statements[0][2].type", "answer": "bounce_wall", "points": 1.2, "desc": "문제 2/노란 물고기/[반복]의 세부 동작 3/화면 끝에 닿으면 튕기기" } ], "sort": 117, "list": [ "set_scale_size", "repeat_inf" ] }, "4-0": { "type": "script", "ele": "$.objects[?(@.name=~'쓰레기')].script", "blocks": [ { "ele": "$[0][0].type", "answer": "when_run_button_click", "points": 1.2, "desc": "문제 2/쓰레기/시작1/시작하기 버튼을 클릭했을 때" }, { "ele": "$[0][1].params[0].params[0]", "answer": "30", "points": 1.2, "desc": "문제 2/쓰레기/[시작1]의 세부 동작 1/크기를 '30' 으로 정하기" }, { "ele": [ "$[0][2].type", "$[0][2].params[0]" ], "answer": [ "repeat_inf", null ], "points": 1.2, "desc": "문제 2/쓰레기/반복/계속 반복하기", "type": "list" }, { "ele": [ "$[0][2].statements[0][0].type", "$[0][2].statements[0][0].params[0].type" ], "answer": [ "_if", "reach_something" ], "points": 1.2, "desc": "문제 2/쓰레기/만일/만일 '상어' 에 닿았는가? 라면", "type": "list" }, { "ele": [ "$[0][2].statements[0][0].statements[0][0].type", "$[0][2].statements[0][0].statements[0][0].params[1].params[0]" ], "answer": [ "change_variable", "-1" ], "points": 1.2, "desc": "문제 2/쓰레기/[만일]의 세부 동작 1/물고기 수'에 '-1' 만큼 더하기", "type": "list" }, { "ele": [ "$[0][2].statements[0][0].statements[0][1].type", "$[0][2].statements[0][0].statements[0][1].params[0].params[0]" ], "answer": [ "wait_second", "0.01" ], "points": 1.2, "desc": "문제 2/쓰레기/[만일]의 세부 동작 2/'0.01' 초 기다리기", "type": "list" }, { "ele": "$[0][2].statements[0][0].statements[0][2].type", "answer": "hide", "points": 1.2, "desc": "문제 2/쓰레기/[만일]의 세부 동작 3/모양 숨기기" }, { "ele": [ "$[0][2].statements[0][0].statements[0][3].type", "$[0][2].statements[0][0].statements[0][3].params[0].type", "$[0][2].statements[0][0].statements[0][3].params[0].params[1].params[0]", "$[0][2].statements[0][0].statements[0][3].params[0].params[3].params[0]" ], "answer": [ "wait_second", "calc_rand", "0.5", "3" ], "points": 1.2, "desc": "문제 2/쓰레기/[만일]의 세부 동작 4/'0.5 부터 3 사이의 무작위 수' 초 기다리기", "type": "list" }, { "ele": "$[0][2].statements[0][0].statements[0][4].type", "answer": "show", "points": 1.2, "desc": "문제 2/쓰레기/[만일]의 세부 동작 5/모양 보이기" }, { "ele": "$[1][0].type", "answer": "when_run_button_click", "points": 1.2, "desc": "문제 2/쓰레기/시작2/시작하기 버튼을 클릭했을 때" }, { "ele": [ "$[1][1].type", "$[1][1].params[0]" ], "answer": [ "repeat_inf", null ], "points": 1.2, "desc": "문제 2/쓰레기/반복/계속 반복하기", "type": "list" }, { "ele": [ "$[1][1].statements[0][0].type", "$[1][1].statements[0][0].params[0].params[0]" ], "answer": [ "move_direction", null ], "points": 1.2, "desc": "문제 2/쓰레기/[반복]의 세부 동작 1/이동 방향으로 '1 부터 2 사이의 무작위 수' 만큼 움직이기", "type": "list" }, { "ele": [ "$[1][1].statements[0][1].type", "$[1][1].statements[0][1].params[0].type", "$[1][1].statements[0][1].params[0].params[1].params[0]", "$[1][1].statements[0][1].params[0].params[3].params[0]" ], "answer": [ "direction_relative", "calc_rand", "-1", "1" ], "points": 1.2, "desc": "문제 2/쓰레기/[반복]의 세부 동작 2/이동 방향을 '-1 부터 1 사이의 무작위 수' 만큼 회전하기", "type": "list" }, { "ele": "$[1][1].statements[0][2].type", "answer": "bounce_wall", "points": 1.2, "desc": "문제 2/쓰레기/[반복]의 세부 동작 3/화면 끝에 닿으면 튕기기" } ], "sort": 131, "list": [ "set_scale_size", "repeat_inf" ] }, "44-0": { "ele": "$.messages[?(@.name=='성공')]", "points": 1, "desc": "문제 2/상어/신호/'성공'신호 만들기", "type": "scene", "sort": 144 }, "5-0": { "type": "script", "ele": "$.objects[?(@.name=~'상어')].script", "blocks": [ { "ele": "$[0][0].type", "answer": "when_run_button_click", "points": 1.2, "desc": "문제 2/상어/시작1/시작하기 버튼을 클릭했을 때" }, { "ele": "$[0][1].params[0].params[0]", "answer": "50", "points": 1.2, "desc": "문제 2/상어/[시작]의 세부 동작 1/크기를 '50' 으로 정하기" }, { "ele": [ "$[0][2].type", "$[0][2].params[0].params[0]", "$[0][2].params[1].params[0]" ], "answer": [ "locate_xy", "-100", "0" ], "points": 1.2, "desc": "문제 2/상어/[시작]의 세부 동작 2/x: '-100' y: '0' 위치로 이동하기", "type": "list" }, { "ele": [ "$[0][3].type", "$[0][3].params[0]" ], "answer": [ "repeat_inf", null ], "points": 1.2, "desc": "문제 2/상어/반복/계속 반복하기", "type": "list" }, { "ele": [ "$[0][3].statements[0][0].type", "$[0][3].statements[0][0].params[0].type", "$[0][3].statements[0][0].params[0].params[0].type", "$[0][3].statements[0][0].params[0].params[1]", "$[0][3].statements[0][0].params[0].params[2].params[0]" ], "answer": [ "_if", "boolean_basic_operator", "get_variable", "GREATER", "10" ], "points": 1.2, "desc": "문제 2/상어/만일/만일 '물고기 수' 값 > '10' 이라면", "type": "list" }, { "ele": "$[0][3].statements[0][0].statements[0][0].type", "answer": "message_cast", "points": 1.2, "desc": "문제 2/상어/[만일]의 세부 동작 1/성공' 신호보내기" }, { "ele": [ "$[0][3].statements[0][0].statements[0][1].type", "$[0][3].statements[0][0].statements[0][1].params[0]" ], "answer": [ "stop_object", "thisOnly" ], "points": 1.2, "desc": "문제 2/상어/[만일]의 세부 동작 2/자신의' 코드 멈추기", "type": "list" }, { "ele": "$[1][0].type", "answer": "when_run_button_click", "points": 1.2, "desc": "문제 2/상어/시작2/시작하기 버튼을 클릭했을 때" }, { "ele": [ "$[1][1].type", "$[1][1].params[0]" ], "answer": [ "repeat_inf", null ], "points": 1.2, "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", "37" ], "points": 1.2, "desc": "문제 2/상어/만일1/만일 '왼쪽 화살표' 키가 눌러져 있는가? 라면", "type": "list" }, { "ele": [ "$[1][1].statements[0][0].statements[0][0].type", "$[1][1].statements[0][0].statements[0][0].params[0].params[0]" ], "answer": [ "move_x", "-5" ], "points": 1.2, "desc": "문제 2/상어/[만일1]의 세부 동작 1/x 좌표를 '-5' 만큼 바꾸기", "type": "list" }, { "ele": [ "$[1][1].statements[0][1].type", "$[1][1].statements[0][1].params[0].type", "$[1][1].statements[0][1].params[0].params[0]" ], "answer": [ "_if", "is_press_some_key", "39" ], "points": 1.2, "desc": "문제 2/상어/만일2/만일 '오른쪽 화살표' 키가 눌러져 있는가? 라면", "type": "list" }, { "ele": [ "$[1][1].statements[0][1].statements[0][0].type", "$[1][1].statements[0][1].statements[0][0].params[0].params[0]" ], "answer": [ "move_x", "5" ], "points": 1.2, "desc": "문제 2/상어/[만일2]의 세부 동작 1/x 좌표를 '5' 만큼 바꾸기", "type": "list" }, { "ele": [ "$[1][1].statements[0][2].type", "$[1][1].statements[0][2].params[0].type", "$[1][1].statements[0][2].params[0].params[0]" ], "answer": [ "_if", "is_press_some_key", "38" ], "points": 1.2, "desc": "문제 2/상어/만일3/만일 '위쪽 화살표' 키가 눌러져 있는가? 라면", "type": "list" }, { "ele": [ "$[1][1].statements[0][2].statements[0][0].type", "$[1][1].statements[0][2].statements[0][0].params[0].params[0]" ], "answer": [ "move_y", "5" ], "points": 1.2, "desc": "문제 2/상어/[만일3]의 세부 동작 1/y 좌표를 '5' 만큼 바꾸기", "type": "list" }, { "ele": [ "$[1][1].statements[0][3].type", "$[1][1].statements[0][3].params[0].type", "$[1][1].statements[0][3].params[0].params[0]" ], "answer": [ "_if", "is_press_some_key", "40" ], "points": 1.2, "desc": "문제 2/상어/만일4/만일 '아래쪽 화살표' 키가 눌러져 있는가? 라면", "type": "list" }, { "ele": [ "$[1][1].statements[0][3].statements[0][0].type", "$[1][1].statements[0][3].statements[0][0].params[0].params[0]" ], "answer": [ "move_y", "-5" ], "points": 1.2, "desc": "문제 2/상어/[만일4]의 세부 동작 1/y 좌표를 '-5' 만큼 바꾸기", "type": "list" }, { "ele": "$[2][0].type", "answer": "when_message_cast", "points": 1.2, "desc": "문제 2/상어/신호/'성공' 신호를 받았을 때 " }, { "ele": "$[2][1].params[*].params", "answer": [ "배부르다!", "1" ], "points": 1.2, "desc": "문제 2/상어/[신호]의 세부 동작 1/'배부르다!' 를 '1'초 동안 '말하기'" }, { "ele": "$[2][2].type", "answer": "start_neighbor_scene", "points": 1.2, "desc": "문제 2/상어/[신호]의 세부 동작 2/'다음' 장면 시작하기" } ], "sort": 145, "list": [ "set_scale_size", "repeat_inf", "dialog_time" ] }, "6-0": { "type": "script", "ele": "$.objects[?(@.name=~'바다2|바닷속\\(3\\)1')].script", "blocks": [ { "ele": "$[0][0].type", "answer": "when_scene_start", "points": 1.2, "desc": "문제 2/바다2/장면 2/장면이 시작되었을 때" }, { "ele": "$[0][1].type", "answer": "hide_variable", "points": 1.2, "desc": "문제 2/바다2/[장면 2]의 세부 동작 1/변수 '물고기 수' 숨기기" }, { "ele": [ "$[0][2].type", "$[0][2].params[0].params[0]", "$[0][2].params[1]" ], "answer": [ "dialog", "미션성공!", "speak" ], "points": 1.2, "desc": "문제 2/바다2/[장면 2]의 세부 동작 2/'미션성공!' 을 '말하기'", "type": "list" }, { "ele": "$[1][0].type", "answer": "when_object_click", "points": 2, "desc": "문제 3/바다2/오브젝트/오브젝트를 클릭했을 때" }, { "ele": [ "$[1][1].type", "$[1][1].params[0]", "$[1][1].params[1].params[0]" ], "answer": [ "add_effect_amount", "color", "30" ], "points": 2, "desc": "문제 3/바다2/[오브젝트]의 세부 동작 1/'색깔' 효과를 '30' 만큼 주기", "type": "list" }, { "ele": [ "$[1][2].type", "$[1][2].params[0].params[0]", "$[1][2].params[1]" ], "answer": [ "dialog", "처음부터 다시 실행!", "speak" ], "points": 2, "desc": "문제 3/바다2/[오브젝트]의 세부 동작 2/'처음부터 다시 실행!' 을 '말하기'", "type": "list" }, { "ele": [ "$[1][3].type", "$[1][3].params[0].params[0]" ], "answer": [ "wait_second", "2" ], "points": 2, "desc": "문제 3/바다2/[오브젝트]의 세부 동작 3/'2' 초 기다리기", "type": "list" }, { "ele": "$[1][4].type", "answer": "restart_project", "points": 2, "desc": "문제 3/바다2/[오브젝트]의 세부 동작 4/처음부터 다시 실행하기" } ], "sort": 166, "list": [ "hide_variable", "add_effect_amount" ] } }