diff --git a/01_copyFiles.py b/01_copy_files.py similarity index 80% rename from 01_copyFiles.py rename to 01_copy_files.py index 3e27a12..a02fcea 100644 --- a/01_copyFiles.py +++ b/01_copy_files.py @@ -49,17 +49,11 @@ def copy_ent_files(source_root, target_root): # source_directory = r"D:\project\data\CAS_제2510회 정기\제2510회 코딩활용능력 2급 정기 답안파일" # 원본 디렉토리 경로 -# test_name = "2602_2_CAS_2_A" -# test_name = "2602_2_CAS_2_B" -test_name = "2602_3_CAS_2_A" -# test_name = "2602_6_CAS_2_B" - +exam_name = "2602_CAS_2_A" +# exam_name = "2602_6_CAS_2_B" # source_directory = r"D:\project\data\CAT_제2511회 정기\답안파일" # 원본 디렉토리 경로 -# source_directory = r"D:\project\data\제2602회 수시2_CAS(구미)\답안파일\A형" # 원본 디렉토리 경로 -# source_directory = r"D:\project\data\제2602회 수시2_CAS(구미)\답안파일\B형" # 원본 디렉토리 경로 -# source_directory = r"D:\project\data\제2602회 수시2_CAS(구미)\답안파일\B형" # 원본 디렉토리 경로 source_directory = r"D:\project\data\제2602회 수시3_CAS(대구)\답안파일" # 원본 디렉토리 경로 -target_directory = rf".\ent\{test_name}" # 타겟 디렉토리 경로 +target_directory = rf".\ent\{exam_name}" # 타겟 디렉토리 경로 copy_ent_files(source_directory, target_directory) diff --git a/02_extract_project_json.py b/02_extract_project_json.py index 49568a3..4d1967f 100644 --- a/02_extract_project_json.py +++ b/02_extract_project_json.py @@ -50,9 +50,9 @@ def process_ent_files(ent_dir, output_dir): # 실행 예 if __name__ == "__main__": - test_names = ["2602_6_CAS_2_B"] - # test_names = ["2512_CAS_2_A", "2512_CAS_2_B"] - for test_name in test_names: - ent_dir = f".\\ent\\{test_name}" - output_dir = f".\\output\\{test_name}" + exam_names = ["2602_CAS_2_A"] + # exam_names = ["2512_CAS_2_A", "2512_CAS_2_B"] + for exam_name in exam_names: + ent_dir = f".\\ent\\{exam_name}" + output_dir = f".\\output\\{exam_name}" process_ent_files(ent_dir, output_dir) diff --git a/260129_2512_CAS_2_B_TEST.xlsx b/260129_2512_CAS_2_B_TEST.xlsx deleted file mode 100644 index d697343..0000000 Binary files a/260129_2512_CAS_2_B_TEST.xlsx and /dev/null differ diff --git a/260129_2601_CAT_3_A_채점결과.xlsx b/260129_2601_CAT_3_A_채점결과.xlsx deleted file mode 100644 index 57c921d..0000000 Binary files a/260129_2601_CAT_3_A_채점결과.xlsx and /dev/null differ diff --git a/260203_2602_2_CAS_2_A_채점결과.xlsx b/260203_2602_2_CAS_2_A_채점결과.xlsx deleted file mode 100644 index dcd877f..0000000 Binary files a/260203_2602_2_CAS_2_A_채점결과.xlsx and /dev/null differ diff --git a/260203_2602_2_CAS_2_B_채점결과.xlsx b/260203_2602_2_CAS_2_B_채점결과.xlsx deleted file mode 100644 index ea8ff2d..0000000 Binary files a/260203_2602_2_CAS_2_B_채점결과.xlsx and /dev/null differ diff --git a/260204_2602_2_CAS_2_A_채점결과.xlsx b/260204_2602_2_CAS_2_A_채점결과.xlsx deleted file mode 100644 index 6aad62c..0000000 Binary files a/260204_2602_2_CAS_2_A_채점결과.xlsx and /dev/null differ diff --git a/260204_2602_2_CAS_2_B_채점결과.xlsx b/260204_2602_2_CAS_2_B_채점결과.xlsx deleted file mode 100644 index 25cb86f..0000000 Binary files a/260204_2602_2_CAS_2_B_채점결과.xlsx and /dev/null differ diff --git a/260204_2602_3_CAS_2_A_채점결과.xlsx b/260204_2602_3_CAS_2_A_채점결과.xlsx deleted file mode 100644 index 5e00091..0000000 Binary files a/260204_2602_3_CAS_2_A_채점결과.xlsx and /dev/null differ diff --git a/260204_2602_6_CAS_2_B_채점결과.xlsx b/260204_2602_6_CAS_2_B_채점결과.xlsx deleted file mode 100644 index db6c452..0000000 Binary files a/260204_2602_6_CAS_2_B_채점결과.xlsx and /dev/null differ diff --git a/260220_2602_4_CAS_2_A_채점결과.xlsx b/260220_2602_4_CAS_2_A_채점결과.xlsx new file mode 100644 index 0000000..c2a808e Binary files /dev/null and b/260220_2602_4_CAS_2_A_채점결과.xlsx differ diff --git a/260129_2601_CAT_3_A_TEST.xlsx b/260305_2602_CAS_2_A_채점결과.xlsx similarity index 53% rename from 260129_2601_CAT_3_A_TEST.xlsx rename to 260305_2602_CAS_2_A_채점결과.xlsx index f9f9ce9..faf202e 100644 Binary files a/260129_2601_CAT_3_A_TEST.xlsx and b/260305_2602_CAS_2_A_채점결과.xlsx differ diff --git a/260306_2602_CAS_2_A_채점결과.xlsx b/260306_2602_CAS_2_A_채점결과.xlsx new file mode 100644 index 0000000..0b72ceb Binary files /dev/null and b/260306_2602_CAS_2_A_채점결과.xlsx differ diff --git a/_scoring.json b/_scoring.json deleted file mode 100644 index bbb4cef..0000000 --- a/_scoring.json +++ /dev/null @@ -1,476 +0,0 @@ -{ - "1-1": { - "type": "scene", - "ele": "$..objects[?(@.name=='꽃밭')]", - "points": 1.7, - "desc": "배경 이름 변경" - }, - "1-2": { - "type": "scene", - "ele": "$..objects[?(@.name=='숲속')]", - "points": 1.7, - "desc": "배경 이름 변경" - }, - "1-3": { - "type": "scene", - "ele": "$..objects[?(@.name=='당근')]", - "points": 1.7, - "desc": "물체 이름 변경" - }, - "1-4": { - "type": "scene", - "ele": "$..objects[?(@.name=='하트')]", - "points": 1.7, - "desc": "물체 이름 변경" - }, - "1-5": { - "type": "scene", - "ele": "$..objects[?(@.name=='토끼')]", - "points": 1.7, - "desc": "물체 이름 변경" - }, - "1-6": { - "type": "scene", - "ele": "$..objects[?(@.name=='상자')]", - "points": 1.7, - "desc": "물체 이름 변경" - }, - "2-1": { - "type": "scene", - "ele": "$.variables[?(@.name=='당근')]['value', 'object']", - "answer": [ - "10", - null - ], - "points": 1.77, - "desc": "변수 기본값, 전체 사용 여부" - }, - "2-2": { - "type": "scene", - "ele": "$.variables[?(@.name=='점수')]['value', 'object']", - "answer": [ - 0, - null - ], - "points": 1.77, - "desc": "변수 기본값, 전체 사용 여부" - }, - "2-3": { - "type": "scene", - "ele": "$.messages[?@.name=='종료']", - "points": 1.77, - "desc": "시그널 작성 여부" - }, - "2": { - "type": "script", - "ele": "$.objects[?(@.name=='당근')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 1.77, - "desc": "시작하기 버튼을 눌렀을 때" - }, - { - "ele": "$[0][1].params[0].params[0]", - "points": 1.77, - "answer": "45", - "desc": "크기 지정" - }, - { - "ele": "$[0][2]['params']", - "points": 1.77, - "answer": [ - "FORWARD", - null - ], - "desc": "물체 앞으로 보내기" - }, - { - "type": "list", - "ele": [ - "$[0][3].params[0].params[?(@.type=='get_variable')].type", - "$[0][3].params[0].params[?(@=='LESS')]", - "$[0][3].params[0].params[?(@.type=='text')].params[0]" - ], - "answer": [ - "get_variable", - "LESS", - "1" - ], - "points": 1.77, - "desc": "변수가 1보다 클때까지 반복" - }, - { - "ele": "$[0][3].statements[0][?@.type=='locate_xy'].params[*].params", - "answer": [ - "0", - "-120" - ], - "points": 1.77, - "desc": "x:0, y:-120 으로 이동" - }, - { - "ele": "$[0][3].statements[0][1].params[0].params[0]", - "answer": "32", - "points": 1.77, - "desc": "스페이스(32) 를 눌렀을 때" - }, - { - "ele": "$[0][3].statements[0][1].statements[0][0].params[0].params[0]", - "answer": "0.2", - "points": 1.77, - "desc": "0.2초 기다리기" - }, - { - "ele": "$[0][3].statements[0][1].statements[0][1].params[1].params[0]", - "answer": "-1", - "points": 1.77, - "desc": "변수에 -1" - }, - { - "type": "list", - "ele": [ - "$[0][3].statements[0][1].statements[0][2].params[0].params[0]", - "$[0][3].statements[0][1].statements[0][2].params[1]" - ], - "answer": [ - "0.5", - "mouse" - ], - "points": 1.77, - "desc": "0.5초 동안 마우스 좌표 위치로 이동" - }, - { - "type": "list", - "ele": [ - "$[0][3].statements[0][2].type", - "$[0][3].statements[0][2].params[0].type" - ], - "answer": [ - "_if", - "reach_something" - ], - "points": 1.77, - "desc": "if reach something" - }, - { - "ele": "$[0][3].statements[0][2].statements[0][0].params[1].params[0]", - "answer": "10", - "points": 1.77, - "desc": "변수에 10" - }, - { - "ele": "$[0][3].statements[0][2].statements[0][1].params[*].params", - "answer": [ - "성공!", - "0.5" - ], - "points": 1.77, - "desc": "dialog_time 시작!을 0.5초" - }, - { - "ele": "$[0][4].type", - "answer": "message_cast", - "points": 1.77, - "desc": "신호 보내기" - }, - { - "ele": "$[0][5].type", - "answer": "hide", - "points": 1.77, - "desc": "숨기기" - } - ] - }, - "3": { - "type": "script", - "ele": "$.objects[?name=~'하트'].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 1.77, - "desc": "시작하기 버튼을 눌렀을 때" - }, - { - "ele": "$[0][1].params[0].params[0]", - "answer": "50", - "points": 1.77, - "desc": "크기 지정" - }, - { - "ele": "$[0][2].params[0]", - "answer": "FRONT", - "points": 1.77, - "desc": "맨 앞으로 보내기" - }, - { - "ele": "$[0][3].params[0]", - "answer": null, - "points": 1.77, - "desc": "반복하기 (계속)" - }, - { - "type": "list", - "ele": [ - "$[0][3].statements[0][0].type", - "$[0][3].statements[0][0].params[0]" - ], - "answer": [ - "locate", - "mouse" - ], - "points": 1.77, - "desc": "마우스 위치로 이동" - }, - { - "ele": "$[1][0].type", - "answer": "when_message_cast", - "points": 1.77, - "desc": "신호를 받았을 때" - }, - { - "ele": "$[1][1].type", - "answer": "hide", - "points": 1.77, - "desc": "숨기기" - } - ] - }, - "4": { - "type": "script", - "ele": "$.objects[?(@.name=='토끼')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 1.77, - "desc": "시작하기 버튼을 눌렀을 때" - }, - { - "ele": "$[0][1].params[0].params[0]", - "answer": "90", - "points": 1.77, - "desc": "크기 지정" - }, - { - "ele": "$[0][2].params[*].params", - "answer": [ - "0", - "60" - ], - "points": 1.77, - "desc": "x:0, y:60 으로 이동" - }, - { - "type": "list", - "ele": [ - "$[0][3].params[0].params[?(@.type=='get_variable')].type", - "$[0][3].params[0].params[?(@=='LESS')]", - "$[0][3].params[0].params[?(@.type=='text')].params[0]" - ], - "answer": [ - "get_variable", - "LESS", - "1" - ], - "points": 1.77, - "desc": "변수가 1보다 클때까지 반복" - }, - { - "type": "list", - "ele": [ - "$[0][3].statements[0][*].params[0].params[0]", - "$[0][3].statements[0][*].params[1].params[*].params[0]", - "$[0][3].statements[0][*].params[2].params[0]" - ], - "answer": [ - "2", - "-200", - "200", - "60" - ], - "points": 1.77, - "desc": "2초 동안 무작위로 x:-200~200, y:60" - }, - { - "ele": "$[1][0].type", - "answer": "when_message_cast", - "points": 1.77, - "desc": "신호를 받았을 때" - }, - { - "ele": "$[1][1].params[*].params[0]", - "answer": [ - "2", - "0", - "0" - ], - "points": 1.77, - "desc": "2초 동안 x:0, y:0 좌표 이동" - }, - { - "ele": "$[1][2].params[0].params[0]", - "answer": "50", - "points": 1.77, - "desc": "크기 지정" - }, - { - "type": "list", - "ele": [ - "$[1][3].params[0].params[0].type", - "$[1][3].params[0].params[1]", - "$[1][3].params[0].params[2].params[0]", - "$[1][3].params[1].params[0]" - ], - "answer": [ - "get_variable", - "PLUS", - "점 입니다.", - "3" - ], - "points": 1.77, - "desc": "변수 + 점 입니다. 3초 동안 말하기" - }, - { - "ele": "$[1][4].params[0].params[0]", - "answer": "0.5", - "points": 1.77, - "desc": "0.5초 기다리기" - }, - { - "ele": "$[1][5].type", - "answer": "start_scene", - "points": 1.77, - "desc": "장면 전환" - } - ] - }, - "5": { - "type": "script", - "ele": "$.objects[?name=~'상자'].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 1.77, - "desc": "시작하기 버튼을 눌렀을 때" - }, - { - "ele": "$[*][1].params[0]", - "points": 1.77, - "answer": "FORWARD", - "desc": "물체 앞으로 보내기" - }, - { - "ele": "$[0][2].params[*].params", - "answer": [ - "0", - "-100" - ], - "points": 1.77, - "desc": "x:0, y:-100 으로 이동" - }, - { - "ele": "$[0][3].params[0].params[0]", - "points": 1.77, - "answer": "90", - "desc": "크기 지정" - }, - { - "ele": "$[0][4].params[*].params", - "answer": [ - "시작!", - "0.5" - ], - "points": 1.77, - "desc": "dialog_time 시작!을 0.5초" - }, - { - "ele": "$[1][0].type", - "answer": "when_message_cast", - "points": 1.77, - "desc": "신호를 받았을 때" - }, - { - "ele": "$[1][1].type", - "answer": "hide", - "points": 1.77, - "desc": "숨기기" - } - ] - }, - "6": { - "type": "script", - "ele": "$.objects[?(@.name=='숲속')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_scene_start", - "points": 1.77, - "desc": "시작하기 버튼을 눌렀을 때" - }, - { - "ele": "$[0][1].type", - "answer": "hide_variable", - "points": 1.77, - "desc": "변수 숨기기" - }, - { - "ele": "$[0][2].type", - "answer": "hide_variable", - "points": 1.77, - "desc": "변수 숨기기" - }, - { - "ele": "$[1][0].type", - "answer": "when_object_click", - "points": 2, - "desc": "오브젝트 클릭 시" - }, - { - "type": "list", - "ele": [ - "$[1][1].type", - "$[1][1].params[0]", - "$[1][1].params[1].params[0]" - ], - "answer": [ - "change_effect_amount", - "color", - "50" - ], - "points": 2, - "desc": "색깔 효과를 50으로 변경" - }, - { - "type": "list", - "ele": [ - "$[1][2].type", - "$[1][2].params[0].params[0]", - "$[1][2].params[1]" - ], - "answer": [ - "dialog", - "처음부터 다시 실행합니다.", - "speak" - ], - "points": 2, - "desc": "처음부터 다시 실행합니다. 를 말하기" - }, - { - "ele": "$[1][3].params[0].params[0]", - "answer": "2", - "points": 2, - "desc": "2초 기다리기" - }, - { - "ele": "$[1][4].type", - "answer": "restart_project", - "points": 2, - "desc": "처음부터 다시 시작하기" - } - ] - } -} \ No newline at end of file diff --git a/_scripts.json b/_scripts.json deleted file mode 100644 index a97b8a3..0000000 --- a/_scripts.json +++ /dev/null @@ -1,511 +0,0 @@ -[ - [ - { - "id": "vlyg", - "x": 50, - "y": 30, - "type": "when_run_button_click", - "params": [ - null - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - { - "id": "wqvc", - "x": 0, - "y": 0, - "type": "set_scale_size", - "params": [ - { - "id": "7qfb", - "x": 0, - "y": 0, - "type": "number", - "params": [ - "30" - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - null - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - { - "id": "kmdb", - "x": 0, - "y": 0, - "type": "locate_xy", - "params": [ - { - "id": "yry5", - "x": 0, - "y": 0, - "type": "number", - "params": [ - "-100" - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - { - "id": "g3wu", - "x": 0, - "y": 0, - "type": "number", - "params": [ - "-100" - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - null - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - { - "id": "wh5n", - "x": 0, - "y": 0, - "type": "dialog_time", - "params": [ - { - "id": "cga0", - "x": 0, - "y": 0, - "type": "text", - "params": [ - "야호! 출발!" - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - { - "id": "gihc", - "x": 0, - "y": 0, - "type": "number", - "params": [ - "1" - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - "speak", - null - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - } - ], - [ - { - "id": "mfln", - "x": 50, - "y": 168, - "type": "when_some_key_pressed", - "params": [ - null, - "49" - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - { - "id": "t3ej", - "x": 0, - "y": 0, - "type": "locate_object_time", - "params": [ - { - "id": "th0s", - "x": 0, - "y": 0, - "type": "number", - "params": [ - "2" - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - "meq4", - null - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - { - "id": "zakv", - "x": 0, - "y": 0, - "type": "hide", - "params": [ - null - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - { - "id": "f98n", - "x": 0, - "y": 0, - "type": "wait_second", - "params": [ - { - "id": "urh6", - "x": 0, - "y": 0, - "type": "number", - "params": [ - "1" - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - null - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - { - "id": "p4yn", - "x": 0, - "y": 0, - "type": "show", - "params": [ - null - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - } - ], - [ - { - "id": "hlnb", - "x": 50, - "y": 444, - "type": "when_some_key_pressed", - "params": [ - null, - "50" - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - { - "id": "smqv", - "x": 0, - "y": 0, - "type": "locate_object_time", - "params": [ - { - "id": "941e", - "x": 0, - "y": 0, - "type": "number", - "params": [ - "2" - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - "6kvc", - null - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - { - "id": "f8ez", - "x": 0, - "y": 0, - "type": "hide", - "params": [ - null - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - { - "id": "6ln4", - "x": 0, - "y": 0, - "type": "wait_second", - "params": [ - { - "id": "eihx", - "x": 0, - "y": 0, - "type": "number", - "params": [ - "1" - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - null - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - { - "id": "mism", - "x": 0, - "y": 0, - "type": "show", - "params": [ - null - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - } - ] - [ - { - "id": "edyx", - "x": 50, - "y": 334, - "type": "when_some_key_pressed", - "params": [ - null, - "51" - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - { - "id": "vjkb", - "x": 0, - "y": 0, - "type": "locate_object_time", - "params": [ - { - "id": "jwnn", - "x": 0, - "y": 0, - "type": "number", - "params": [ - "2" - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - "9200", - null - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - { - "id": "brfk", - "x": 0, - "y": 0, - "type": "dialog_time", - "params": [ - { - "id": "nun7", - "x": 0, - "y": 0, - "type": "text", - "params": [ - "다녀왔습니다!" - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - { - "id": "sriu", - "x": 0, - "y": 0, - "type": "number", - "params": [ - "1" - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - }, - "speak", - null - ], - "statements": [], - "movable": null, - "deletable": 1, - "emphasized": false, - "readOnly": null, - "copyable": true, - "assemble": true, - "extensions": [] - } - ] -] \ No newline at end of file diff --git a/correct/2401B.json b/correct/2401B.json deleted file mode 100644 index 9d5bff3..0000000 --- a/correct/2401B.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "1-1": { - "type": "scene", - "ele": "$.scenes[0].name", - "answer": "꽃밭", - "points": 1.7, - "desc": "장면 1 이름 변경" - }, - "1-2": { - "type": "scene", - "ele": "$.scenes[1].name", - "answer": "숲속", - "points": 1.7, - "desc": "장면 2 이름 변경" - }, - "1-3": { - "type": "scene", - "ele": "$..objects[?(@.name=='당근')]", - "points": 1.7, - "desc": "장면 2 이름 변경" - }, - "1-4": { - "type": "scene", - "ele": "$..objects[?(@.name=='하트')]", - "points": 1.7, - "desc": "장면 2 이름 변경" - }, - "2": { - "type": "script", - "ele": "$.objects[?(@.name=='미어캣')].script[*]", - "blocks": [ - { - "ele": "$[*][?(@.type=='when_run_button_click')]", - "points": 1.33, - "desc": "시작하기 버튼을 눌렀을 때" - }, - { - "ele": "$[*][?(@.type=='hide')]", - "points": 1.33, - "desc": "모양 숨기기 블럭" - }, - { - "ele": "$[*][?(@.type=='set_scale_size')].params[0].params[0]", - "answer": "60", - "points": 1.33, - "desc": "크기 60으로 설정" - }, - { - "ele": "$[*][?(@.type=='repeat_inf')]", - "points": 1.33, - "desc": "반복하기" - }, - { - "ele": "$[*][?(@.type=='repeat_inf')].statements[0][0].params[*].params[?(@.type=='number')].params", - "answer": [ - "-200", - "200", - "-100", - "100" - ], - "points": 1.33, - "desc": "x" - }, - { - "ele": "$[*][?(@.type=='repeat_inf')].statements[*][1].type", - "answer": "wait_second", - "points": 1.33, - "desc": "1초 기다리기" - }, - { - "ele": "$[*][?(@.type=='repeat_inf')].statements[*][2].type", - "answer": "show", - "points": 1.33, - "desc": "모양 보이기" - }, - { - "ele": "$[*][?(@.type=='repeat_inf')].statements[*][3].type", - "answer": "wait_second", - "points": 1.33, - "desc": "1초 기다리기" - }, - { - "ele": "$[*][?(@.type=='repeat_inf')].statements[*][4].type", - "answer": "hide", - "points": 1.33, - "desc": "모양 숨기기" - } - ] - } -} \ No newline at end of file diff --git a/correct/2502 CAT 2급 A형.json b/correct/2502 CAT 2급 A형.json deleted file mode 100644 index c495789..0000000 --- a/correct/2502 CAT 2급 A형.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "1-1": { - "type": "scene", - "ele": "$..objects[?(@.name=='들길')]", - "points": 1.7, - "desc": "배경 이름 변경" - }, - "1-2": { - "type": "scene", - "ele": "$..objects[?(@.name=='하늘')]", - "points": 1.7, - "desc": "배경 이름 변경" - }, - "1-3": { - "type": "scene", - "ele": "$..objects[?(@.name=='나무')]", - "points": 1.7, - "desc": "물체 이름 변경" - }, - "1-4": { - "type": "scene", - "ele": "$..objects[?(@.name=='돌')]", - "points": 1.7, - "desc": "물체 이름 변경" - }, - "1-5": { - "type": "scene", - "ele": "$..objects[?(@.name=='행인')]", - "points": 1.7, - "desc": "물체 이름 변경" - }, - "1-6": { - "type": "scene", - "ele": "$..objects[?(@.name=='마라토너')]", - "points": 1.7, - "desc": "물체 이름 변경" - }, - "2": { - "type": "script", - "ele": "$.objects[?(@.name=~'나무|나무(10)')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 1.6, - "desc": "시작하기 버튼을 눌렀을 때" - }, - { - "ele": "$[0][1].type", - "points": 1.6, - "answer": "hide", - "desc": "숨기기" - }, - { - "type": "list", - "ele": [ - "$[0][2].type", - "$[0][2].params[0]" - ], - "answer": [ - "repeat_inf", - null - ], - "points": 1.6, - "desc": "무한 반복" - }, - { - "type": "list", - "ele": [ - "$[0][2].statements[0][0].type", - "$[0][2].statements[0][0].params[0]" - ], - "answer": [ - "create_clone", - "self" - ], - "points": 1.6, - "desc": "clone self" - }, - { - "type": "list", - "ele": [ - "$[0][2].statements[0][1].type", - "$[0][2].statements[0][1].params[0].type", - "$[0][2].statements[0][1].params[0].params[1].params[0]", - "$[0][2].statements[0][1].params[0].params[3].params[0]" - ], - "answer": [ - "wait_second", - "calc_rand", - "1", - "3" - ], - "points": 1.6, - "desc": "wait random 1 betwwen 3 sec" - }, - { - "ele": "$[1][0].type", - "points": 1.6, - "answer": "when_clone_start", - "desc": "cloen start" - }, - { - "type": "list", - "ele": [ - "$[1][1].type", - "$[1][1].params[0].params[0]", - "$[1][1].params[1].params[0]" - ], - "answer": [ - "locate_xy", - "240", - "-20" - ], - "points": 1.6, - "desc": "변수가 1보다 클때까지 반복" - }, - { - "ele": "$[1][2].type", - "points": 1.6, - "answer": "show", - "desc": "show" - }, - { - "type": "list", - "ele": [ - "$[1][3].type", - "$[1][3].params[0].params[0].params[3]", - "$[1][3].params[0].params[1]", - "$[1][3].params[0].params[2].params[0]" - ], - "answer": [ - "repeat_while_true", - "x", - "LESS", - "-240" - ], - "points": 1.6, - "desc": "while object x pos less then -240" - }, - { - "type": "list", - "ele": [ - "$[1][3].statements[0][0].type", - "$[1][3].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_x", - "-3" - ], - "points": 1.6, - "desc": "move x pos -3" - }, - { - "ele": "$[1][4].type", - "points": 1.6, - "answer": "delete_clone", - "desc": "delete clone" - } - ] - }, - "3": { - "type": "script", - "ele": "$.objects[?(@.name=~'돌|바위(1)')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 1.6, - "desc": "시작하기 버튼을 눌렀을 때" - }, - { - "ele": "$[0][1].params[0].params[0]", - "answer": "30", - "points": 1.6, - "desc": "크기 지정" - }, - { - "ele": "$[0][2].type", - "points": 1.6, - "answer": "hide", - "desc": "숨기기" - }, - { - "type": "list", - "ele": [ - "$[0][3].type", - "$[0][3].params[0]" - ], - "answer": [ - "repeat_inf", - null - ], - "points": 1.6, - "desc": "무한 반복" - }, - { - "type": "list", - "ele": [ - "$[0][3].statements[0][0].type", - "$[0][3].statements[0][0].params[0]" - ], - "answer": [ - "create_clone", - "self" - ], - "points": 1.6, - "desc": "clone self" - }, - { - "type": "list", - "ele": [ - "$[0][3].statements[0][1].type", - "$[0][3].statements[0][1].params[0].type", - "$[0][3].statements[0][1].params[0].params[1].params[0]", - "$[0][3].statements[0][1].params[0].params[3].params[0]" - ], - "answer": [ - "wait_second", - "calc_rand", - "1.5", - "3" - ], - "points": 1.6, - "desc": "wait random 1.5 betwwen 3 sec" - }, - { - "ele": "$[1][0].type", - "points": 1.6, - "answer": "when_clone_start", - "desc": "cloen start" - }, - { - "type": "list", - "ele": [ - "$[1][1].type", - "$[1][1].params[0].params[0]", - "$[1][1].params[1].params[0]" - ], - "answer": [ - "locate_xy", - "240", - "-105" - ], - "points": 1.6, - "desc": "move location x:240, y:-105" - }, - { - "ele": "$[1][2].type", - "points": 1.6, - "answer": "show", - "desc": "show" - }, - { - "type": "list", - "ele": [ - "$[1][3].type", - "$[1][3].params[0].params[0].params[3]", - "$[1][3].params[0].params[1]", - "$[1][3].params[0].params[2].params[0]" - ], - "answer": [ - "repeat_while_true", - "x", - "LESS", - "-240" - ], - "points": 1.6, - "desc": "while object x pos less then -240" - }, - { - "type": "list", - "ele": [ - "$[1][3].statements[0][0].type", - "$[1][3].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_x", - "-3" - ], - "points": 1.6, - "desc": "move x pos -3" - }, - { - "ele": "$[1][4].type", - "points": 1.6, - "answer": "delete_clone", - "desc": "delete clone" - } - ] - }, - "4": { - "type": "script", - "ele": "$.objects[?(@.name=~'행인|가을 자전거를 타는 모습')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 1.6, - "desc": "시작하기 버튼을 눌렀을 때" - }, - { - "type": "list", - "ele": [ - "$[0][1].type", - "$[0][1].params[0].params[0]", - "$[0][1].params[1].params[0]" - ], - "answer": [ - "locate_xy", - "240", - "-30" - ], - "points": 1.6, - "desc": "move location x:240, y:-30" - }, - { - "type": "list", - "ele": [ - "$[0][2].type", - "$[0][2].params[0]" - ], - "answer": [ - "repeat_inf", - null - ], - "points": 1.6, - "desc": "무한 반복" - }, - { - "type": "list", - "ele": [ - "$[0][2].statements[0][0].type", - "$[0][2].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_direction", - "-1" - ], - "points": 1.6, - "desc": "무한 반복" - } - ] - }, - "28": { - "type": "scene", - "ele": "$.messages[?(@.name=='넘어짐')]", - "points": 1.6, - "desc": "시그널 작성 여부" - }, - "5": { - "type": "script", - "ele": "$.objects[?(@.name=~'마라토너|축구선수')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 1.6, - "desc": "시작하기 버튼을 눌렀을 때" - }, - { - "ele": "$[0][1].type", - "points": 1.6, - "answer": "flip_y", - "desc": "y axis flip" - }, - { - "type": "list", - "ele": [ - "$[0][2].type", - "$[0][2].params[0].params[0]", - "$[0][2].params[1].params[0]" - ], - "answer": [ - "locate_xy", - "-150", - "-70" - ], - "points": 1.6, - "desc": "move location x:240, y:-30" - }, - { - "type": "list", - "ele": [ - "$[0][3].type", - "$[0][3].params[0]" - ], - "answer": [ - "repeat_inf", - null - ], - "points": 1.6, - "desc": "무한 반복" - }, - { - "ele": "$[0][3].statements[0][0].params[0]", - "points": 1.6, - "answer": "next", - "desc": "change to next shape check value" - }, - { - "type": "list", - "ele": [ - "$[0][3].statements[0][1].type", - "$[0][3].statements[0][1].params[0].params[0]" - ], - "points": 1.6, - "answer": [ - "wait_second", - "0.1" - ], - "desc": "wait 0.1 second" - }, - { - "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]" - ], - "points": 1.6, - "answer": [ - "_if", - "is_press_some_key", - "32" - ], - "desc": "if press space key" - }, - { - "type": "list", - "ele": [ - "$[0][3].statements[0][2].statements[0][0].type", - "$[0][3].statements[0][2].statements[0][0].params[0].params[0]" - ], - "points": 1.6, - "answer": [ - "repeat_basic", - "20" - ], - "desc": "while 20" - }, - { - "type": "list", - "ele": [ - "$[0][3].statements[0][2].statements[0][0].statements[0][0].type", - "$[0][3].statements[0][2].statements[0][0].statements[0][0].params[0].params[0]" - ], - "points": 1.6, - "answer": [ - "move_y", - "5" - ], - "desc": "y pos move 5" - }, - { - "type": "list", - "ele": [ - "$[0][3].statements[0][2].statements[0][1].type", - "$[0][3].statements[0][2].statements[0][1].params[0].params[0]" - ], - "points": 1.6, - "answer": [ - "repeat_basic", - "20" - ], - "desc": "while 20" - }, - { - "type": "list", - "ele": [ - "$[0][3].statements[0][2].statements[0][1].statements[0][0].type", - "$[0][3].statements[0][2].statements[0][1].statements[0][0].params[0].params[0]" - ], - "points": 1.6, - "answer": [ - "move_y", - "-5" - ], - "desc": "y pos move -5" - }, - { - "type": "list", - "ele": [ - "$[0][3].statements[0][3].type", - "$[0][3].statements[0][3].params[0].type" - ], - "points": 1.6, - "answer": [ - "_if", - "reach_something" - ], - "desc": "if reach object" - }, - { - "ele": "$[0][3].statements[0][3].statements[0][0].type", - "points": 1.6, - "answer": "message_cast", - "desc": "신호 보내기" - }, - { - "ele": "$[1][0].type", - "answer": "when_message_cast", - "points": 1.6, - "desc": "신호를 받았을 때" - }, - { - "type": "list", - "ele": [ - "$[1][1].type", - "$[1][1].params[0].type", - "$[1][1].params[0].params[0]" - ], - "points": 1.6, - "answer": [ - "rotate_relative", - "angle", - "40" - ], - "desc": "rotate angle 40" - }, - { - "type": "list", - "ele": [ - "$[1][2].type", - "$[1][2].params[0].params[0]", - "$[1][2].params[1].params[0]", - "$[1][2].params[2].params[0]" - ], - "points": 1.6, - "answer": [ - "locate_xy_time", - "0.2", - "-140", - "-100" - ], - "desc": "locate x: -140, y:-100 during 0.2 sec " - }, - { - "type": "list", - "ele": [ - "$[1][3].type", - "$[1][3].params[0].params[0]", - "$[1][3].params[1]" - ], - "answer": [ - "dialog", - "아야!", - "speak" - ], - "points": 1.6, - "desc": "아야! speak" - }, - { - "type": "list", - "ele": [ - "$[1][4].type", - "$[1][4].params[0]" - ], - "answer": [ - "stop_object", - "otherThread" - ], - "points": 1.6, - "desc": "object other code stop" - }, - { - "type": "list", - "ele": [ - "$[1][5].type", - "$[1][5].params[0].params[0]" - ], - "points": 1.6, - "answer": [ - "wait_second", - "1" - ], - "desc": "wait 1 second" - }, - { - "ele": "$[1][6].type", - "answer": "start_neighbor_scene", - "points": 1.6, - "desc": "next scene start" - } - ] - }, - "6": { - "type": "script", - "ele": "$.objects[?(@.name=~'하늘|날씨')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_scene_start", - "points": 1.6, - "desc": "scene start" - }, - { - "type": "list", - "ele": [ - "$[0][1].type", - "$[0][1].params[0].params[0]", - "$[0][1].params[1]" - ], - "answer": [ - "dialog", - "아쉽지만 잘했어!", - "speak" - ], - "points": 1.6, - "desc": "말하기" - }, - { - "ele": "$[1][0].type", - "answer": "when_object_click", - "points": 1.6, - "desc": "오브젝트 클릭 시" - }, - { - "type": "list", - "ele": [ - "$[1][1].type", - "$[1][1].params[0]", - "$[1][1].params[1].params[0]" - ], - "answer": [ - "add_effect_amount", - "brightness", - "55" - ], - "points": 1.6, - "desc": "add brightness 55 effect" - }, - { - "type": "list", - "ele": [ - "$[1][2].type", - "$[1][2].params[0].params[0]", - "$[1][2].params[1]" - ], - "answer": [ - "dialog", - "처음부터 다시 실행합니다.", - "speak" - ], - "points": 1.6, - "desc": "말하기" - }, - { - "type": "list", - "ele": [ - "$[1][3].type", - "$[1][3].params[0].params[0]" - ], - "points": 1.6, - "answer": [ - "wait_second", - "2" - ], - "desc": "wait 2 second" - }, - { - "ele": "$[1][4].type", - "answer": "restart_project", - "points": 1.6, - "desc": "restart" - } - ] - } -} \ No newline at end of file diff --git a/correct/2502회 CAT 3급 B형 수시2.json b/correct/2502회 CAT 3급 B형 수시2.json deleted file mode 100644 index 087071f..0000000 --- a/correct/2502회 CAT 3급 B형 수시2.json +++ /dev/null @@ -1,370 +0,0 @@ -{ - "1-1": { - "type": "scene", - "ele": "$..objects[?(@.name=='꽃밭')]", - "points": 2, - "desc": "배경 이름 변경" - }, - "1-3": { - "type": "scene", - "ele": "$..objects[?(@.name=='당근')]", - "points": 2, - "desc": "물체 이름 변경" - }, - "1-4": { - "type": "scene", - "ele": "$..objects[?(@.name=='하트')]", - "points": 2, - "desc": "물체 이름 변경" - }, - "1-5": { - "type": "scene", - "ele": "$..objects[?(@.name=='토끼')]", - "points": 2, - "desc": "물체 이름 변경" - }, - "1-6": { - "type": "scene", - "ele": "$..objects[?(@.name=='상자')]", - "points": 2, - "desc": "물체 이름 변경" - }, - "2": { - "type": "script", - "ele": "$.objects[?(@.name=='당근')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 2.57, - "desc": "시작하기 버튼을 눌렀을 때" - }, - { - "ele": "$[0][1].params[0].params[0]", - "points": 2.57, - "answer": "45", - "desc": "크기 지정" - }, - { - "ele": "$[0][2]['params']", - "points": 2.57, - "answer": [ - "FORWARD", - null - ], - "desc": "물체 앞으로 보내기" - }, - { - "ele": "$[0][3].type", - "points": 2.57, - "answer": "hide", - "desc": "숨기기" - }, - { - "ele": "$[0][4].params[0]", - "answer": null, - "points": 2.57, - "desc": "반복하기 (계속)" - }, - { - "ele": "$[0][4].statements[0][?@.type=='locate_xy'].params[*].params", - "answer": [ - "0", - "-100" - ], - "points": 2.57, - "desc": "x:0, y:-100 으로 이동" - }, - { - "ele": "$[0][4].statements[0][1].type", - "points": 2.57, - "answer": "show", - "desc": "모양보이기" - }, - { - "ele": "$[0][4].statements[0][2].params[0].params[0]", - "answer": "32", - "points": 2.57, - "desc": "스페이스(32) 를 눌렀을 때" - }, - { - "ele": "$[0][4].statements[0][2].statements[0][0].params[0].params[0]", - "answer": "0.2", - "points": 2.57, - "desc": "0.2초 기다리기" - }, - { - "type": "list", - "ele": [ - "$[0][4].statements[0][2].statements[0][1].params[0].params[0]", - "$[0][4].statements[0][2].statements[0][1].params[1]" - ], - "answer": [ - "0.5", - "mouse" - ], - "points": 2.57, - "desc": "0.5초 동안 마우스 좌표 위치로 이동" - }, - { - "type": "list", - "ele": [ - "$[0][4].statements[0][3].type", - "$[0][4].statements[0][3].params[0].type" - ], - "answer": [ - "_if", - "reach_something" - ], - "points": 2.57, - "desc": "if reach something" - }, - { - "ele": "$[0][4].statements[0][3].statements[0][0].params[*].params", - "answer": [ - "냠냠!", - "0.5" - ], - "points": 2.57, - "desc": "dialog_time 냠냠!을 0.5초" - }, - { - "type": "list", - "ele": [ - "$[0][4].statements[0][4].type", - "$[0][4].statements[0][4].params[0].type", - "$[0][4].statements[0][4].params[0].params[1]" - ], - "answer": [ - "_if", - "reach_something", - "wall" - ], - "points": 2.57, - "desc": "if reach something wall" - }, - { - "type": "list", - "ele": [ - "$[0][4].statements[0][4].statements[0][0].type", - "$[0][4].statements[0][4].statements[0][0].params[0]" - ], - "answer": [ - "stop_object", - "all" - ], - "points": 2.57, - "desc": "모든 오브젝트 정지" - } - ] - }, - "3": { - "type": "script", - "ele": "$.objects[?name=~'하트'].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 2.57, - "desc": "시작하기 버튼을 눌렀을 때" - }, - { - "ele": "$[0][1].params[0].params[0]", - "answer": "50", - "points": 2.57, - "desc": "크기 지정" - }, - { - "ele": "$[0][2].params[0]", - "answer": "FRONT", - "points": 2.57, - "desc": "맨 앞으로 보내기" - }, - { - "ele": "$[0][3].params[0]", - "answer": null, - "points": 2.57, - "desc": "반복하기 (계속)" - }, - { - "type": "list", - "ele": [ - "$[0][3].statements[0][0].type", - "$[0][3].statements[0][0].params[0]" - ], - "answer": [ - "locate", - "mouse" - ], - "points": 2.57, - "desc": "마우스 위치로 이동" - }, - { - "type": "list", - "ele": [ - "$[0][3].statements[0][1].type", - "$[0][3].statements[0][1].params[0]", - "$[0][3].statements[0][1].params[1].params[0]" - ], - "answer": [ - "add_effect_amount", - "color", - "0.5" - ], - "points": 2.57, - "desc": "Add Color effect 0.5 duration" - } - ] - }, - "4": { - "type": "script", - "ele": "$.objects[?(@.name=='토끼')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 2.57, - "desc": "시작하기 버튼을 눌렀을 때" - }, - { - "ele": "$[0][1].params[0].params[0]", - "answer": "90", - "points": 2.57, - "desc": "크기 지정" - }, - { - "ele": "$[0][2].params[*].params", - "answer": [ - "0", - "60" - ], - "points": 2.57, - "desc": "x:0, y:60 으로 이동" - }, - { - "ele": "$[0][3].params[0]", - "answer": null, - "points": 2.57, - "desc": "계속 반복하기" - }, - { - "type": "list", - "ele": [ - "$[0][3].statements[0][0].params[0].params[0]", - "$[0][3].statements[0][0].params[1].params[*].params[0]", - "$[0][3].statements[0][0].params[2].params[0]" - ], - "answer": [ - "2", - "-200", - "200", - "60" - ], - "points": 2.57, - "desc": "2초 동안 무작위로 x:-200~200, y:60" - }, - { - "type": "list", - "ele": [ - "$[0][3].statements[0][1].type", - "$[0][3].statements[0][1].params[0].type" - ], - "answer": [ - "_if", - "reach_something" - ], - "points": 2.57, - "desc": "if reach something" - }, - { - "ele": "$[0][3].statements[0][1].statements[0][0].params[0].params[0]", - "answer": "10", - "points": 2.57, - "desc": "크기 지정" - }, - { - "type": "list", - "ele": [ - "$[0][3].statements[0][1].statements[0][1].type", - "$[0][3].statements[0][1].statements[0][1].params[0].params[0].type", - "$[0][3].statements[0][1].statements[0][1].params[0].params[0].params[3]", - "$[0][3].statements[0][1].statements[0][1].params[0].params[1]", - "$[0][3].statements[0][1].statements[0][1].params[0].params[2].params[0]" - ], - "answer": [ - "_if", - "coordinate_object", - "size", - "EQUAL", - "120" - ], - "points": 2.57, - "desc": "비교 오브젝트의 크기가 120과 같을 때" - }, - { - "ele": "$[0][3].statements[0][1].statements[0][1].statements[0][0].params[*].params", - "answer": [ - "미션 성공!", - "2" - ], - "points": 2.57, - "desc": "dialog_time 미션 성공!을 2초" - }, - { - "type": "list", - "ele": [ - "$[0][3].statements[0][1].statements[0][1].statements[0][1].type", - "$[0][3].statements[0][1].statements[0][1].statements[0][1].params[0]" - ], - "answer": [ - "stop_object", - "all" - ], - "points": 2.57, - "desc": "모든 오브젝트 정지" - } - ] - }, - "5": { - "type": "script", - "ele": "$.objects[?name=~'상자'].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 2.57, - "desc": "시작하기 버튼을 눌렀을 때" - }, - { - "ele": "$[0][1].params[0]", - "points": 2.57, - "answer": "FORWARD", - "desc": "물체 앞으로 보내기" - }, - { - "ele": "$[0][2].params[*].params", - "answer": [ - "0", - "-100" - ], - "points": 2.57, - "desc": "x:0, y:-100 으로 이동" - }, - { - "ele": "$[0][3].params[0].params[0]", - "points": 2.57, - "answer": "90", - "desc": "크기 지정" - }, - { - "ele": "$[0][4].params[*].params", - "answer": [ - "시작!", - "0.5" - ], - "points": 2.57, - "desc": "dialog_time 시작!을 0.5초" - } - ] - } -} \ No newline at end of file diff --git a/correct/2503 CAT 3급 A형.json b/correct/2503 CAT 3급 A형.json deleted file mode 100644 index dd7b4e4..0000000 --- a/correct/2503 CAT 3급 A형.json +++ /dev/null @@ -1,382 +0,0 @@ -{ - "1-1": { - "type": "scene", - "ele": "$..objects[?(@.name=='약도')]", - "points": 2, - "desc": "배경 이름 변경" - }, - "1-3": { - "type": "scene", - "ele": "$..objects[?(@.name=='놀이동산')]", - "points": 2, - "desc": "물체 이름 변경" - }, - "1-4": { - "type": "scene", - "ele": "$..objects[?(@.name=='백화점')]", - "points": 2, - "desc": "물체 이름 변경" - }, - "1-5": { - "type": "scene", - "ele": "$..objects[?(@.name=='우리집')]", - "points": 2, - "desc": "물체 이름 변경" - }, - "1-6": { - "type": "scene", - "ele": "$..objects[?(@.name=='어린이')]", - "points": 2, - "desc": "물체 이름 변경" - }, - "2": { - "type": "script", - "ele": "$.objects[?(@.name=~'놀이동산')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 2.43, - "desc": "시작하기 버튼을 눌렀을 때" - }, - { - "ele": "$[0][1].params[0].params[0]", - "points": 2.43, - "answer": "90", - "desc": "크기 지정" - }, - { - "ele": "$[0][2].params[*].params", - "answer": [ - "-25", - "60" - ], - "points": 2.43, - "desc": "x:-25, y:60 으로 이동" - }, - { - "ele": "$[1][0].params", - "points": 2.43, - "answer": [ - null, - "49" - ], - "desc": "키보드 눌렀을 때" - }, - { - "type": "list", - "ele": [ - "$[1][1].type", - "$[1][1].params[0]", - "$[1][1].params[1].params[0]" - ], - "answer": [ - "add_effect_amount", - "color", - "30" - ], - "points": 2.43, - "desc": "Add Color effect 30 duration" - }, - { - "ele": "$[1][2].params[*].params", - "answer": [ - "여기는 놀이동산!", - "1" - ], - "points": 2.43, - "desc": "dialog_time 여기는 놀이동산 1초 " - }, - { - "ele": "$[1][3].type", - "answer": "erase_all_effects", - "points": 2.43, - "desc": "효과 모두 삭제하기" - } - ] - }, - "3": { - "type": "script", - "ele": "$.objects[?(@.name=~'백화점|건물')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 2.43, - "desc": "시작하기 버튼을 눌렀을 때" - }, - { - "ele": "$[0][1].params[0].params[0]", - "points": 2.43, - "answer": "50", - "desc": "크기 지정" - }, - { - "ele": "$[0][2].params[*].params", - "answer": [ - "180", - "50" - ], - "points": 2.43, - "desc": "x:-25, y:60 으로 이동" - }, - { - "ele": "$[1][0].params", - "points": 2.43, - "answer": [ - null, - "50" - ], - "desc": "키보드 눌렀을 때" - }, - { - "type": "list", - "ele": [ - "$[1][1].type", - "$[1][1].params[0]", - "$[1][1].params[1].params[0]" - ], - "answer": [ - "add_effect_amount", - "color", - "40" - ], - "points": 2.43, - "desc": "Add Color effect 30 duration" - }, - { - "ele": "$[1][2].params[*].params", - "answer": [ - "여기는 백화점!", - "1" - ], - "points": 2.43, - "desc": "dialog_time 여기는 놀이동산 1초 " - }, - { - "ele": "$[1][3].type", - "answer": "erase_all_effects", - "points": 2.43, - "desc": "효과 모두 삭제하기" - } - ] - }, - "4": { - "type": "script", - "ele": "$.objects[?(@.name=~'우리집|예쁜집')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 2.43, - "desc": "시작하기 버튼을 눌렀을 때" - }, - { - "ele": "$[0][1].params[0].params[0]", - "points": 2.43, - "answer": "60", - "desc": "크기 지정" - }, - { - "ele": "$[0][2].params[*].params", - "answer": [ - "-190", - "-90" - ], - "points": 2.43, - "desc": "x:-25, y:60 으로 이동" - }, - { - "ele": "$[1][0].params", - "points": 2.43, - "answer": [ - null, - "51" - ], - "desc": "키보드 눌렀을 때" - }, - { - "type": "list", - "ele": [ - "$[1][1].type", - "$[1][1].params[0]", - "$[1][1].params[1].params[0]" - ], - "answer": [ - "add_effect_amount", - "color", - "35" - ], - "points": 2.43, - "desc": "Add Color effect 30 duration" - }, - { - "ele": "$[1][2].type", - "answer": "erase_all_effects", - "points": 2.43, - "desc": "효과 모두 삭제하기" - } - ] - }, - "5": { - "type": "script", - "ele": "$.objects[?name=~'어린이'].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 2.43, - "desc": "시작하기 버튼을 눌렀을 때" - }, - { - "ele": "$[0][1].params[0].params[0]", - "points": 2.57, - "answer": "30", - "desc": "크기 지정" - }, - { - "ele": "$[0][2].params[*].params", - "answer": [ - "-100", - "-100" - ], - "points": 2.43, - "desc": "x:-25, y:60 으로 이동" - }, - { - "ele": "$[0][3].params[*].params", - "answer": [ - "야호! 출발!", - "1" - ], - "points": 2.43, - "desc": "dialog_time 여기는 놀이동산 1초 " - }, - { - "ele": "$[1][0].params", - "points": 2.43, - "answer": [ - null, - "49" - ], - "desc": "키보드 눌렀을 때" - }, - { - "type": "list", - "ele": [ - "$[1][1].type", - "$[1][1].params[0].params[0]" - ], - "answer": [ - "locate_object_time", - "2" - ], - "points": 2.43, - "desc": "Locate Object 2 sec" - }, - { - "ele": "$[1][2].type", - "points": 2.43, - "answer": "hide", - "desc": "숨기기" - }, - { - "type": "list", - "ele": [ - "$[1][3].type", - "$[1][3].params[0].params[0]" - ], - "points": 2.43, - "answer": [ - "wait_second", - "1" - ], - "desc": "wait second" - }, - { - "ele": "$[1][4].type", - "points": 2.43, - "answer": "show", - "desc": "보이기" - }, - { - "ele": "$[2][0].params", - "points": 2.43, - "answer": [ - null, - "50" - ], - "desc": "키보드 눌렀을 때" - }, - { - "type": "list", - "ele": [ - "$[2][1].type", - "$[2][1].params[0].params[0]" - ], - "answer": [ - "locate_object_time", - "2" - ], - "points": 2.43, - "desc": "Locate Object 2 sec" - }, - { - "ele": "$[2][2].type", - "points": 2.43, - "answer": "hide", - "desc": "숨기기" - }, - { - "type": "list", - "ele": [ - "$[2][3].type", - "$[2][3].params[0].params[0]" - ], - "points": 2.43, - "answer": [ - "wait_second", - "1" - ], - "desc": "wait second" - }, - { - "ele": "$[2][4].type", - "points": 2.43, - "answer": "show", - "desc": "보이기" - }, - { - "ele": "$[3][0].params", - "points": 2.43, - "answer": [ - null, - "51" - ], - "desc": "키보드 눌렀을 때" - }, - { - "type": "list", - "ele": [ - "$[3][1].type", - "$[3][1].params[0].params[0]" - ], - "answer": [ - "locate_object_time", - "2" - ], - "points": 2.43, - "desc": "Locate Object 2 sec" - }, - { - "ele": "$[3][2].params[*].params", - "answer": [ - "다녀왔습니다!", - "1" - ], - "points": 2.43, - "desc": "dialog_time 여기는 놀이동산 1초 " - } - ] - } -} \ No newline at end of file diff --git a/correct/2504CAS2A.json b/correct/2504CAS2A.json deleted file mode 100644 index 8879b56..0000000 --- a/correct/2504CAS2A.json +++ /dev/null @@ -1,656 +0,0 @@ -{ - "1-1": { - "type": "scene", - "ele": "$..objects[?(@.name=='약도')]", - "points": 1.7, - "desc": "문제 1/장면 1/[배경] 이름 설정 1/이름 변경 없음" - }, - "1-2": { - "type": "scene", - "ele": "$..objects[?(@.name=='나의 방')]", - "points": 1.7, - "desc": "문제 1/장면 2/[배경] 이름 설정 2/이름을 '나의 방'으로 변경하기" - }, - "1-3": { - "type": "scene", - "ele": "$..objects[?(@.name=='놀이동산')]", - "points": 1.7, - "desc": "문제 1/놀이동산(1)/[개체] 이름 설정 1/이름을 '놀이동산'으로 변경하기" - }, - "1-4": { - "type": "scene", - "ele": "$..objects[?(@.name=='백화점')]", - "points": 1.7, - "desc": "문제 1/건물(6)/[개체] 이름 설정 2/이름을 '백화점'으로 변경하기" - }, - "1-5": { - "type": "scene", - "ele": "$..objects[?(@.name=='우리집')]", - "points": 1.7, - "desc": "문제 1/예쁜집/[개체] 이름 설정 3/이름을 '우리집'으로 변경하기" - }, - "1-6": { - "type": "scene", - "ele": "$..objects[?(@.name=='어린이')]", - "points": 1.7, - "desc": "문제 1/어린이(2)/[개체] 이름 설정 4/이름을 '어린이'로 변경하기" - }, - "2": { - "type": "script", - "ele": "$.objects[?(@.name=~'놀이동산')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 1.56, - "desc": "문제2/놀이동산/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": "$[0][1].params[0].params[0]", - "answer": "100", - "points": 1.56, - "desc": "문제2/놀이동산/[시작]의 세부 동작 1/크기를 '100' 으로 정하기" - }, - { - "ele": [ - "$[0][2].type", - "$[0][2].params[0].params[0]", - "$[0][2].params[1].params[0]" - ], - "answer": [ - "locate_xy", - "-25", - "80" - ], - "points": 1.56, - "desc": "문제2/놀이동산/[시작]의 세부 동작 2/x: '-25' y: '80' 위치로 이동하기", - "type": "list" - }, - { - "ele": "$[1][0].type", - "answer": "when_object_click", - "points": 1.56, - "desc": "문제2/놀이동산/오브젝트/오브젝트를 클릭했을 때" - }, - { - "ele": "$[1][1].params[*].params", - "answer": [ - "여기는 놀이동산!", - "1" - ], - "points": 1.56, - "desc": "문제2/놀이동산/[오브젝트]의 세부 동작/'여기는 놀이동산!' 을 '1' 초 동안 '말하기'" - } - ] - }, - "3": { - "type": "script", - "ele": "$.objects[?(@.name=~'화점|건물')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 1.56, - "desc": "문제2/백화점/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": "$[0][1].params[0].params[0]", - "answer": "80", - "points": 1.56, - "desc": "문제2/백화점/[시작]의 세부 동작 1/크기를 '80' 으로 정하기" - }, - { - "ele": [ - "$[0][2].type", - "$[0][2].params[0].params[0]", - "$[0][2].params[1].params[0]" - ], - "answer": [ - "locate_xy", - "170", - "-80" - ], - "points": 1.56, - "desc": "문제2/백화점/[시작]의 세부 동작 2/x: '170' y: '-80' 위치로 이동하기", - "type": "list" - }, - { - "ele": "$[1][0].type", - "answer": "when_object_click", - "points": 1.56, - "desc": "문제2/백화점/오브젝트/오브젝트를 클릭했을 때" - }, - { - "ele": "$[1][1].params[*].params", - "answer": [ - "여기는 백화점!", - "1" - ], - "points": 1.56, - "desc": "문제2/백화점/[오브젝트]의 세부 동작/'여기는 백화점!' 을 '1' 초 동안 '말하기'" - } - ] - }, - "31": { - "type": "scene", - "ele": "$.messages[?(@.name=='놀이동산')]", - "points": 1.56, - "desc": "시그널 작성 여부" - }, - "32": { - "type": "scene", - "ele": "$.messages[?(@.name=='백화점')]", - "points": 1.56, - "desc": "시그널 작성 여부" - }, - "4": { - "type": "script", - "ele": "$.objects[?(@.name=~'우리집|예쁜')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 1.56, - "desc": "문제2/우리집/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": "$[0][1].params[0].params[0]", - "answer": "110", - "points": 1.56, - "desc": "문제2/우리집/[시작]의 세부 동작 1/크기를 '110' 으로 정하기 " - }, - { - "ele": [ - "$[0][2].type", - "$[0][2].params[0].params[0]", - "$[0][2].params[1].params[0]" - ], - "answer": [ - "locate_xy", - "-170", - "-90" - ], - "points": 1.56, - "desc": "문제2/우리집/[시작]의 세부 동작 2/x: '-170' y: '-90' 위치로 이동하기", - "type": "list" - }, - { - "ele": "$[1][0].type", - "answer": "when_object_click", - "points": 1.56, - "desc": "문제2/우리집/오브젝트/오브젝트를 클릭했을 때" - }, - { - "ele": [ - "$[1][1].type", - "$[1][1].params[0].params[0]" - ], - "answer": [ - "ask_and_wait", - "첫 번째로 방문할 장소는?" - ], - "points": 1.56, - "desc": "문제2/우리집/[오브젝트]의 세부 동작 1/'첫 번째로 방문할 장소는?' 을 묻고 대답 기다리기", - "type": "list" - }, - { - "ele": [ - "$[1][2].type", - "$[1][2].params[0].params[0]" - ], - "answer": [ - "wait_second", - "0.5" - ], - "points": 1.56, - "desc": "문제2/우리집/[오브젝트]의 세부 동작 2/'0.5' 초 기다리기", - "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_canvas_input_value", - "EQUAL", - "놀이동산" - ], - "points": 1.56, - "desc": "문제2/우리집/만일 1/만일 '대답' = '놀이동산' 이라면 ", - "type": "list" - }, - { - "ele": "$[1][3].statements[0][0].type", - "answer": "message_cast", - "points": 1.56, - "desc": "문제2/우리집/[만일 1]의 세부 동작/'놀이동산' 신호 보내기" - }, - { - "ele": [ - "$[1][4].type", - "$[1][4].params[0].type", - "$[1][4].params[0].params[0].type", - "$[1][4].params[0].params[1]", - "$[1][4].params[0].params[2].params[0]" - ], - "answer": [ - "_if", - "boolean_basic_operator", - "get_canvas_input_value", - "EQUAL", - "백화점" - ], - "points": 1.56, - "desc": "문제2/우리집/만일 2/만일 '대답' = '백화점' 이라면 ", - "type": "list" - }, - { - "ele": "$[1][4].statements[0][0].type", - "answer": "message_cast", - "points": 1.56, - "desc": "문제2/우리집/[만일 2]의 세부 동작/'백화점' 신호 보내기" - } - ] - }, - "5": { - "type": "script", - "ele": "$.objects[?(@.name=~'어린이')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 1.56, - "desc": "문제2/어린이/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": "$[0][1].params[0].params[0]", - "answer": "40", - "points": 1.56, - "desc": "문제2/어린이/[시작]의 세부 동작 1/크기를 '40' 으로 정하기 " - }, - { - "ele": [ - "$[0][2].type", - "$[0][2].params[0].params[0]", - "$[0][2].params[1].params[0]" - ], - "answer": [ - "locate_xy", - "-170", - "-100" - ], - "points": 1.56, - "desc": "문제2/어린이/[시작]의 세부 동작 2/x: '-170' y: '-100' 위치로 이동하기", - "type": "list" - }, - { - "ele": [ - "$[0][3].type", - "$[0][3].params[0]" - ], - "answer": [ - "repeat_inf", - null - ], - "points": 1.56, - "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]" - ], - "answer": [ - "_if", - "is_press_some_key", - "39" - ], - "points": 1.56, - "desc": "문제2/어린이/만일/만일 '오른쪽 화살표' 키가 눌러져 있는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][0].statements[0][0].type", - "$[0][3].statements[0][0].statements[0][0].params[0].params[0]", - "$[0][3].statements[0][0].statements[0][0].params[1].params[0]" - ], - "answer": [ - "locate_xy", - "-90", - "-100" - ], - "points": 1.56, - "desc": "문제2/어린이/[만일]의 세부 동작/x: '-90' y: '-100' 위치로 이동하기", - "type": "list" - }, - { - "ele": "$[1][0].type", - "answer": "when_message_cast", - "points": 1.56, - "desc": "문제2/어린이/신호 1/'놀이동산' 신호를 받았을 때" - }, - { - "ele": [ - "$[1][1].type" - ], - "answer": [ - "repeat_while_true" - ], - "points": 1.56, - "desc": "문제2/어린이/반복 1/'놀이동산' 에 닿았는가? '이 될 때까지' 반복하기", - "type": "list" - }, - { - "ele": [ - "$[1][1].statements[0][0].type", - "$[1][1].statements[0][0].params[0].params[0]" - ], - "answer": [ - "locate_object_time", - "2" - ], - "points": 1.56, - "desc": "문제2/어린이/[반복 1]의 세부 동작 1/'2' 초 동안 '놀이동산' 위치로 이동하기", - "type": "list" - }, - { - "ele": [ - "$[1][1].statements[0][1].type", - "$[1][1].statements[0][1].params[0].params[0]" - ], - "answer": [ - "wait_second", - "0.5" - ], - "points": 1.56, - "desc": "문제2/어린이/[반복 1]의 세부 동작 2/'0.5' 초 기다리기", - "type": "list" - }, - { - "ele": [ - "$[1][2].type" - ], - "answer": [ - "repeat_while_true" - ], - "points": 1.56, - "desc": "문제2/어린이/반복 2/'백화점' 에 닿았는가? '이 될 때까지' 반복하기", - "type": "list" - }, - { - "ele": [ - "$[1][2].statements[0][0].type", - "$[1][2].statements[0][0].params[0].params[0]" - ], - "answer": [ - "locate_object_time", - "2" - ], - "points": 1.56, - "desc": "문제2/어린이/[반복 2]의 세부 동작 1/'2' 초 동안 '백화점' 위치로 이동하기", - "type": "list" - }, - { - "ele": [ - "$[1][2].statements[0][1].type", - "$[1][2].statements[0][1].params[0].params[0]" - ], - "answer": [ - "wait_second", - "1" - ], - "points": 1.56, - "desc": "문제2/어린이/[반복 2]의 세부 동작 2/'1' 초 기다리기", - "type": "list" - }, - { - "ele": [ - "$[1][3].type", - "$[1][3].params[0].params[0]", - "$[1][3].params[1].params[0]", - "$[1][3].params[2].params[0]" - ], - "answer": [ - "locate_xy_time", - "2", - "-120", - "-100" - ], - "points": 1.56, - "desc": "문제2/어린이/[신호 1]의 세부 동작 1/'2' 초 동안 x: '-120' y: '-100' 위치로 이동하기", - "type": "list" - }, - { - "ele": "$[1][4].params[*].params", - "answer": [ - "집 도착!", - "1" - ], - "points": 1.56, - "desc": "문제2/어린이/[신호 1]의 세부 동작 2/'집 도착!' 을 '1' 초 동안 '말하기'" - }, - { - "ele": "$[1][5].type", - "answer": "start_neighbor_scene", - "points": 1.56, - "desc": "문제2/어린이/[신호 1]의 세부 동작 3/'다음' 장면 시작하기" - }, - { - "ele": "$[2][0].type", - "answer": "when_message_cast", - "points": 1.56, - "desc": "문제2/어린이/신호 2/'백화점' 신호를 받았을 때" - }, - { - "ele": [ - "$[2][1].type" - ], - "answer": [ - "repeat_while_true" - ], - "points": 1.56, - "desc": "문제2/어린이/반복 1/'백화점' 에 닿았는가? '이 될 때까지' 반복하기", - "type": "list" - }, - { - "ele": [ - "$[2][1].statements[0][0].type", - "$[2][1].statements[0][0].params[0].params[0]" - ], - "answer": [ - "locate_object_time", - "2" - ], - "points": 1.56, - "desc": "문제2/어린이/[반복 1]의 세부 동작 1/'2' 초 동안 '백화점' 위치로 이동하기", - "type": "list" - }, - { - "ele": [ - "$[2][1].statements[0][1].type", - "$[2][1].statements[0][1].params[0].params[0]" - ], - "answer": [ - "wait_second", - "0.5" - ], - "points": 1.56, - "desc": "문제2/어린이/[반복 1]의 세부 동작 2/'0.5' 초 기다리기", - "type": "list" - }, - { - "ele": [ - "$[2][2].type" - ], - "answer": [ - "repeat_while_true" - ], - "points": 1.56, - "desc": "문제2/어린이/반복 2/'놀이동산' 에 닿았는가? '이 될 때까지' 반복하기", - "type": "list" - }, - { - "ele": [ - "$[2][2].statements[0][0].type", - "$[2][2].statements[0][0].params[0].params[0]" - ], - "answer": [ - "locate_object_time", - "2" - ], - "points": 1.56, - "desc": "문제2/어린이/[반복 2]의 세부 동작 1/'2' 초 동안 '놀이동산' 위치로 이동하기", - "type": "list" - }, - { - "ele": [ - "$[2][2].statements[0][1].type", - "$[2][2].statements[0][1].params[0].params[0]" - ], - "answer": [ - "wait_second", - "1" - ], - "points": 1.56, - "desc": "문제2/어린이/[반복 2]의 세부 동작 2/'1' 초 기다리기", - "type": "list" - }, - { - "ele": [ - "$[2][3].type", - "$[2][3].params[0].params[0]", - "$[2][3].params[1].params[0]", - "$[2][3].params[2].params[0]" - ], - "answer": [ - "locate_xy_time", - "2", - "-120", - "-100" - ], - "points": 1.56, - "desc": "문제2/어린이/[신호 1]의 세부 동작 1/'2' 초 동안 x: '-120' y: '-100' 위치로 이동하기", - "type": "list" - }, - { - "ele": "$[2][4].params[*].params", - "answer": [ - "집 도착!", - "1" - ], - "points": 1.56, - "desc": "문제2/어린이/[신호 1]의 세부 동작 2/'집 도착!' 을 '1' 초 동안 '말하기'" - }, - { - "ele": "$[2][5].type", - "answer": "start_neighbor_scene", - "points": 1.56, - "desc": "문제2/어린이/[신호 1]의 세부 동작 3/'다음' 장면 시작하기" - } - ] - }, - "6": { - "type": "script", - "ele": "$.objects[?(@.name=~'나의|방')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_scene_start", - "points": 1.56, - "desc": "문제2/나의 방/장면/장면이 시작되었을 때" - }, - { - "ele": [ - "$[0][1].type", - "$[0][1].params[0]" - ], - "answer": [ - "set_visible_answer", - "HIDE" - ], - "points": 1.56, - "desc": "문제2/나의 방/[장면]의 세부 동작 1/대답 '숨기기'", - "type": "list" - }, - { - "ele": [ - "$[0][2].type", - "$[0][2].params[0].params[0]", - "$[0][2].params[1]" - ], - "answer": [ - "dialog", - "my room!", - "speak" - ], - "points": 1.56, - "desc": "문제2/나의 방/[장면]의 세부 동작 2/'my room!' 을 '말하기'", - "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", - "brightness", - "10" - ], - "points": 2, - "desc": "문제 3/나의 방/[오브젝트]의 세부 동작 1/'밝기' 효과를 '10' 만큼 주기", - "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/처음부터 다시 실행하기" - } - ] - } -} \ No newline at end of file diff --git a/correct/2505CAT3A.json b/correct/2505CAT3A.json deleted file mode 100644 index 3f5ff85..0000000 --- a/correct/2505CAT3A.json +++ /dev/null @@ -1,482 +0,0 @@ -{ - "1-1": { - "type": "scene", - "ele": "$..objects[?(@.name=='바다')]", - "points": 2, - "desc": "문제 1/바닷속(3)/[배경] 이름 설정/이름을 '바다'로 변경하기" - }, - "1-3": { - "type": "scene", - "ele": "$..objects[?(@.name=='신비한 열매')]", - "points": 2, - "desc": "문제 1/블루베리/[개체] 이름 설정 1/이름을 '신비한 열매'로 변경하기" - }, - "1-4": { - "type": "scene", - "ele": "$..objects[?(@.name=='쓰레기')]", - "points": 2, - "desc": "문제 1/쓰레기/[개체] 이름 설정 2/이름 변경 없음" - }, - "1-5": { - "type": "scene", - "ele": "$..objects[?(@.name=='물고기')]", - "points": 2, - "desc": "문제 1/빨간 물고기/[개체] 이름 설정 3/이름을 '물고기'로 변경하기" - }, - "1-6": { - "type": "scene", - "ele": "$..objects[?(@.name=='상어')]", - "points": 2, - "desc": "문제 1/상어(1)/[개체] 이름 설정 4/이름을 '상어'로 변경하기" - }, - "2": { - "type": "script", - "ele": "$.objects[?(@.name=~'열매|블루베|신비한열매')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 2.19, - "desc": "문제 2/신비한 열매/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": "$[0][1].type", - "answer": "hide", - "points": 2.19, - "desc": "문제 2/신비한 열매/[시작]의 세부 동작 1/모양 숨기기" - }, - { - "ele": "$[0][2].params[0].params[0]", - "answer": "40", - "points": 2.19, - "desc": "문제 2/신비한 열매/[시작]의 세부 동작 2/크기를 '40' 으로 정하기" - }, - { - "ele": [ - "$[0][3].type", - "$[0][3].params[0]" - ], - "answer": [ - "repeat_inf", - null - ], - "points": 2.19, - "desc": "문제 2/신비한 열매/반복/계속 반복하기", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][0].type", - "$[0][3].statements[0][0].params[0].params[*].params[0]", - "$[0][3].statements[0][0].params[1].params[*].params[0]" - ], - "answer": [ - "locate_xy", - "-200", - "200", - "-120", - "120" - ], - "points": 2.19, - "desc": "문제 2/신비한 열매/[반복]의 세부 동작 1/x: '-200 부터 200 사이의 무작위 수' y: '-120 부터 120 사이의 무작위 수' 위치로 이동하기", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][1].type", - "$[0][3].statements[0][1].params[0].params[0]" - ], - "answer": [ - "wait_second", - "1" - ], - "points": 2.19, - "desc": "문제 2/신비한 열매/[반복]의 세부 동작 2/'1' 초 기다리기", - "type": "list" - }, - { - "ele": "$[0][3].statements[0][2].type", - "answer": "show", - "points": 2.19, - "desc": "문제 2/신비한 열매/[반복]의 세부 동작 3/모양 보이기" - } - ] - }, - "3": { - "type": "script", - "ele": "$.objects[?(@.name=~'쓰레기|변경없음')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 2.19, - "desc": "문제 2/쓰레기/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": "$[0][1].type", - "answer": "hide", - "points": 2.19, - "desc": "문제 2/쓰레기/[시작]의 세부 동작 1/모양 숨기기" - }, - { - "ele": "$[0][2].params[0].params[0]", - "answer": "30", - "points": 2.19, - "desc": "문제 2/쓰레기/[시작]의 세부 동작 2/크기를 '30' 으로 정하기" - }, - { - "ele": [ - "$[0][3].type", - "$[0][3].params[0]" - ], - "answer": [ - "repeat_inf", - null - ], - "points": 2.19, - "desc": "문제 2/쓰레기/반복/계속 반복하기", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][0].type", - "$[0][3].statements[0][0].params[0].params[*].params[0]", - "$[0][3].statements[0][0].params[1].params[*].params[0]" - ], - "answer": [ - "locate_xy", - "-200", - "200", - "-120", - "120" - ], - "points": 2.19, - "desc": "문제 2/쓰레기/[반복]의 세부 동작 1/x: '-200 부터 200 사이의 무작위 수' y: '-120 부터 120 사이의 무작위 수' 위치로 이동하기", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][1].type", - "$[0][3].statements[0][1].params[0].params[0]" - ], - "answer": [ - "wait_second", - "1" - ], - "points": 2.19, - "desc": "문제 2/쓰레기/[반복]의 세부 동작 2/'1' 초 기다리기", - "type": "list" - }, - { - "ele": "$[0][3].statements[0][2].type", - "answer": "show", - "points": 2.19, - "desc": "문제 2/쓰레기/[반복]의 세부 동작 3/모양 보이기" - } - ] - }, - "4": { - "type": "script", - "ele": "$.objects[?(@.name=~'물고기')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 2.19, - "desc": "문제 2/물고기/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": [ - "$[0][1].type", - "$[0][1].params[0].params[0]", - "$[0][1].params[1].params[0]" - ], - "answer": [ - "locate_xy", - "100", - "60" - ], - "points": 2.19, - "desc": "문제 2/물고기/[시작]의 세부 동작 1/x: '100' y: '60' 위치로 이동하기", - "type": "list" - }, - { - "ele": "$[0][2].params[0].params[0]", - "answer": "50", - "points": 2.19, - "desc": "문제 2/물고기/[시작]의 세부 동작 2/크기를 '50' 으로 정하기" - }, - { - "ele": [ - "$[0][3].type", - "$[0][3].params[0]" - ], - "answer": [ - "repeat_inf", - null - ], - "points": 2.19, - "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]" - ], - "answer": [ - "_if", - "is_press_some_key", - "37" - ], - "points": 2.19, - "desc": "문제 2/물고기/만일 1/만일 '왼쪽 화살표' 키가 눌러져 있는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][0].statements[0][0].type", - "$[0][3].statements[0][0].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_x", - "-5" - ], - "points": 2.19, - "desc": "문제 2/물고기/[만일 1]의 세부 동작/x 좌표를 '-5' 만큼 바꾸기", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][1].type", - "$[0][3].statements[0][1].params[0].type", - "$[0][3].statements[0][1].params[0].params[0]" - ], - "answer": [ - "_if", - "is_press_some_key", - "39" - ], - "points": 2.19, - "desc": "문제 2/물고기/만일 2/만일 '오른쪽 화살표' 키가 눌러져 있는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][1].statements[0][0].type", - "$[0][3].statements[0][1].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_x", - "5" - ], - "points": 2.19, - "desc": "문제 2/물고기/[만일 2]의 세부 동작/x 좌표를 '5' 만큼 바꾸기", - "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]" - ], - "answer": [ - "_if", - "is_press_some_key", - "38" - ], - "points": 2.19, - "desc": "문제 2/물고기/만일 3/만일 '위쪽 화살표' 키가 눌러져 있는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][2].statements[0][0].type", - "$[0][3].statements[0][2].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_y", - "5" - ], - "points": 2.19, - "desc": "문제 2/물고기/[만일 3]의 세부 동작/y 좌표를 '5' 만큼 바꾸기", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][3].type", - "$[0][3].statements[0][3].params[0].type", - "$[0][3].statements[0][3].params[0].params[0]" - ], - "answer": [ - "_if", - "is_press_some_key", - "40" - ], - "points": 2.19, - "desc": "문제 2/물고기/만일 4/만일 '아래쪽 화살표' 키가 눌러져 있는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][3].statements[0][0].type", - "$[0][3].statements[0][3].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_y", - "-5" - ], - "points": 2.19, - "desc": "문제 2/물고기/[만일 4]의 세부 동작/y 좌표를 '-5' 만큼 바꾸기", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][4].type", - "$[0][3].statements[0][4].params[0].type" - ], - "answer": [ - "_if", - "reach_something" - ], - "points": 2.19, - "desc": "문제 2/물고기/만일 5/만일 '신비한 열매' 에 닿았는가? 라면", - "type": "list" - }, - { - "ele": "$[0][3].statements[0][4].statements[0][0].params[*].params", - "answer": [ - "냠냠!", - "2" - ], - "points": 2.19, - "desc": "문제 2/물고기/[만일 5]의 세부 동작 1/'냠냠!' 을 '2' 초 동안 '말하기'" - }, - { - "ele": "$[0][3].statements[0][4].statements[0][1].params[0].params[0]", - "answer": "120", - "points": 2.19, - "desc": "문제 2/물고기/[만일 5]의 세부 동작 2/크기를 '120' 으로 정하기" - }, - { - "ele": "$[0][3].statements[0][4].statements[0][2].type", - "answer": "hide", - "points": 2.19, - "desc": "문제 2/물고기/[만일 5]의 세부 동작 3/모양 숨기기" - }, - { - "ele": [ - "$[0][3].statements[0][5].type", - "$[0][3].statements[0][5].params[0].type" - ], - "answer": [ - "_if", - "reach_something" - ], - "points": 2.19, - "desc": "문제 2/물고기/만일 6/만일 '쓰레기' 에 닿았는가? 라면", - "type": "list" - }, - { - "type": "list", - "ele": [ - "$[0][3].statements[0][5].statements[0][0].type", - "$[0][3].statements[0][5].statements[0][0].params[0]", - "$[0][3].statements[0][5].statements[0][0].params[1].params[0]" - ], - "answer": [ - "add_effect_amount", - "color", - "30" - ], - "points": 2.19, - "desc": "문제 2/물고기/[만일 6]의 세부 동작 1/'색깔' 효과를 '30' 만큼 주기" - }, - { - "ele": "$[0][3].statements[0][5].statements[0][1].params[*].params", - "answer": [ - "으악!", - "2" - ], - "points": 2.19, - "desc": "문제 2/물고기/[만일 6]의 세부 동작 2/'으악!' 을 '2' 초 동안 '말하기'" - }, - { - "ele": "$[0][3].statements[0][5].statements[0][2].type", - "answer": "erase_all_effects", - "points": 2.19, - "desc": "문제 2/물고기/[만일 6]의 세부 동작 3/효과 모두 지우기" - } - ] - }, - "5": { - "type": "script", - "ele": "$.objects[?(@.name=~'상어')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 2.19, - "desc": "문제 2/상어/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": "$[0][1].type", - "answer": "hide", - "points": 2.19, - "desc": "문제 2/상어/[시작]의 세부 동작 1/모양 숨기기" - }, - { - "type": "list", - "ele": [ - "$[0][2].type", - "$[0][2].params[0].type", - "$[0][2].params[0].params[1]", - "$[0][2].params[0].params[2].params[0]" - ], - "answer": [ - "wait_until_true", - "boolean_basic_operator", - "EQUAL", - "120" - ], - "points": 2.19, - "desc": "문제 2/상어/[시작]의 세부 동작 2/'물고기' 의 '크기' = '120' 이 될 때까지 기다리기" - }, - { - "ele": [ - "$[0][3].type", - "$[0][3].params[0]" - ], - "answer": [ - "stop_object", - "other_objects" - ], - "points": 2.19, - "desc": "문제 2/상어/[시작]의 세부 동작 3/'다른 오브젝트의' 코드 멈추기", - "type": "list" - }, - { - "ele": "$[0][4].type", - "answer": "locate", - "points": 2.19, - "desc": "문제 2/상어/[시작]의 세부 동작 4/'물고기' 위치로 이동하기" - }, - { - "ele": "$[0][5].type", - "answer": "show", - "points": 2.19, - "desc": "문제 2/상어/[시작]의 세부 동작 5/모양 보이기" - }, - { - "ele": "$[0][6].params[*].params", - "answer": [ - "상어로 변했어!", - "2" - ], - "points": 2.19, - "desc": "문제 2/상어/[시작]의 세부 동작 6/'상어로 변했어!' 를 '2' 초 동안 '말하기'" - } - ] - } -} \ No newline at end of file diff --git a/correct/2506_CAS_2_A.json b/correct/2506_CAS_2_A.json deleted file mode 100644 index 0e44a46..0000000 --- a/correct/2506_CAS_2_A.json +++ /dev/null @@ -1,870 +0,0 @@ -{ - "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": { - "type": "scene", - "ele": "$..variables[?(@.name=='물고기 수')]", - "points": 1, - "desc": "문제 2/빨간 물고기/변수/'물고기 수' 변수 만들기", - "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" - ] - } -} \ No newline at end of file diff --git a/correct/2508_CAS_2_A.json b/correct/2508_CAS_2_A.json deleted file mode 100644 index e618583..0000000 --- a/correct/2508_CAS_2_A.json +++ /dev/null @@ -1,774 +0,0 @@ -{ - "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.5, - "desc": "문제 1/장면 2/[배경] 이름 설정 2/이름 변경 없음", - "sort": 12 - }, - "1-3": { - "type": "scene", - "ele": "$..objects[?(@.name=='에너지원')]", - "points": 1.7, - "desc": "문제 1/물약(빨강)/[개체] 이름 설정 1/이름을 '에너지원'으로 변경하기", - "sort": 13 - }, - "1-4": { - "type": "scene", - "ele": "$..objects[?(@.name=='운석')]", - "points": 1.7, - "desc": "문제 1/검은 돌멩이/[개체] 이름 설정 2/이름을 '운석'으로 변경하기", - "sort": 14 - }, - "1-5": { - "type": "scene", - "ele": "$..objects[?(@.name=='행성')]", - "points": 1.7, - "desc": "문제 1/행성(5)/[개체] 이름 설정 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.38, - "desc": "문제 2/에너지원/변수 1/'연료' 변수 만들기 (변수 기본값은 '100', '모든 오브젝트에 사용' 설정하기)", - "type": "scene", - "sort": 101 - }, - "2-0": { - "ele": "$..variables[?(@.name=='점수')]", - "points": 1.38, - "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.38, - "desc": "문제 2/에너지원/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": "$[0][1].params[0].params[0]", - "answer": "50", - "points": 1.38, - "desc": "문제 2/에너지원/[시작]의 세부 동작/크기를 '50' 으로 정하기" - }, - { - "ele": [ - "$[0][2].type", - "$[0][2].params[0]" - ], - "answer": [ - "repeat_inf", - null - ], - "points": 1.38, - "desc": "문제 2/에너지원/반복/계속 반복하기", - "type": "list" - }, - { - "ele": "$[0][2].statements[0][0].type", - "answer": "hide", - "points": 1.38, - "desc": "문제 2/에너지원/[반복]의 세부 동작 1/모양 숨기기" - }, - { - "ele": [ - "$[0][2].statements[0][1].type", - "$[0][2].statements[0][1].params[0].params[1].params[0]", - "$[0][2].statements[0][1].params[0].params[3].params[0]", - "$[0][2].statements[0][1].params[1].params[1].params[0]", - "$[0][2].statements[0][1].params[1].params[3].params[0]" - ], - "answer": [ - "locate_xy", - "-200", - "200", - "-100", - "100" - ], - "points": 1.38, - "desc": "문제 2/에너지원/[반복]의 세부 동작 2/x: '-200 부터 200 사이의 무작위 수' y: '-100 부터 100 사이의 무작위 수' 위치로 이동하기", - "type": "list" - }, - { - "ele": [ - "$[0][2].statements[0][2].type", - "$[0][2].statements[0][2].params[0].type", - "$[0][2].statements[0][2].params[0].params[1].params[0]", - "$[0][2].statements[0][2].params[0].params[3].params[0]" - ], - "answer": [ - "wait_second", - "calc_rand", - "1", - "2" - ], - "points": 1.38, - "desc": "문제 2/에너지원/[반복]의 세부 동작 3/'1 부터 2 사이의 무작위 수' 초 기다리기", - "type": "list" - }, - { - "ele": "$[0][2].statements[0][3].type", - "answer": "show", - "points": 1.38, - "desc": "문제 2/에너지원/[반복]의 세부 동작 4/모양 보이기" - }, - { - "ele": [ - "$[0][2].statements[0][4].type", - "$[0][2].statements[0][4].params[0].params[0]" - ], - "answer": [ - "wait_second", - "1" - ], - "points": 1.38, - "desc": "문제 2/에너지원/[반복]의 세부 동작 5/'1' 초 기다리기", - "type": "list" - }, - { - "ele": [ - "$[0][2].statements[0][5].type", - "$[0][2].statements[0][5].params[0].type" - ], - "answer": [ - "_if", - "reach_something" - ], - "points": 1.38, - "desc": "문제 2/에너지원/만일/만일 '우주선' 에 닿았는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][2].statements[0][5].statements[0][0].type", - "$[0][2].statements[0][5].statements[0][0].params[1].params[0]" - ], - "answer": [ - "change_variable", - "10" - ], - "points": 1.38, - "desc": "문제 2/에너지원/[만일]의 세부 동작 1/'점수' 에 '10' 만큼 더하기", - "type": "list" - }, - { - "ele": [ - "$[0][2].statements[0][5].statements[0][1].type", - "$[0][2].statements[0][5].statements[0][1].params[1].params[0]" - ], - "answer": [ - "change_variable", - "50" - ], - "points": 1.38, - "desc": "문제 2/에너지원/[만일]의 세부 동작 2/'연료' 에 '50' 만큼 더하기", - "type": "list" - } - ], - "sort": 105 - }, - "4-0": { - "type": "script", - "ele": "$.objects[?(@.name=~'운석|검은 돌멩')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 1.38, - "desc": "문제 2/운석/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": "$[0][1].params[0].params[0]", - "answer": "30", - "points": 1.38, - "desc": "문제 2/운석/[시작]의 세부 동작/크기를 '30' 으로 정하기" - }, - { - "ele": [ - "$[0][2].type", - "$[0][2].params[0]" - ], - "answer": [ - "repeat_inf", - null - ], - "points": 1.38, - "desc": "문제 2/운석/반복/계속 반복하기", - "type": "list" - }, - { - "ele": "$[0][2].statements[0][0].type", - "answer": "hide", - "points": 1.38, - "desc": "문제 2/운석/[반복]의 세부 동작 1/모양 숨기기" - }, - { - "ele": [ - "$[0][2].statements[0][1].type", - "$[0][2].statements[0][1].params[0].params[1].params[0]", - "$[0][2].statements[0][1].params[0].params[3].params[0]", - "$[0][2].statements[0][1].params[1].params[1].params[0]", - "$[0][2].statements[0][1].params[1].params[3].params[0]" - ], - "answer": [ - "locate_xy", - "-200", - "200", - "-100", - "100" - ], - "points": 1.38, - "desc": "문제 2/운석/[반복]의 세부 동작 2/x: '-200 부터 200 사이의 무작위 수' y: '-100 부터 100 사이의 무작위 수' 위치로 이동하기", - "type": "list" - }, - { - "ele": [ - "$[0][2].statements[0][2].type", - "$[0][2].statements[0][2].params[0].type", - "$[0][2].statements[0][2].params[0].params[1].params[0]", - "$[0][2].statements[0][2].params[0].params[3].params[0]" - ], - "answer": [ - "wait_second", - "calc_rand", - "0", - "3" - ], - "points": 1.38, - "desc": "문제 2/운석/[반복]의 세부 동작 3/'0 부터 3 사이의 무작위 수' 초 기다리기", - "type": "list" - }, - { - "ele": "$[0][2].statements[0][3].type", - "answer": "show", - "points": 1.38, - "desc": "문제 2/운석/[반복]의 세부 동작 4/모양 보이기" - }, - { - "ele": [ - "$[0][2].statements[0][4].type", - "$[0][2].statements[0][4].params[0].params[0]" - ], - "answer": [ - "wait_second", - "0.5" - ], - "points": 1.38, - "desc": "문제 2/운석/[반복]의 세부 동작 5/'0.5' 초 기다리기", - "type": "list" - }, - { - "ele": [ - "$[0][2].statements[0][5].type", - "$[0][2].statements[0][5].params[0].type" - ], - "answer": [ - "_if", - "reach_something" - ], - "points": 1.38, - "desc": "문제 2/운석/만일/만일 '우주선' 에 닿았는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][2].statements[0][5].statements[0][0].type", - "$[0][2].statements[0][5].statements[0][0].params[1].params[0]" - ], - "answer": [ - "change_variable", - "-5" - ], - "points": 1.38, - "desc": "문제 2/운석/[만일]의 세부 동작/'점수' 에 '-5' 만큼 더하기", - "type": "list" - } - ], - "sort": 115 - }, - "5-0": { - "type": "script", - "ele": "$.objects[?(@.name=~'행성')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 1.38, - "desc": "문제 2/행성/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": [ - "$[0][1].type", - "$[0][1].params[0].params[0]", - "$[0][1].params[1].params[0]" - ], - "answer": [ - "locate_xy", - "150", - "80" - ], - "points": 1.38, - "desc": "문제 2/행성/[시작]의 세부 동작/x: '150' y: '80' 위치로 이동하기", - "type": "list" - }, - { - "ele": [ - "$[0][2].type", - "$[0][2].params[0]" - ], - "answer": [ - "repeat_inf", - null - ], - "points": 1.38, - "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.38, - "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", - "50" - ], - "points": 1.38, - "desc": "문제 2/행성/[만일]의 세부 동작 1/'연료' 에 '50' 만큼 더하기", - "type": "list" - }, - { - "ele": "$[0][2].statements[0][0].statements[0][1].type", - "answer": "hide", - "points": 1.38, - "desc": "문제 2/행성/[만일]의 세부 동작 2/모양 숨기기" - }, - { - "ele": [ - "$[0][2].statements[0][1].type", - "$[0][2].statements[0][1].params[0].params[0]" - ], - "answer": [ - "wait_second", - "1" - ], - "points": 1.38, - "desc": "문제 2/행성/[반복]의 세부 동작 1/'1' 초 기다리기", - "type": "list" - }, - { - "ele": "$[0][2].statements[0][2].type", - "answer": "show", - "points": 1.38, - "desc": "문제 2/행성/[반복]의 세부 동작 2/모양 보이기" - } - ], - "sort": 125 - }, - "32-0": { - "ele": "$.messages[?(@.name=='탐사 성공')]", - "points": 1.38, - "desc": "문제 2/우주선/신호/'탐사 성공' 신호 만들기", - "type": "scene", - "sort": 132 - }, - "6-0": { - "type": "script", - "ele": "$.objects[?(@.name=~'우주선')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 1.38, - "desc": "문제 2/우주선/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": [ - "$[0][1].type", - "$[0][1].params[0]" - ], - "answer": [ - "repeat_inf", - null - ], - "points": 1.38, - "desc": "문제 2/우주선/반복/계속 반복하기", - "type": "list" - }, - { - "ele": [ - "$[0][1].statements[0][0].type", - "$[0][1].statements[0][0].params[0].type", - "$[0][1].statements[0][0].params[0].params[0]" - ], - "answer": [ - "_if", - "is_press_some_key", - "37" - ], - "points": 1.38, - "desc": "문제 2/우주선/만일 1/만일 '왼쪽 화살표' 키가 눌러져 있는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][1].statements[0][0].statements[0][0].type", - "$[0][1].statements[0][0].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_x", - "-5" - ], - "points": 1.38, - "desc": "문제 2/우주선/[만일 1]의 세부 동작 1/x 좌표를 '-5' 만큼 바꾸기", - "type": "list" - }, - { - "ele": [ - "$[0][1].statements[0][0].statements[0][1].type", - "$[0][1].statements[0][0].statements[0][1].params[1].params[0]" - ], - "answer": [ - "change_variable", - "-1" - ], - "points": 1.38, - "desc": "문제 2/우주선/[만일 1]의 세부 동작 2/'연료' 에 '-1' 만큼 더하기", - "type": "list" - }, - { - "ele": [ - "$[0][1].statements[0][1].type", - "$[0][1].statements[0][1].params[0].type", - "$[0][1].statements[0][1].params[0].params[0]" - ], - "answer": [ - "_if", - "is_press_some_key", - "39" - ], - "points": 1.38, - "desc": "문제 2/우주선/만일 2/만일 '오른쪽 화살표' 키가 눌러져 있는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][1].statements[0][1].statements[0][0].type", - "$[0][1].statements[0][1].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_x", - "5" - ], - "points": 1.38, - "desc": "문제 2/우주선/[만일 2]의 세부 동작 1/x 좌표를 '5' 만큼 바꾸기", - "type": "list" - }, - { - "ele": [ - "$[0][1].statements[0][1].statements[0][1].type", - "$[0][1].statements[0][1].statements[0][1].params[1].params[0]" - ], - "answer": [ - "change_variable", - "-1" - ], - "points": 1.38, - "desc": "문제 2/우주선/[만일 2]의 세부 동작 2/'연료' 에 '-1' 만큼 더하기", - "type": "list" - }, - { - "ele": [ - "$[0][1].statements[0][2].type", - "$[0][1].statements[0][2].params[0].type", - "$[0][1].statements[0][2].params[0].params[0]" - ], - "answer": [ - "_if", - "is_press_some_key", - "38" - ], - "points": 1.38, - "desc": "문제 2/우주선/만일 3/만일 '위쪽 화살표' 키가 눌러져 있는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][1].statements[0][2].statements[0][0].type", - "$[0][1].statements[0][2].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_y", - "5" - ], - "points": 1.38, - "desc": "문제 2/우주선/[만일 3]의 세부 동작 1/y 좌표를 '5' 만큼 바꾸기", - "type": "list" - }, - { - "ele": [ - "$[0][1].statements[0][2].statements[0][1].type", - "$[0][1].statements[0][2].statements[0][1].params[1].params[0]" - ], - "answer": [ - "change_variable", - "-1" - ], - "points": 1.38, - "desc": "문제 2/우주선/[만일 3]의 세부 동작 2/'연료' 에 '-1' 만큼 더하기", - "type": "list" - }, - { - "ele": [ - "$[0][1].statements[0][3].type", - "$[0][1].statements[0][3].params[0].type", - "$[0][1].statements[0][3].params[0].params[0]" - ], - "answer": [ - "_if", - "is_press_some_key", - "40" - ], - "points": 1.38, - "desc": "문제 2/우주선/만일 4/만일 '아래쪽 화살표' 키가 눌러져 있는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][1].statements[0][3].statements[0][0].type", - "$[0][1].statements[0][3].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_y", - "-5" - ], - "points": 1.38, - "desc": "문제 2/우주선/[만일 4]의 세부 동작 1/y 좌표를 '-5' 만큼 바꾸기", - "type": "list" - }, - { - "ele": [ - "$[0][1].statements[0][3].statements[0][1].type", - "$[0][1].statements[0][3].statements[0][1].params[1].params[0]" - ], - "answer": [ - "change_variable", - "-1" - ], - "points": 1.38, - "desc": "문제 2/우주선/[만일 4]의 세부 동작 2/'연료' 에 '-1' 만큼 더하기", - "type": "list" - }, - { - "ele": [ - "$[0][1].statements[0][4].type", - "$[0][1].statements[0][4].params[0].type" - ], - "answer": [ - "_if", - "boolean_and_or" - ], - "points": 1.38, - "desc": "문제 2/우주선/만일 5/만일 '점수' 값 ≥ '30' '그리고' '연료' 값 > '0'", - "type": "list" - }, - { - "ele": "$[0][1].statements[0][4].statements[0][0].params[*].params", - "answer": [ - "탐사성공!", - "1" - ], - "points": 1.38, - "desc": "문제 2/우주선/[만일 5]의 세부 동작 1/'탐사성공!' 을 '1' 초 동안 '말하기'" - }, - { - "ele": "$[0][1].statements[0][4].statements[0][1].type", - "answer": "message_cast", - "points": 1.38, - "desc": "문제 2/우주선/[만일 5]의 세부 동작 2/'탐사 성공' 신호 보내기" - }, - { - "ele": [ - "$[0][1].statements[0][5].type", - "$[0][1].statements[0][5].params[0].type", - "$[0][1].statements[0][5].params[0].params[0].type", - "$[0][1].statements[0][5].params[0].params[1]", - "$[0][1].statements[0][5].params[0].params[2].params[0]" - ], - "answer": [ - "_if", - "boolean_basic_operator", - "get_variable", - "LESS_OR_EQUAL", - "0" - ], - "points": 1.38, - "desc": "문제 2/우주선/만일 6/만일 '연료' 값 ≤ '0' 이라면", - "type": "list" - }, - { - "ele": "$[0][1].statements[0][5].statements[0][0].params[*].params", - "answer": [ - "미션실패", - "2" - ], - "points": 1.38, - "desc": "문제 2/우주선/[만일 6]의 세부 동작 1/'미션실패' 를 '2' 초 동안 '말하기'" - }, - { - "ele": [ - "$[0][1].statements[0][5].statements[0][1].type", - "$[0][1].statements[0][5].statements[0][1].params[0]" - ], - "answer": [ - "stop_object", - "all" - ], - "points": 1.38, - "desc": "문제 2/우주선/[만일 6]의 세부 동작 2/'모든' 코드 멈추기", - "type": "list" - }, - { - "ele": "$[1][0].type", - "answer": "when_message_cast", - "points": 1.38, - "desc": "문제 2/우주선/탐사 성공/'탐사 성공' 신호를 받았을 때 " - }, - { - "ele": "$[1][1].type", - "answer": "start_neighbor_scene", - "points": 1.38, - "desc": "문제 2/우주선/[탐사 성공]의 세부 동작/'다음' 장면 시작하기" - } - ], - "sort": 133 - }, - "7-0": { - "type": "script", - "ele": "$.objects[?(@.name=~'우주정거장')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_scene_start", - "points": 1.38, - "desc": "문제 2/우주정거장/장면/장면이 시작되었을 때" - }, - { - "ele": "$[0][1].type", - "answer": "hide_variable", - "points": 1.38, - "desc": "문제 2/우주정거장/[장면 2]의 세부 동작 1/변수 '연료' 숨기기" - }, - { - "ele": "$[0][2].type", - "answer": "hide_variable", - "points": 1.38, - "desc": "문제 2/우주정거장/[장면 2]의 세부 동작 2/변수 '점수' 숨기기" - }, - { - "ele": [ - "$[0][3].type", - "$[0][3].params[0].params[0]", - "$[0][3].params[1]" - ], - "answer": [ - "dialog", - "탐사 완료!", - "speak" - ], - "points": 1.38, - "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", - "50" - ], - "points": 2, - "desc": "문제 3/우주정거장/[오브젝트]의 세부 동작 1/'색깔' 효과를 '50' 만큼 주기", - "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": 156 - } -} \ No newline at end of file diff --git a/correct/2508_CAS_2_B.json b/correct/2508_CAS_2_B.json deleted file mode 100644 index 2cc2547..0000000 --- a/correct/2508_CAS_2_B.json +++ /dev/null @@ -1,825 +0,0 @@ -{ - "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 - } -} \ No newline at end of file diff --git a/correct/2509_CAT_3_A.json b/correct/2509_CAT_3_A.json deleted file mode 100644 index bcde020..0000000 --- a/correct/2509_CAT_3_A.json +++ /dev/null @@ -1,557 +0,0 @@ -{ - "1-1": { - "type": "scene", - "ele": "$..objects[?(@.name=='화산')]", - "points": 2, - "desc": "문제 1/화산섬/[배경] 이름 설정/이름을 '화산'으로 변경하기", - "sort": 11 - }, - "1-3": { - "type": "scene", - "ele": "$..objects[?(@.name=='불')]", - "points": 2, - "desc": "문제 1/불(2)/[개체] 이름 설정 1/이름을 '불'로 변경하기", - "sort": 13 - }, - "1-4": { - "type": "scene", - "ele": "$..objects[?(@.name=='공룡')]", - "points": 2, - "desc": "문제 1/공룡/[개체] 이름 설정 2/이름 변경 없음", - "sort": 14 - }, - "1-5": { - "type": "scene", - "ele": "$..objects[?(@.name=='알')]", - "points": 2, - "desc": "문제 1/계란/[개체] 이름 설정 3/이름을 '알'로 변경하기", - "sort": 15 - }, - "1-6": { - "type": "scene", - "ele": "$..objects[?(@.name=='바위')]", - "points": 2, - "desc": "문제 1/바위(4)/[개체] 이름 설정 4/이름을 '바위'로 변경하기", - "sort": 16 - }, - "2-0": { - "type": "script", - "ele": "$.objects[?(@.name=~'불')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 2.14, - "desc": "문제 2/불/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": [ - "$[0][1].type", - "$[0][1].params[0].params[0]", - "$[0][1].params[1].params[0]" - ], - "answer": [ - "locate_xy", - "120", - "90" - ], - "points": 2.14, - "desc": "문제 2/불/[시작]의 세부 동작 1/x: '120' y: '90' 위치로 이동하기", - "type": "list" - }, - { - "ele": "$[0][2].params[0].params[0]", - "answer": "130", - "points": 2.14, - "desc": "문제 2/불/[시작]의 세부 동작 2/크기를 '130' 으로 정하기" - }, - { - "ele": [ - "$[0][3].type", - "$[0][3].params[0]" - ], - "answer": [ - "repeat_inf", - null - ], - "points": 2.14, - "desc": "문제 2/불/반복/계속 반복하기", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][0].type", - "$[0][3].statements[0][0].params[0].type" - ], - "answer": [ - "change_to_some_shape", - "get_pictures" - ], - "points": 2.14, - "desc": "문제 2/불/[반복]의 세부 동작 1/'불(2)_3' 모양으로 바꾸기", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][1].type", - "$[0][3].statements[0][1].params[0].params[0]" - ], - "answer": [ - "wait_second", - "0.5" - ], - "points": 2.14, - "desc": "문제 2/불/[반복]의 세부 동작 2/'0.5' 초 기다리기", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][2].type", - "$[0][3].statements[0][2].params[0].type" - ], - "answer": [ - "change_to_some_shape", - "get_pictures" - ], - "points": 2.14, - "desc": "문제 2/불/[반복]의 세부 동작 3/'불(2)_1' 모양으로 바꾸기", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][3].type", - "$[0][3].statements[0][3].params[0].params[0]" - ], - "answer": [ - "wait_second", - "0.5" - ], - "points": 2.14, - "desc": "문제 2/불/[반복]의 세부 동작 4/'0.5' 초 기다리기", - "type": "list" - } - ], - "sort": 102 - }, - "3-0": { - "type": "script", - "ele": "$.objects[?(@.name=~'공룡')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 2.14, - "desc": "문제 2/공룡/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": [ - "$[0][1].type", - "$[0][1].params[0].params[0]", - "$[0][1].params[1].params[0]" - ], - "answer": [ - "locate_xy", - "0", - "-20" - ], - "points": 2.14, - "desc": "문제 2/공룡/[시작]의 세부 동작 1/x: '0' y: '-20' 위치로 이동하기", - "type": "list" - }, - { - "ele": "$[0][2].params[*].params", - "answer": [ - "공룡알을 구하자", - "1" - ], - "points": 2.14, - "desc": "문제 2/공룡/[시작]의 세부 동작 2/'공룡알을 구하자' 를 '1' 초 동안 '말하기'" - }, - { - "ele": [ - "$[0][3].type", - "$[0][3].params[0]" - ], - "answer": [ - "repeat_inf", - null - ], - "points": 2.14, - "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]" - ], - "answer": [ - "_if", - "is_press_some_key", - "38" - ], - "points": 2.14, - "desc": "문제 2/공룡/만일 1/만일 '위쪽 화살표' 키가 눌러져 있는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][0].statements[0][0].type", - "$[0][3].statements[0][0].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_y", - "5" - ], - "points": 2.14, - "desc": "문제 2/공룡/[만일 1]의 세부 동작/y 좌표를 '5' 만큼 바꾸기", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][1].type", - "$[0][3].statements[0][1].params[0].type", - "$[0][3].statements[0][1].params[0].params[0]" - ], - "answer": [ - "_if", - "is_press_some_key", - "40" - ], - "points": 2.14, - "desc": "문제 2/공룡/만일 2/만일 '아래쪽 화살표' 키가 눌러져 있는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][1].statements[0][0].type", - "$[0][3].statements[0][1].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_y", - "-5" - ], - "points": 2.14, - "desc": "문제 2/공룡/[만일 2]의 세부 동작/y 좌표를 '-5' 만큼 바꾸기", - "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]" - ], - "answer": [ - "_if", - "is_press_some_key", - "37" - ], - "points": 2.14, - "desc": "문제 2/공룡/만일 3/만일 '왼쪽 화살표' 키가 눌러져 있는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][2].statements[0][0].type", - "$[0][3].statements[0][2].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_x", - "-5" - ], - "points": 2.14, - "desc": "문제 2/공룡/[만일 3]의 세부 동작/x 좌표를 '-5' 만큼 바꾸기", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][3].type", - "$[0][3].statements[0][3].params[0].type", - "$[0][3].statements[0][3].params[0].params[0]" - ], - "answer": [ - "_if", - "is_press_some_key", - "39" - ], - "points": 2.14, - "desc": "문제 2/공룡/만일 4/만일 '오른쪽 화살표' 키가 눌러져 있는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][3].statements[0][0].type", - "$[0][3].statements[0][3].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_x", - "5" - ], - "points": 2.14, - "desc": "문제 2/공룡/[만일 4]의 세부 동작/x 좌표를 '5' 만큼 바꾸기", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][4].type", - "$[0][3].statements[0][4].params[0].type" - ], - "answer": [ - "_if", - "reach_something" - ], - "points": 2.14, - "desc": "문제 2/공룡/만일 5/만일 '불' 에 닿았는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][4].statements[0][0].type", - "$[0][3].statements[0][4].statements[0][0].params[0].params[0]", - "$[0][3].statements[0][4].statements[0][0].params[1]" - ], - "answer": [ - "dialog", - "앗 뜨거워!", - "speak" - ], - "points": 2.14, - "desc": "문제 2/공룡/[만일 5]의 세부 동작 1/'앗 뜨거워!' 를 '말하기'", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][4].statements[0][1].type", - "$[0][3].statements[0][4].statements[0][1].params[0].params[0]" - ], - "answer": [ - "wait_second", - "1" - ], - "points": 2.14, - "desc": "문제 2/공룡/[만일 5]의 세부 동작 2/'1' 초 기다리기", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][4].statements[0][2].type", - "$[0][3].statements[0][4].statements[0][2].params[0]" - ], - "answer": [ - "stop_object", - "all" - ], - "points": 2.14, - "desc": "문제 2/공룡/[만일 5]의 세부 동작 3/'모든' 코드 멈추기", - "type": "list" - } - ], - "sort": 110 - }, - "4-0": { - "type": "script", - "ele": "$.objects[?(@.name=~'알|계')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 2.14, - "desc": "문제 2/알/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": "$[0][1].params[0].params[0]", - "answer": "50", - "points": 2.14, - "desc": "문제 2/알/[시작]의 세부 동작 1/크기를 '50' 으로 정하기" - }, - { - "ele": [ - "$[0][2].type", - "$[0][2].params[0].params[0]" - ], - "answer": [ - "rotate_absolute", - "270" - ], - "points": 2.14, - "desc": "문제 2/알/[시작]의 세부 동작 2/방향을 '270°' 로 정하기", - "type": "list" - }, - { - "ele": [ - "$[0][3].type", - "$[0][3].params[0]" - ], - "answer": [ - "repeat_inf", - null - ], - "points": 2.14, - "desc": "문제 2/알/반복/계속 반복하기", - "type": "list" - }, - { - "ele": "$[0][3].statements[0][0].type", - "answer": "show", - "points": 2.14, - "desc": "문제 2/알/[반복]의 세부 동작 1/모양 보이기" - }, - { - "ele": [ - "$[0][3].statements[0][1].type", - "$[0][3].statements[0][1].params[0].params[1].params[0]", - "$[0][3].statements[0][1].params[0].params[3].params[0]", - "$[0][3].statements[0][1].params[1].params[1].params[0]", - "$[0][3].statements[0][1].params[1].params[3].params[0]" - ], - "answer": [ - "locate_xy", - "55", - "160", - "5", - "10" - ], - "points": 2.2, - "desc": "문제 2/알/[반복]의 세부 동작 2/x: '55 부터 160 사이의 무작위 수' y: '5 부터 10 사이의 무작위 수' 위치로 이동하기", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][2].type", - "$[0][3].statements[0][2].params[0].params[0]", - "$[0][3].statements[0][2].params[1].params[1].params[0]", - "$[0][3].statements[0][2].params[1].params[3].params[0]", - "$[0][3].statements[0][2].params[2].params[0]" - ], - "answer": [ - "move_xy_time", - "2", - "-200", - "200", - "-140" - ], - "points": 2.2, - "desc": "문제 2/알/[반복]의 세부 동작 3/'2' 초 동안 x: '-200 부터 200 사이의 무작위 수' y: '-140' 만큼 움직이기", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][3].type", - "$[0][3].statements[0][3].params[0].type" - ], - "answer": [ - "_if", - "reach_something" - ], - "points": 2.14, - "desc": "문제 2/알/만일/만일 '바위' 에 닿았는가? 라면", - "type": "list" - }, - { - "ele": "$[0][3].statements[0][3].statements[0][0].params[*].params", - "answer": [ - "공룡알이 깨졌다!", - "0.2" - ], - "points": 2.14, - "desc": "문제 2/알/[만일]의 세부 동작 1/'공룡알이 깨졌다!' 를 '0.2' 초 동안 '말하기'" - }, - { - "ele": "$[0][3].statements[0][3].statements[0][1].type", - "answer": "hide", - "points": 2.14, - "desc": "문제 2/알/[만일]의 세부 동작 2/모양 숨기기" - }, - { - "ele": "$[1][0].params", - "answer": [ - null, - "32" - ], - "points": 2.14, - "desc": "문제 2/알/스페이스/'스페이스' 키를 눌렀을 때" - }, - { - "ele": [ - "$[1][1].type", - "$[1][1].params[0]" - ], - "answer": [ - "repeat_inf", - null - ], - "points": 2.14, - "desc": "문제 2/알/반복/계속 반복하기", - "type": "list" - }, - { - "ele": [ - "$[1][1].statements[0][0].type", - "$[1][1].statements[0][0].params[0].type" - ], - "answer": [ - "_if", - "reach_something" - ], - "points": 2.14, - "desc": "문제 2/알/만일/만일 '공룡' 에 닿았는가? 라면", - "type": "list" - }, - { - "ele": "$[1][1].statements[0][0].statements[0][0].type", - "answer": "locate", - "points": 2.14, - "desc": "문제 2/알/[만일]의 세부 동작 1/'공룡' 위치로 이동하기" - }, - { - "ele": [ - "$[1][1].statements[0][0].statements[0][1].type", - "$[1][1].statements[0][0].statements[0][1].params[0].params[0]" - ], - "answer": [ - "move_x", - "-20" - ], - "points": 2.14, - "desc": "문제 2/알/[만일]의 세부 동작 2/x 좌표를 '-20' 만큼 바꾸기", - "type": "list" - } - ], - "sort": 126 - }, - "5-0": { - "type": "script", - "ele": "$.objects[?(@.name=~'바위')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 2.14, - "desc": "문제 2/바위/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": [ - "$[0][1].type", - "$[0][1].params[0].params[0]", - "$[0][1].params[1].params[0]" - ], - "answer": [ - "locate_xy", - "130", - "-120" - ], - "points": 2.14, - "desc": "문제 2/바위/[시작]의 세부 동작 1/x: '130' y: '-120' 위치로 이동하기", - "type": "list" - }, - { - "ele": "$[0][2].params[0].params[0]", - "answer": "150", - "points": 2.14, - "desc": "문제 2/바위/[시작]의 세부 동작 2/크기를 '150' 으로 정하기" - } - ], - "sort": 141 - } -} \ No newline at end of file diff --git a/correct/2510_CAS_2_A.json b/correct/2510_CAS_2_A.json deleted file mode 100644 index 0107be5..0000000 --- a/correct/2510_CAS_2_A.json +++ /dev/null @@ -1,1008 +0,0 @@ -{ - "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 - } -} \ No newline at end of file diff --git a/correct/2511_CAT_3_A.json b/correct/2511_CAT_3_A.json deleted file mode 100644 index f950db1..0000000 --- a/correct/2511_CAT_3_A.json +++ /dev/null @@ -1,627 +0,0 @@ -{ - "1-1": { - "type": "scene", - "ele": "$..objects[?(@.name=='동물원')]", - "point": 2, - "desc": "문제 1/들판(3)/[배경] 이름 설정/이름을 '동물원'으로 변경하기", - "sort": 11 - }, - "1-3": { - "type": "scene", - "ele": "$..objects[?(@.name=='코끼리')]", - "point": 2, - "desc": "문제 1/코끼리/[개체] 이름 설정 1/이름 변경 없음", - "sort": 13 - }, - "1-4": { - "type": "scene", - "ele": "$..objects[?(@.name=='사육사')]", - "point": 2, - "desc": "문제 1/프랑켄슈타인/[개체] 이름 설정 2/이름을 '사육사'로 변경하기", - "sort": 14 - }, - "1-5": { - "type": "scene", - "ele": "$..objects[?(@.name=='울타리')]", - "point": 2, - "desc": "문제 1/골대(3)/[개체] 이름 설정 3/이름을 '울타리'로 변경하기", - "sort": 15 - }, - "1-6": { - "type": "scene", - "ele": "$..objects[?(@.name=='사자')]", - "point": 2, - "desc": "문제 1/사자/[개체] 이름 설정 4/이름 변경 없음", - "sort": 16 - }, - "2-0": { - "type": "script", - "ele": "$.objects[?(@.name=~'코끼리')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "point": 2.09, - "desc": "문제 2/코끼리/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": [ - "$[0][1].type", - "$[0][1].params[0].params[0]" - ], - "answer": [ - "set_scale_size", - "80" - ], - "point": 2.09, - "desc": "문제 2/코끼리/[시작]의 세부 동작/크기를 '80' 으로 정하기", - "type": "list" - }, - { - "ele": [ - "$[0][2].type", - "$[0][2].params[0]" - ], - "answer": [ - "repeat_inf", - null - ], - "point": 2.09, - "desc": "문제 2/코끼리/반복/계속 반복하기", - "type": "list" - }, - { - "ele": [ - "$[0][2].statements[0][0].type", - "$[0][2].statements[0][0].params[0].params[1].params[0]", - "$[0][2].statements[0][0].params[0].params[3].params[0]", - "$[0][2].statements[0][0].params[1].params[0]" - ], - "answer": [ - "locate_xy", - "-150", - "150", - "-80" - ], - "point": 2.09, - "desc": "문제 2/코끼리/[반복]의 세부 동작 1/x: '-150 부터 150 사이의 무작위 수' y: '-80' 위치로 이동하기", - "type": "list" - }, - { - "ele": [ - "$[0][2].statements[0][1].type", - "$[0][2].statements[0][1].params[0].params[0]" - ], - "answer": [ - "wait_second", - "0.5" - ], - "point": 2.09, - "desc": "문제 2/코끼리/[반복]의 세부 동작 2/'0.5' 초 기다리기", - "type": "list" - } - ], - "sortBlock": [ - "when_run_button_click" - ], - "sort": 102 - }, - "3-0": { - "type": "script", - "ele": "$.objects[?(@.name=~'사육사|프랑켄슈타')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "point": 2.09, - "desc": "문제 2/사육사/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": [ - "$[0][1].type", - "$[0][1].params[0].params[0]", - "$[0][1].params[1].params[0]" - ], - "answer": [ - "locate_xy", - "-50", - "80" - ], - "point": 2.09, - "desc": "문제 2/사육사/[시작]의 세부 동작 1/x: '-50' y: '80' 위치로 이동하기", - "type": "list" - }, - { - "ele": [ - "$[0][2].type", - "$[0][2].params[0].params[0]" - ], - "answer": [ - "set_scale_size", - "70" - ], - "point": 2.09, - "desc": "문제 2/사육사/[시작]의 세부 동작 2/크기를 '70' 으로 정하기", - "type": "list" - }, - { - "ele": [ - "$[0][3].type", - "$[0][3].params[0]" - ], - "answer": [ - "repeat_inf", - null - ], - "point": 2.09, - "desc": "문제 2/사육사/반복/계속 반복하기", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][0].type", - "$[0][3].statements[0][0].params[0].type" - ], - "answer": [ - "_if", - "reach_something" - ], - "point": 2.09, - "desc": "문제 2/사육사/만일 1/만일 '사자' 에 닿았는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][0].statements[0][0].type", - "$[0][3].statements[0][0].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_x", - "20" - ], - "point": 2.09, - "desc": "문제 2/사육사/[만일 1]의 세부 동작/x 좌표를 '20' 만큼 바꾸기", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][1].type", - "$[0][3].statements[0][1].params[0].type", - "$[0][3].statements[0][1].params[0].params[0].type", - "$[0][3].statements[0][1].params[0].params[1]", - "$[0][3].statements[0][1].params[0].params[2].params[0]" - ], - "answer": [ - "_if", - "boolean_basic_operator", - "coordinate_object", - "LESS", - null - ], - "point": 2.09, - "desc": "문제 2/사육사/만일 2/만일 '사자 의 x 좌푯값' < '사육사 의 x 좌푯값' 이라면", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][1].statements[0][0].type", - "$[0][3].statements[0][1].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_x", - "-2" - ], - "point": 2.09, - "desc": "문제 2/사육사/[만일 2]의 세부 동작/x 좌표를 '-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[1]", - "$[0][3].statements[0][2].params[0].params[2].params[0]" - ], - "answer": [ - "_if", - "boolean_basic_operator", - "coordinate_object", - "GREATER", - null - ], - "point": 2.09, - "desc": "문제 2/사육사/만일 3/만일 '사자 의 x 좌푯값' > '사육사 의 x 좌푯값' 이라면", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][2].statements[0][0].type", - "$[0][3].statements[0][2].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_x", - "2" - ], - "point": 2.09, - "desc": "문제 2/사육사/[만일 3]의 세부 동작/x 좌표를 '2' 만큼 바꾸기", - "type": "list" - }, - { - "ele": [ - "$[0][3].statements[0][3].type", - "$[0][3].statements[0][3].params[0].params[0]" - ], - "answer": [ - "wait_second", - "0.2" - ], - "point": 2.09, - "desc": "문제 2/사육사/[반복]의 세부 동작/'0.2' 초 기다리기", - "type": "list" - } - ], - "sortBlock": [ - "when_run_button_click" - ], - "sort": 107 - }, - "4-0": { - "type": "script", - "ele": "$.objects[?(@.name=~'울타리|골대')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "point": 2.09, - "desc": "문제 2/울타리/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": [ - "$[0][1].type", - "$[0][1].params[0].params[0]", - "$[0][1].params[1].params[0]" - ], - "answer": [ - "locate_xy", - "20", - "-200" - ], - "point": 2.09, - "desc": "문제 2/울타리/[시작]의 세부 동작 1/x: '20' y: '-200' 위치로 이동하기", - "type": "list" - }, - { - "ele": [ - "$[0][2].type", - "$[0][2].params[0].params[0]" - ], - "answer": [ - "rotate_absolute", - "90" - ], - "point": 2.09, - "desc": "문제 2/울타리/[시작]의 세부 동작 2/방향을 '90°' 로 정하기", - "type": "list" - }, - { - "ele": [ - "$[0][3].type", - "$[0][3].params[0].params[0]" - ], - "answer": [ - "set_scale_size", - "330" - ], - "point": 2.09, - "desc": "문제 2/울타리/[시작]의 세부 동작 3/크기를 '330' 으로 정하기", - "type": "list" - }, - { - "ele": [ - "$[0][4].type", - "$[0][4].params[0]" - ], - "answer": [ - "repeat_inf", - null - ], - "point": 2.09, - "desc": "문제 2/울타리/반복/계속 반복하기", - "type": "list" - }, - { - "ele": [ - "$[0][4].statements[0][0].type", - "$[0][4].statements[0][0].params[0].type" - ], - "answer": [ - "_if", - "reach_something" - ], - "point": 2.09, - "desc": "문제 2/울타리/만일/만일 '사자' 에 닿았는가? 라면", - "type": "list" - }, - { - "ele": "$[0][4].statements[0][0].statements[0][0].params[0].params", - "answer": [ - "사자가 탈출했다!" - ], - "point": 2.09, - "desc": "문제 2/울타리/[만일]의 세부 동작 1/'사자가 탈출했다!' 를 '말하기'" - }, - { - "ele": [ - "$[0][4].statements[0][0].statements[0][1].type", - "$[0][4].statements[0][0].statements[0][1].params[0]" - ], - "answer": [ - "stop_object", - "all" - ], - "point": 2.09, - "desc": "문제 2/울타리/[만일]의 세부 동작 2/'모든' 코드 멈추기", - "type": "list" - } - ], - "sortBlock": [ - "when_run_button_click" - ], - "sort": 118 - }, - "5-0": { - "type": "script", - "ele": "$.objects[?(@.name=~'사자')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "point": 2.09, - "desc": "문제 2/사자/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": [ - "$[0][1].type", - "$[0][1].params[0].params[0]", - "$[0][1].params[1].params[0]" - ], - "answer": [ - "locate_xy", - "100", - "80" - ], - "point": 2.09, - "desc": "문제 2/사자/[시작]의 세부 동작 1/x: '100' y: '80' 위치로 이동하기", - "type": "list" - }, - { - "ele": [ - "$[0][2].type", - "$[0][2].params[0].params[0]" - ], - "answer": [ - "set_scale_size", - "80" - ], - "point": 2.09, - "desc": "문제 2/사자/[시작]의 세부 동작 2/크기를 '80' 으로 정하기", - "type": "list" - }, - { - "ele": [ - "$[0][3].type", - "$[0][3].params[0].type" - ], - "answer": [ - "change_to_some_shape", - "get_pictures" - ], - "point": 2.09, - "desc": "문제 2/사자/[시작]의 세부 동작 3/'사자_4' 모양으로 바꾸기", - "type": "list" - }, - { - "ele": [ - "$[0][4].type", - "$[0][4].params[0]" - ], - "answer": [ - "repeat_inf", - null - ], - "point": 2.09, - "desc": "문제 2/사자/반복/계속 반복하기", - "type": "list" - }, - { - "ele": [ - "$[0][4].statements[0][0].type", - "$[0][4].statements[0][0].params[0].type", - "$[0][4].statements[0][0].params[0].params[0]" - ], - "answer": [ - "_if", - "is_press_some_key", - "38" - ], - "point": 2.09, - "desc": "문제 2/사자/만일 1/만일 '위쪽 화살표' 키가 눌러져 있는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][4].statements[0][0].statements[0][0].type", - "$[0][4].statements[0][0].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_y", - "5" - ], - "point": 2.09, - "desc": "문제 2/사자/[만일 1]의 세부 동작/y 좌표를 '5' 만큼 바꾸기", - "type": "list" - }, - { - "ele": [ - "$[0][4].statements[0][1].type", - "$[0][4].statements[0][1].params[0].type", - "$[0][4].statements[0][1].params[0].params[0]" - ], - "answer": [ - "_if", - "is_press_some_key", - "40" - ], - "point": 2.09, - "desc": "문제 2/사자/만일 2/만일 '아래쪽 화살표' 키가 눌러져 있는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][4].statements[0][1].statements[0][0].type", - "$[0][4].statements[0][1].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_y", - "-5" - ], - "point": 2.09, - "desc": "문제 2/사자/[만일 2]의 세부 동작/y 좌표를 '-5' 만큼 바꾸기", - "type": "list" - }, - { - "ele": [ - "$[0][4].statements[0][2].type", - "$[0][4].statements[0][2].params[0].type", - "$[0][4].statements[0][2].params[0].params[0]" - ], - "answer": [ - "_if", - "is_press_some_key", - "37" - ], - "point": 2.09, - "desc": "문제 2/사자/만일 3/만일 '왼쪽 화살표' 키가 눌러져 있는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][4].statements[0][2].statements[0][0].type", - "$[0][4].statements[0][2].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_x", - "-5" - ], - "point": 2.09, - "desc": "문제 2/사자/[만일 3]의 세부 동작/x 좌표를 '-5' 만큼 바꾸기", - "type": "list" - }, - { - "ele": [ - "$[0][4].statements[0][3].type", - "$[0][4].statements[0][3].params[0].type", - "$[0][4].statements[0][3].params[0].params[0]" - ], - "answer": [ - "_if", - "is_press_some_key", - "39" - ], - "point": 2.09, - "desc": "문제 2/사자/만일 4/만일 '오른쪽 화살표' 키가 눌러져 있는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][4].statements[0][3].statements[0][0].type", - "$[0][4].statements[0][3].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_x", - "5" - ], - "point": 2.09, - "desc": "문제 2/사자/[만일 4]의 세부 동작/x 좌표를 '5' 만큼 바꾸기", - "type": "list" - }, - { - "ele": [ - "$[0][4].statements[0][4].type", - "$[0][4].statements[0][4].params[0].type" - ], - "answer": [ - "_if", - "reach_something" - ], - "point": 2.09, - "desc": "문제 2/사자/만일 5/만일 '사육사' 에 닿았는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][4].statements[0][4].statements[0][0].type", - "$[0][4].statements[0][4].statements[0][0].params[0].params[0]", - "$[0][4].statements[0][4].statements[0][0].params[1].params[0]" - ], - "answer": [ - "locate_xy", - "100", - "80" - ], - "point": 2.09, - "desc": "문제 2/사자/[만일 5]의 세부 동작 1/'x: '100' y: '80' 위치로 이동하기", - "type": "list" - }, - { - "ele": "$[0][4].statements[0][4].statements[0][1].params[*].params", - "answer": [ - "다시 돌아가야겠군!", - "0.5" - ], - "point": 2.09, - "desc": "문제 2/사자/[만일 5]의 세부 동작 2/'다시 돌아가야겠군!' 을 '0.5' 초 동안 '말하기'" - }, - { - "ele": [ - "$[0][4].statements[0][5].type", - "$[0][4].statements[0][5].params[0].type" - ], - "answer": [ - "_if", - "reach_something" - ], - "point": 2.09, - "desc": "문제 2/사자/만일 6/만일 '코끼리' 에 닿았는가? 라면", - "type": "list" - }, - { - "ele": [ - "$[0][4].statements[0][5].statements[0][0].type", - "$[0][4].statements[0][5].statements[0][0].params[0].params[0]" - ], - "answer": [ - "move_y", - "30" - ], - "point": 2.22, - "desc": "문제 2/사자/[만일 6]의 세부 동작 1/y 좌표를 '30' 만큼 바꾸기", - "type": "list" - }, - { - "ele": "$[0][4].statements[0][5].statements[0][1].params[*].params", - "answer": [ - "길이 막혔다!", - "0.5" - ], - "point": 2.09, - "desc": "문제 2/사자/[만일 6]의 세부 동작 2/'길이 막혔다!' 를 '0.5' 초 동안 '말하기'" - } - ], - "sortBlock": [ - "when_run_button_click" - ], - "sort": 126 - } -} \ No newline at end of file diff --git a/correct/2602_3_CAS_2_A.json b/correct/2602_3_CAS_2_A.json index 5cc6e44..875bfc8 100644 --- a/correct/2602_3_CAS_2_A.json +++ b/correct/2602_3_CAS_2_A.json @@ -18,7 +18,7 @@ "ele": "$..objects[?(@.name=='렌치')]", "point": 1.6, "desc": "문제 1/렌치/[개체] 이름 설정 1/이름 변경 없음", - "sort": 13 + "sort": 13 }, "1-4": { "type": "scene", @@ -71,37 +71,21 @@ "$[0][1].params[0].params[0]", "$[0][1].params[1].params[0]" ], - "answer": [ - "locate_xy", - "-90", - "-40" - ], + "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" - ], + "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" - ], + "ele": ["$[0][3].type", "$[0][3].params[0].params[0]"], + "answer": ["set_scale_size", "110"], "point": 1.29, "desc": "문제 2/렌치/[시작]의 세부 동작 3/크기를 '110' 으로 정하기", "type": "list" @@ -118,11 +102,7 @@ "$[1][1].params[0].params[0]", "$[1][1].params[1].params[0]" ], - "answer": [ - "locate_xy", - "25", - "10" - ], + "answer": ["locate_xy", "25", "10"], "point": 1.29, "desc": "문제 2/렌치/[오브젝트]의 세부 동작 1/x: '25' y: '10' 위치로 이동하기", "type": "list" @@ -148,10 +128,7 @@ }, { "ele": "$[1][2].statements[0][0].params[*].params", - "answer": [ - "로봇이 수리되었습니다.", - "1" - ], + "answer": ["로봇이 수리되었습니다.", "1"], "point": 1.29, "desc": "문제 2/렌치/[만일]의 세부 동작 1/'로봇이 수리되었습니다.' 를 '1' 초 동안 '말하기'" }, @@ -163,10 +140,7 @@ }, { "ele": "$[1][2].statements[1][0].params[*].params", - "answer": [ - "고장 원인을 다시 확인하세요.", - "2" - ], + "answer": ["고장 원인을 다시 확인하세요.", "2"], "point": 1.29, "desc": "문제 2/렌치/[아니면]의 세부 동작/'고장 원인을 다시 확인하세요.' 를 '2' 초 동안 '말하기'" }, @@ -176,20 +150,13 @@ "$[1][3].params[0].params[0]", "$[1][3].params[1].params[0]" ], - "answer": [ - "locate_xy", - "-90", - "-40" - ], + "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" - ], + "sortBlock": ["when_run_button_click", "when_object_click"], "sort": 105 }, "14-0": { @@ -222,24 +189,14 @@ "$[0][1].params[0].params[0]", "$[0][1].params[1].params[0]" ], - "answer": [ - "locate_xy", - "95", - "-30" - ], + "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" - ], + "ele": ["$[0][2].type", "$[0][2].params[0].params[0]"], + "answer": ["set_scale_size", "120"], "point": 1.29, "desc": "문제 2/로봇/[시작]의 세부 동작 2/크기를 '120' 으로 정하기", "type": "list" @@ -251,27 +208,18 @@ "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" - ], + "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][2].params[*].params", + "answer": ["수리되었습니다.", "1"], + "point": 1.29, + "desc": "문제 2/로봇/[수리 완료]의 세부 동작 2/'수리되었습니다.' 를 '1' 초 동안 '말하기'" + }, { "ele": [ "$[1][3].type", @@ -296,20 +244,14 @@ "$[1][3].statements[0][0].type", "$[1][3].statements[0][0].params[0]" ], - "answer": [ - "set_visible_answer", - "HIDE" - ], + "answer": ["set_visible_answer", "HIDE"], "point": 1.29, "desc": "문제 2/로봇/[만일]의 세부 동작 1/대답 '숨기기'", "type": "list" }, { "ele": "$[1][3].statements[0][1].params[*].params", - "answer": [ - "모두 수리했습니다.", - "1" - ], + "answer": ["모두 수리했습니다.", "1"], "point": 1.29, "desc": "문제 2/로봇/[만일]의 세부 동작 2/'모두 수리했습니다.' 를 '1' 초 동안 '말하기'" }, @@ -332,14 +274,8 @@ "desc": "문제 2/로봇/로봇 이동/'로봇 이동' 신호를 받았을 때" }, { - "ele": [ - "$[2][1].type", - "$[2][1].params[0].params[0]" - ], - "answer": [ - "move_x", - "120" - ], + "ele": ["$[2][1].type", "$[2][1].params[0].params[0]"], + "answer": ["move_x", "120"], "point": 1.29, "desc": "문제 2/로봇/[로봇 이동]의 세부 동작 1/x 좌표를 '120' 만큼 바꾸기", "type": "list" @@ -351,14 +287,8 @@ "desc": "문제 2/로봇/[로봇 이동]의 세부 동작 2/모양 숨기기" }, { - "ele": [ - "$[2][3].type", - "$[2][3].params[0].params[0]" - ], - "answer": [ - "wait_second", - "0.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" @@ -369,24 +299,14 @@ "$[2][4].params[0].params[0]", "$[2][4].params[1].params[0]" ], - "answer": [ - "locate_xy", - "95", - "-30" - ], + "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" - ], + "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" @@ -423,11 +343,7 @@ "$[0][1].params[0].params[0]", "$[0][1].params[1].params[0]" ], - "answer": [ - "locate_xy", - "180", - "10" - ], + "answer": ["locate_xy", "180", "10"], "point": 1.29, "desc": "문제 2/망치/[시작]의 세부 동작/x: '180' y: '10' 위치로 이동하기", "type": "list" @@ -439,45 +355,27 @@ "desc": "문제 2/망치/오브젝트/오브젝트를 클릭했을 때" }, { - "ele": [ - "$[1][1].type", - "$[1][1].params[0].params[0]" - ], - "answer": [ - "rotate_absolute", - "320" - ], + "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" - ], + "answer": ["더 고장났어요!", "2"], "point": 1.29, "desc": "문제 2/망치/[오브젝트]의 세부 동작 2/'더 고장났어요!' 를 '2' 초 동안 '말하기'" }, { - "ele": [ - "$[1][3].type", - "$[1][3].params[0].params[0]" - ], - "answer": [ - "rotate_absolute", - "0" - ], + "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" - ], + "sortBlock": ["when_run_button_click", "when_object_click"], "sort": 135 }, "6-0": { @@ -497,24 +395,14 @@ "$[0][1].params[0].params[0]", "$[0][1].params[1].params[0]" ], - "answer": [ - "locate_xy", - "10", - "15" - ], + "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" - ], + "ele": ["$[0][2].type", "$[0][2].params[0].params[0]"], + "answer": ["rotate_absolute", "180"], "point": 1.29, "desc": "문제 2/로봇 팔/[시작]의 세부 동작 2/방향을 '180°' 로 정하기", "type": "list" @@ -526,12 +414,7 @@ "$[0][3].params[0].params[1]", "$[0][3].params[0].params[2].params[0]" ], - "answer": [ - "repeat_while_true", - null, - "EQUAL", - "2" - ], + "answer": ["repeat_while_true", null, "EQUAL", "2"], "point": 1.29, "desc": "문제 2/로봇 팔/반복/'수리된 로봇 값' = '2' 이 될 때까지' 반복하기", "type": "list" @@ -541,10 +424,7 @@ "$[0][3].statements[0][0].type", "$[0][3].statements[0][0].params[0].params[0]" ], - "answer": [ - "wait_second", - "1" - ], + "answer": ["wait_second", "1"], "point": 1.29, "desc": "문제 2/로봇 팔/[반복]의 세부 동작 1/1' 초 기다리기", "type": "list" @@ -554,10 +434,7 @@ "$[0][3].statements[0][1].type", "$[0][3].statements[0][1].params[0].params[0]" ], - "answer": [ - "ask_and_wait", - "어디가 고장났나요?" - ], + "answer": ["ask_and_wait", "어디가 고장났나요?"], "point": 1.29, "desc": "문제 2/로봇 팔/[반복]의 세부 동작 2/'어디가 고장났나요?' 를 묻고 대답 기다리기", "type": "list" @@ -594,29 +471,20 @@ "$[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 - ], + "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" - ], + "answer": ["도구를 선택하세요.", "2"], "point": 1.29, "desc": "문제 2/로봇 팔/[만일]의 세부 동작 2/'도구를 선택하세요' 를 '2' 초 동안 '말하기'" }, { "ele": "$[0][3].statements[0][2].statements[1][0].params[*].params", - "answer": [ - "나사 조임, 부품 고장 중 무엇입니까?", - "2" - ], + "answer": ["나사 조임, 부품 고장 중 무엇입니까?", "2"], "point": 1.29, "desc": "문제 2/로봇 팔/[아니면]의 세부 동작 1/'나사 조임, 부품 고장 중 무엇입니까?' 를 '2' 초 동안 말하기" }, @@ -625,10 +493,7 @@ "$[0][3].statements[0][3].type", "$[0][3].statements[0][3].params[0].params[0]" ], - "answer": [ - "wait_second", - "2" - ], + "answer": ["wait_second", "2"], "point": 1.29, "desc": "문제 2/로봇 팔/[아니면]의 세부 동작 2/'2' 초 기다리기", "type": "list" @@ -640,14 +505,8 @@ "desc": "문제 2/로봇 팔/오브젝트/오브젝트를 클릭했을 때" }, { - "ele": [ - "$[1][1].type", - "$[1][1].params[0].params[0]" - ], - "answer": [ - "rotate_absolute", - "130" - ], + "ele": ["$[1][1].type", "$[1][1].params[0].params[0]"], + "answer": ["rotate_absolute", "130"], "point": 1.29, "desc": "문제 2/로봇 팔/[오브젝트]의 세부 동작 1/방향을 '130°' 로 정하기", "type": "list" @@ -673,10 +532,7 @@ }, { "ele": "$[1][2].statements[0][0].params[*].params", - "answer": [ - "로봇이 수리되었습니다.", - "1" - ], + "answer": ["로봇이 수리되었습니다.", "1"], "point": 1.29, "desc": "문제 2/로봇 팔/[만일]의 세부 동작 1/'로봇이 수리되었습니다.' 를 '1' 초 동안 '말하기'" }, @@ -688,10 +544,7 @@ }, { "ele": "$[1][2].statements[1][0].params[*].params", - "answer": [ - "고장 원인을 확인하세요.", - "2" - ], + "answer": ["고장 원인을 확인하세요.", "2"], "point": 1.29, "desc": "문제 2/로봇 팔/[아니면]의 세부 동작/'고장 원인을 다시 확인하세요' 를 '2' 초 동안 '말하기'" }, @@ -701,33 +554,20 @@ "$[1][3].params[0].params[0]", "$[1][3].params[1].params[0]" ], - "answer": [ - "locate_xy", - "10", - "15" - ], + "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" - ], + "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" - ], + "sortBlock": ["when_run_button_click", "when_object_click"], "sort": 141 }, "7-0": { @@ -758,11 +598,7 @@ "$[0][3].params[0].params[0]", "$[0][3].params[1]" ], - "answer": [ - "dialog", - "모든 로봇 수리 완료!", - "speak" - ], + "answer": ["dialog", "모든 로봇 수리 완료!", "speak"], "point": 1.29, "desc": "문제 2/로봇방/[장면 2]의 세부 동작 3/'모든 로봇 수리 완료!' 를 '말하기'", "type": "list" @@ -779,11 +615,7 @@ "$[1][1].params[0]", "$[1][1].params[1].params[0]" ], - "answer": [ - "add_effect_amount", - "color", - "45" - ], + "answer": ["add_effect_amount", "color", "45"], "point": 2, "desc": "문제 3/로봇방/[오브젝트]의 세부 동작 1/'색깔' 효과를 '45' 만큼 주기", "type": "list" @@ -794,24 +626,14 @@ "$[1][2].params[0].params[0]", "$[1][2].params[1]" ], - "answer": [ - "dialog", - "처음부터 다시 실행합니다.", - "speak" - ], + "answer": ["dialog", "처음부터 다시 실행합니다.", "speak"], "point": 2, "desc": "문제 3/로봇방/[오브젝트]의 세부 동작 2/'처음부터 다시 실행합니다.' 를 '말하기'", "type": "list" }, { - "ele": [ - "$[1][3].type", - "$[1][3].params[0].params[0]" - ], - "answer": [ - "wait_second", - "2" - ], + "ele": ["$[1][3].type", "$[1][3].params[0].params[0]"], + "answer": ["wait_second", "2"], "point": 2, "desc": "문제 3/로봇방/[오브젝트]의 세부 동작 3/'2' 초 기다리기", "type": "list" @@ -823,10 +645,7 @@ "desc": "문제 3/로봇방/[오브젝트]의 세부 동작 4/처음부터 다시 실행하기" } ], - "sortBlock": [ - "when_scene_start", - "when_object_click" - ], + "sortBlock": ["when_scene_start", "when_object_click"], "sort": 160 } -} \ No newline at end of file +} diff --git a/correct/2602_4_CAS_2_A.json b/correct/2602_4_CAS_2_A.json new file mode 100644 index 0000000..20cf5b0 --- /dev/null +++ b/correct/2602_4_CAS_2_A.json @@ -0,0 +1,697 @@ +{ + "1-1": { + "type": "scene", + "ele": "$..objects[?(@.name=='우주')]", + "point": 1.7, + "desc": "문제 1/장면 1/[배경] 이름 설정 1/이름을 '우주'로 변경하기", + "sort": 11 + }, + "1-2": { + "type": "scene", + "ele": "$.[objects,scenes][?(@.name=='장면 2')]", + "point": 1.7, + "desc": "문제 1/장면 2/[배경] 이름 설정 2/이름 변경 없음", + "sort": 12 + }, + "1-3": { + "type": "scene", + "ele": "$..objects[?(@.name=='우주비행사')]", + "point": 1.7, + "desc": "문제 1/우주인(4)/[개체] 이름 설정 1/이름을 '우주비행사'로 변경하기", + "sort": 13 + }, + "1-4": { + "type": "scene", + "ele": "$..objects[?(@.name=='혜성')]", + "point": 1.7, + "desc": "문제 1/별똥별(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/열기구(2)/[개체] 이름 설정 4/이름을 '낙하산'으로 변경하기", + "sort": 16 + }, + "1-0": { + "ele": "$..variables[?(@.name=='구조자')]", + "point": 1.63, + "desc": "문제 2/우주비행사/변수/'구조자' 변수 만들기 (변수 기본값은 '0', '모든 오브젝트에 사용' 설정)", + "type": "scene", + "sort": 101 + }, + "2-0": { + "type": "script", + "ele": "$.objects[?(@.name=~'우주비행사|우주인')].script", + "blocks": [ + { + "ele": "$[0][0].type", + "answer": "when_run_button_click", + "point": 1.63, + "desc": "문제 2/우주비행사/시작/시작하기 버튼을 클릭했을 때" + }, + { + "ele": [ + "$[0][1].type", + "$[0][1].params[0].params[0]" + ], + "answer": [ + "set_scale_size", + "70" + ], + "point": 1.63, + "desc": "문제 2/우주비행사/[시작]의 세부 동작 1/크기를 '70' 으로 정하기", + "type": "list" + }, + { + "ele": [ + "$[0][2].type", + "$[0][2].params[0]" + ], + "answer": [ + "repeat_inf", + null + ], + "point": 1.63, + "desc": "문제 2/우주비행사/반복/계속 반복하기", + "type": "list" + }, + { + "ele": "$[0][2].statements[0][0].type", + "answer": "hide", + "point": 1.63, + "desc": "문제 2/우주비행사/[반복]의 세부 동작 1/모양 숨기기" + }, + { + "ele": [ + "$[0][2].statements[0][1].type", + "$[0][2].statements[0][1].params[0].params[1].params[0]", + "$[0][2].statements[0][1].params[0].params[3].params[0]", + "$[0][2].statements[0][1].params[1].params[1].params[0]", + "$[0][2].statements[0][1].params[1].params[3].params[0]" + ], + "answer": [ + "locate_xy", + "-210", + "210", + "-120", + "120" + ], + "point": 1.63, + "desc": "문제 2/우주비행사/[반복]의 세부 동작 2/x: '-210 부터 210 사이의 무작위 수' y: '-120 부터 120 사이의 무작위 수' 위치로 이동하기", + "type": "list" + }, + { + "ele": [ + "$[0][2].statements[0][2].type", + "$[0][2].statements[0][2].params[0].type", + "$[0][2].statements[0][2].params[0].params[1].params[0]", + "$[0][2].statements[0][2].params[0].params[3].params[0]" + ], + "answer": [ + "wait_second", + "calc_rand", + "0", + "3" + ], + "point": 1.63, + "desc": "문제 2/우주비행사/[반복]의 세부 동작 3/'0 부터 3 사이의 무작위 수' 초 기다리기", + "type": "list" + }, + { + "ele": "$[0][2].statements[0][3].type", + "answer": "show", + "point": 1.63, + "desc": "문제 2/우주비행사/[반복]의 세부 동작 4/모양 보이기" + }, + { + "ele": [ + "$[0][2].statements[0][4].type", + "$[0][2].statements[0][4].params[0].params[0]" + ], + "answer": [ + "wait_second", + "1.5" + ], + "point": 1.63, + "desc": "문제 2/우주비행사/[반복]의 세부 동작 5/'1.5' 초 기다리기", + "type": "list" + }, + { + "ele": [ + "$[0][2].statements[0][5].type", + "$[0][2].statements[0][5].params[0].type" + ], + "answer": [ + "_if", + "reach_something" + ], + "point": 1.63, + "desc": "문제 2/우주비행사/만일/만일 '로켓' 에 닿았는가? 라면", + "type": "list" + }, + { + "ele": [ + "$[0][2].statements[0][5].statements[0][0].type", + "$[0][2].statements[0][5].statements[0][0].params[1].params[0]" + ], + "answer": [ + "change_variable", + "1" + ], + "point": 1.63, + "desc": "문제 2/우주비행사/[만일]의 세부 동작/'구조자' 에 '1' 만큼 더하기", + "type": "list" + } + ], + "sortBlock": [ + "when_run_button_click" + ], + "sort": 102 + }, + "3-0": { + "type": "script", + "ele": "$.objects[?(@.name=~'혜성|별똥별')].script", + "blocks": [ + { + "ele": "$[0][0].type", + "answer": "when_run_button_click", + "point": 1.63, + "desc": "문제 2/혜성/시작/시작하기 버튼을 클릭했을 때" + }, + { + "ele": [ + "$[0][1].type", + "$[0][1].params[0].params[0]" + ], + "answer": [ + "set_scale_size", + "60" + ], + "point": 1.63, + "desc": "문제 2/혜성/[시작]의 세부 동작 1/크기를 '60' 으로 정하기", + "type": "list" + }, + { + "ele": [ + "$[0][2].type", + "$[0][2].params[0]" + ], + "answer": [ + "repeat_inf", + null + ], + "point": 1.63, + "desc": "문제 2/혜성/반복/계속 반복하기", + "type": "list" + }, + { + "ele": "$[0][2].statements[0][0].type", + "answer": "hide", + "point": 1.63, + "desc": "문제 2/혜성/[반복]의 세부 동작 1/모양 숨기기" + }, + { + "ele": [ + "$[0][2].statements[0][1].type", + "$[0][2].statements[0][1].params[0].params[1].params[0]", + "$[0][2].statements[0][1].params[0].params[3].params[0]", + "$[0][2].statements[0][1].params[1].params[1].params[0]", + "$[0][2].statements[0][1].params[1].params[3].params[0]" + ], + "answer": [ + "locate_xy", + "-210", + "210", + "-120", + "120" + ], + "point": 1.63, + "desc": "문제 2/혜성/[반복]의 세부 동작 2/x: '-210 부터 210 사이의 무작위 수' y: '-120 부터 120 사이의 무작위 수' 위치로 이동하기", + "type": "list" + }, + { + "ele": [ + "$[0][2].statements[0][2].type", + "$[0][2].statements[0][2].params[0].type", + "$[0][2].statements[0][2].params[0].params[1].params[0]", + "$[0][2].statements[0][2].params[0].params[3].params[0]" + ], + "answer": [ + "wait_second", + "calc_rand", + "0", + "3" + ], + "point": 1.63, + "desc": "문제 2/혜성/[반복]의 세부 동작 3/'0 부터 3 사이의 무작위 수' 초 기다리기", + "type": "list" + }, + { + "ele": "$[0][2].statements[0][3].type", + "answer": "show", + "point": 1.63, + "desc": "문제 2/혜성/[반복]의 세부 동작 4/모양 보이기" + }, + { + "ele": [ + "$[0][2].statements[0][4].type", + "$[0][2].statements[0][4].params[0].params[0]" + ], + "answer": [ + "wait_second", + "1.5" + ], + "point": 1.63, + "desc": "문제 2/혜성/[반복]의 세부 동작 4/'1.5' 초 기다리기", + "type": "list" + }, + { + "ele": [ + "$[0][2].statements[0][5].type", + "$[0][2].statements[0][5].params[0].type" + ], + "answer": [ + "_if", + "reach_something" + ], + "point": 1.63, + "desc": "문제 2/혜성/만일/만일 '로켓' 에 닿았는가? 라면", + "type": "list" + }, + { + "ele": [ + "$[0][2].statements[0][5].statements[0][0].type", + "$[0][2].statements[0][5].statements[0][0].params[1].params[0]" + ], + "answer": [ + "change_variable", + "-1" + ], + "point": 1.63, + "desc": "문제 2/혜성/[만일]의 세부 동작 1/'구조자' 에 '-1' 만큼 더하기", + "type": "list" + } + ], + "sortBlock": [ + "when_run_button_click" + ], + "sort": 113 + }, + "22-0": { + "ele": "$.messages[?(@.name=='탈출')]", + "point": 1.63, + "desc": "문제 2/로켓/신호/'탈출' 신호 만들기", + "type": "scene", + "sort": 122 + }, + "4-0": { + "type": "script", + "ele": "$.objects[?(@.name=~'로켓')].script", + "blocks": [ + { + "ele": "$[0][0].type", + "answer": "when_run_button_click", + "point": 1.63, + "desc": "문제 2/로켓/시작/시작하기 버튼을 클릭했을 때" + }, + { + "ele": [ + "$[0][1].type", + "$[0][1].params[0].params[0]", + "$[0][1].params[1].params[0]" + ], + "answer": [ + "locate_xy", + "10", + "10" + ], + "point": 1.63, + "desc": "문제 2/로켓/[시작]의 세부 동작 1/x: '10' y: '10' 위치로 이동하기", + "type": "list" + }, + { + "ele": [ + "$[0][2].type", + "$[0][2].params[0].params[0]" + ], + "answer": [ + "set_scale_size", + "60" + ], + "point": 1.63, + "desc": "문제 2/로켓/[시작]의 세부 동작 2/크기를 '60' 으로 정하기", + "type": "list" + }, + { + "ele": [ + "$[0][3].type", + "$[0][3].params[0]" + ], + "answer": [ + "repeat_inf", + null + ], + "point": 1.63, + "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]" + ], + "answer": [ + "_if", + "is_press_some_key", + "37" + ], + "point": 1.63, + "desc": "문제 2/로켓/만일 1/만일 '왼쪽 화살표' 키가 눌러져 있는가? 라면", + "type": "list" + }, + { + "ele": [ + "$[0][3].statements[0][0].statements[0][0].type", + "$[0][3].statements[0][0].statements[0][0].params[0].params[0]" + ], + "answer": [ + "move_x", + "-5" + ], + "point": 1.63, + "desc": "문제 2/로켓/[만일 1]의 세부 동작/x 좌표를 '-5' 만큼 바꾸기", + "type": "list" + }, + { + "ele": [ + "$[0][3].statements[0][1].type", + "$[0][3].statements[0][1].params[0].type", + "$[0][3].statements[0][1].params[0].params[0]" + ], + "answer": [ + "_if", + "is_press_some_key", + "39" + ], + "point": 1.63, + "desc": "문제 2/로켓/만일 2/만일 '오른쪽 화살표' 키가 눌러져 있는가? 라면", + "type": "list" + }, + { + "ele": [ + "$[0][3].statements[0][1].statements[0][0].type", + "$[0][3].statements[0][1].statements[0][0].params[0].params[0]" + ], + "answer": [ + "move_x", + "5" + ], + "point": 1.63, + "desc": "문제 2/로켓/[만일 2]의 세부 동작/x 좌표를 '5' 만큼 바꾸기", + "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]" + ], + "answer": [ + "_if", + "is_press_some_key", + "38" + ], + "point": 1.63, + "desc": "문제 2/로켓/만일 3/만일 '위쪽 화살표' 키가 눌러져 있는가? 라면", + "type": "list" + }, + { + "ele": [ + "$[0][3].statements[0][2].statements[0][0].type", + "$[0][3].statements[0][2].statements[0][0].params[0].params[0]" + ], + "answer": [ + "move_y", + "5" + ], + "point": 1.63, + "desc": "문제 2/로켓/[만일 3]의 세부 동작/y 좌표를 '5' 만큼 바꾸기", + "type": "list" + }, + { + "ele": [ + "$[0][3].statements[0][3].type", + "$[0][3].statements[0][3].params[0].type", + "$[0][3].statements[0][3].params[0].params[0]" + ], + "answer": [ + "_if", + "is_press_some_key", + "40" + ], + "point": 1.63, + "desc": "문제 2/로켓/만일 4/만일 '아래쪽 화살표' 키가 눌러져 있는가? 라면", + "type": "list" + }, + { + "ele": [ + "$[0][3].statements[0][3].statements[0][0].type", + "$[0][3].statements[0][3].statements[0][0].params[0].params[0]" + ], + "answer": [ + "move_y", + "-5" + ], + "point": 1.63, + "desc": "문제 2/로켓/[만일 4]의 세부 동작/y 좌표를 '-5' 만큼 바꾸기", + "type": "list" + }, + { + "ele": [ + "$[0][3].statements[0][4].type", + "$[0][3].statements[0][4].params[0].type", + "$[0][3].statements[0][4].params[0].params[0].type", + "$[0][3].statements[0][4].params[0].params[1]", + "$[0][3].statements[0][4].params[0].params[2].params[0]" + ], + "answer": [ + "_if", + "boolean_basic_operator", + "get_variable", + "EQUAL", + "5" + ], + "point": 1.63, + "desc": "문제 2/로켓/만일 5/만일 '구조자' 값 = '5' 이라면", + "type": "list" + }, + { + "ele": "$[0][3].statements[0][4].statements[0][0].type", + "answer": "hide", + "point": 1.63, + "desc": "문제 2/로켓/[만일 5]의 세부 동작 1/모양 숨기기" + }, + { + "ele": "$[0][3].statements[0][4].statements[0][1].type", + "answer": "message_cast", + "point": 1.63, + "desc": "문제 2/로켓/[만일 5]의 세부 동작 2/'탈출' 신호 보내기" + } + ], + "sortBlock": [ + "when_run_button_click" + ], + "sort": 123 + }, + "5-0": { + "type": "script", + "ele": "$.objects[?(@.name=~'낙하산|열기구')].script", + "blocks": [ + { + "ele": "$[0][0].type", + "answer": "when_run_button_click", + "point": 1.63, + "desc": "문제 2/낙하산/시작/시작하기 버튼을 클릭했을 때" + }, + { + "ele": "$[0][1].type", + "answer": "hide", + "point": 1.63, + "desc": "문제 2/낙하산/[시작]의 세부 동작/모양 숨기기" + }, + { + "ele": "$[1][0].type", + "answer": "when_message_cast", + "point": 1.63, + "desc": "문제 2/낙하산/신호/'탈출' 신호를 받았을 때" + }, + { + "ele": "$[1][1].type", + "answer": "locate", + "point": 1.63, + "desc": "문제 2/낙하산/[신호]의 세부 동작 1/'로켓' 위치로 이동하기" + }, + { + "ele": "$[1][2].type", + "answer": "show", + "point": 1.63, + "desc": "문제 2/낙하산/[신호]의 세부 동작 2/모양 보이기" + }, + { + "ele": [ + "$[1][3].type", + "$[1][3].params[0].params[0]", + "$[1][3].params[1]" + ], + "answer": [ + "dialog", + "구출완료!", + "speak" + ], + "point": 1.63, + "desc": "문제 2/낙하산/[신호]의 세부 동작 3/'구출완료!' 를 '말하기'", + "type": "list" + }, + { + "ele": [ + "$[1][4].type", + "$[1][4].params[0]" + ], + "answer": [ + "stop_object", + "other_objects" + ], + "point": 1.63, + "desc": "문제 2/낙하산/[신호]의 세부 동작 4/'다른 오브젝트의' 코드 멈추기", + "type": "list" + }, + { + "ele": [ + "$[1][5].type", + "$[1][5].params[0].params[0]" + ], + "answer": [ + "wait_second", + "2" + ], + "point": 1.63, + "desc": "문제 2/낙하산/[신호]의 세부 동작 5/'2' 초 기다리기", + "type": "list" + }, + { + "ele": "$[1][6].type", + "answer": "start_neighbor_scene", + "point": 1.63, + "desc": "문제 2/낙하산/[신호]의 세부 동작 6/'다음' 장면 시작하기" + } + ], + "sortBlock": [ + "when_run_button_click", + "when_message_cast" + ], + "sort": 139 + }, + "6-0": { + "type": "script", + "ele": "$.objects[?(@.name=~'공항')].script", + "blocks": [ + { + "ele": "$[0][0].type", + "answer": "when_scene_start", + "point": 1.63, + "desc": "문제 2/공항/장면 2/장면이 시작되었을 때" + }, + { + "ele": "$[0][1].type", + "answer": "hide_variable", + "point": 1.63, + "desc": "문제 2/공항/[장면 2]의 세부 동작 1/변수 '구조자' 숨기기" + }, + { + "ele": [ + "$[0][2].type", + "$[0][2].params[0].params[0]", + "$[0][2].params[1]" + ], + "answer": [ + "dialog", + "미션 성공!", + "speak" + ], + "point": 1.63, + "desc": "문제 2/공항/[장면 2]의 세부 동작 2/'미션 성공!' 을 '말하기'", + "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", + "35" + ], + "point": 2, + "desc": "문제 3/공항/[오브젝트]의 세부 동작 1/'색깔' 효과를 '35' 만큼 주기", + "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": 148 + } +} \ No newline at end of file diff --git a/correct/2507_CAT_3_A.json b/correct/2602_5_CAT_3_A.json similarity index 65% rename from correct/2507_CAT_3_A.json rename to correct/2602_5_CAT_3_A.json index 5c8df3c..32a3528 100644 --- a/correct/2507_CAT_3_A.json +++ b/correct/2602_5_CAT_3_A.json @@ -2,32 +2,37 @@ "1-1": { "type": "scene", "ele": "$..objects[?(@.name=='실험실')]", - "points": 2, - "desc": "문제 1/교실 뒤(3)/[배경] 이름 설정/이름을 '실험실'으로 변경하기" + "point": 2, + "desc": "문제 1/교실 뒤(3)/[배경] 이름 설정/이름을 '실험실'으로 변경하기", + "sort": 11 }, - "1-2": { + "1-3": { "type": "scene", "ele": "$..objects[?(@.name=='새로운 약')]", - "points": 2, - "desc": "문제 1/물약(빨강)/[개체] 이름 설정 1/이름을 '새로운 약'으로 변경하기" + "point": 2, + "desc": "문제 1/물약(빨강)/[개체] 이름 설정 1/이름을 '새로운 약'으로 변경하기", + "sort": 13 }, "1-4": { "type": "scene", "ele": "$..objects[?(@.name=='불')]", - "points": 2, - "desc": "문제 1/불(2)/[개체] 이름 설정 2/이름을 '불'로 변경하기" + "point": 2, + "desc": "문제 1/불(2)/[개체] 이름 설정 2/이름을 '불'로 변경하기", + "sort": 14 }, "1-5": { "type": "scene", "ele": "$..objects[?(@.name=='마법사')]", - "points": 2, - "desc": "문제 1/꼬마 마법사/[개체] 이름 설정 3/이름을 '마법사'로 변경하기" + "point": 2, + "desc": "문제 1/꼬마 마법사/[개체] 이름 설정 3/이름을 '마법사'로 변경하기", + "sort": 15 }, "1-6": { "type": "scene", "ele": "$..objects[?(@.name=='마법의 약')]", - "points": 2, - "desc": "문제 1/마법의 약/[개체] 이름 설정 4/이름 변경 없음" + "point": 2, + "desc": "문제 1/마법의 약/[개체] 이름 설정 4/이름 변경 없음", + "sort": 16 }, "2-0": { "type": "script", @@ -36,7 +41,7 @@ { "ele": "$[0][0].type", "answer": "when_run_button_click", - "points": 2.43, + "point": 2.43, "desc": "문제 2/새로운 약/시작/시작하기 버튼을 클릭했을 때" }, { @@ -45,37 +50,59 @@ "$[0][1].params[0].params[0]", "$[0][1].params[1].params[0]" ], - "answer": ["locate_xy", "50", "5"], - "points": 2.43, + "answer": [ + "locate_xy", + "50", + "5" + ], + "point": 2.43, "desc": "문제 2/새로운 약/[시작]의 세부 동작 1/x: '50' y: '5' 위치로 이동하기", "type": "list" }, { - "ele": "$[0][2].params[0].params[0]", - "answer": "60", - "points": 2.43, - "desc": "문제 2/새로운 약/[시작]의 세부 동작 2/크기를 '60' 으로 정하기" + "ele": [ + "$[0][2].type", + "$[0][2].params[0].params[0]" + ], + "answer": [ + "set_scale_size", + "60" + ], + "point": 2.43, + "desc": "문제 2/새로운 약/[시작]의 세부 동작 2/크기를 '60' 으로 정하기", + "type": "list" }, { "ele": "$[1][0].type", "answer": "when_object_click", - "points": 2.43, + "point": 2.43, "desc": "문제 2/새로운 약/오브젝트/오브젝트를 클릭했을 때" }, { - "ele": ["$[1][1].type", "$[1][1].params[0]"], - "answer": ["repeat_inf", null], - "points": 2.43, + "ele": [ + "$[1][1].type", + "$[1][1].params[0]" + ], + "answer": [ + "repeat_inf", + null + ], + "point": 2.43, "desc": "문제 2/새로운 약/반복/계속 반복하기", "type": "list" }, { "ele": "$[1][1].statements[0][0].type", "answer": "locate", - "points": 2.43, + "point": 2.43, "desc": "문제 2/새로운 약/[반복]의 세부 동작/'마우스 포인터' 위치로 이동하기" } - ] + ], + "sortBlock": [ + "when_run_button_click", + "when_object_click" + ], + "sort": 102 }, "3-0": { "type": "script", @@ -84,7 +111,7 @@ { "ele": "$[0][0].type", "answer": "when_run_button_click", - "points": 2.43, + "point": 2.43, "desc": "문제 2/불/시작/시작하기 버튼을 클릭했을 때" }, { @@ -93,21 +120,38 @@ "$[0][1].params[0].params[0]", "$[0][1].params[1].params[0]" ], - "answer": ["locate_xy", "-150", "-30"], - "points": 2.43, + "answer": [ + "locate_xy", + "-150", + "-30" + ], + "point": 2.43, "desc": "문제 2/불/[시작]의 세부 동작 1/x: '-150' y: '-30' 위치로 이동하기", "type": "list" }, { - "ele": "$[0][2].params[0].params[0]", - "answer": "90", - "points": 2.43, - "desc": "문제 2/불/[시작]의 세부 동작 2/크기를 '90' 으로 정하기" + "ele": [ + "$[0][2].type", + "$[0][2].params[0].params[0]" + ], + "answer": [ + "set_scale_size", + "90" + ], + "point": 2.43, + "desc": "문제 2/불/[시작]의 세부 동작 2/크기를 '90' 으로 정하기", + "type": "list" }, { - "ele": ["$[0][3].type", "$[0][3].params[0]"], - "answer": ["repeat_inf", null], - "points": 2.43, + "ele": [ + "$[0][3].type", + "$[0][3].params[0]" + ], + "answer": [ + "repeat_inf", + null + ], + "point": 2.43, "desc": "문제 2/불/반복/계속 반복하기", "type": "list" }, @@ -119,15 +163,21 @@ "$[0][3].statements[0][0].params[1].params[1].params[0]", "$[0][3].statements[0][0].params[1].params[3].params[0]" ], - "answer": ["locate_xy", "-150", "0", "-10", "40"], - "points": 2.43, + "answer": [ + "locate_xy", + "-150", + "0", + "-10", + "40" + ], + "point": 2.43, "desc": "문제 2/불/[반복]의 세부 동작 1/x: '-150 부터 0 사이의 무작위 수' y: '-10 부터 40 사이의 무작위 수' 위치로 이동하기", "type": "list" }, { "ele": "$[0][3].statements[0][1].type", "answer": "hide", - "points": 2.43, + "point": 2.43, "desc": "문제 2/불/[반복]의 세부 동작 2/모양 숨기기" }, { @@ -137,15 +187,20 @@ "$[0][3].statements[0][2].params[0].params[1].params[0]", "$[0][3].statements[0][2].params[0].params[3].params[0]" ], - "answer": ["wait_second", "calc_rand", "1", "2"], - "points": 2.43, + "answer": [ + "wait_second", + "calc_rand", + "1", + "2" + ], + "point": 2.43, "desc": "문제 2/불/[반복]의 세부 동작 3/'1 부터 2 사이의 무작위 수' 초 기다리기", "type": "list" }, { "ele": "$[0][3].statements[0][3].type", "answer": "show", - "points": 2.43, + "point": 2.43, "desc": "문제 2/불/[반복]의 세부 동작 4/모양 보이기" }, { @@ -153,8 +208,11 @@ "$[0][3].statements[0][4].type", "$[0][3].statements[0][4].params[0].params[0]" ], - "answer": ["wait_second", "0.5"], - "points": 2.43, + "answer": [ + "wait_second", + "0.5" + ], + "point": 2.43, "desc": "문제 2/불/[반복]의 세부 동작 5/'0.5' 초 기다리기", "type": "list" }, @@ -163,16 +221,26 @@ "$[0][3].statements[0][5].type", "$[0][3].statements[0][5].params[0].type" ], - "answer": ["_if", "reach_something"], - "points": 2.43, + "answer": [ + "_if", + "reach_something" + ], + "point": 2.43, "desc": "문제 2/불/만일/만일 '새로운 약' 에 닿았는가? 라면", "type": "list" }, { - "ele": "$[0][3].statements[0][5].statements[0][0].params[0].params[0]", - "answer": "300", - "points": 2.43, - "desc": "문제 2/불/[만일]의 세부 동작 1/크기를 '300' 으로 정하기" + "ele": [ + "$[0][3].statements[0][5].statements[0][0].type", + "$[0][3].statements[0][5].statements[0][0].params[0].params[0]" + ], + "answer": [ + "set_scale_size", + "300" + ], + "point": 2.43, + "desc": "문제 2/불/[만일]의 세부 동작 1/크기를 '300' 으로 정하기", + "type": "list" }, { "ele": [ @@ -180,8 +248,12 @@ "$[0][3].statements[0][5].statements[0][1].params[0].params[0]", "$[0][3].statements[0][5].statements[0][1].params[1]" ], - "answer": ["dialog", "마법 실패", "speak"], - "points": 2.43, + "answer": [ + "dialog", + "마법 실패", + "speak" + ], + "point": 2.43, "desc": "문제 2/불/[만일]의 세부 동작 2/'마법 실패' 를 '말하기'", "type": "list" }, @@ -190,12 +262,19 @@ "$[0][3].statements[0][5].statements[0][2].type", "$[0][3].statements[0][5].statements[0][2].params[0]" ], - "answer": ["stop_object", "all"], - "points": 2.43, + "answer": [ + "stop_object", + "all" + ], + "point": 2.43, "desc": "문제 2/불/[만일]의 세부 동작 3/'모든' 코드 멈추기", "type": "list" } - ] + ], + "sortBlock": [ + "when_run_button_click" + ], + "sort": 108 }, "4-0": { "type": "script", @@ -204,7 +283,7 @@ { "ele": "$[0][0].type", "answer": "when_run_button_click", - "points": 2.43, + "point": 2.43, "desc": "문제 2/마법사/시작/시작하기 버튼을 클릭했을 때" }, { @@ -213,24 +292,42 @@ "$[0][1].params[0].params[0]", "$[0][1].params[1].params[0]" ], - "answer": ["locate_xy", "135", "-20"], - "points": 2.43, + "answer": [ + "locate_xy", + "135", + "-20" + ], + "point": 2.43, "desc": "문제 2/마법사/[시작]의 세부 동작 1/x: '135' y: '-20' 위치로 이동하기", "type": "list" }, { - "ele": "$[0][2].params[0].params[0]", - "answer": "180", - "points": 2.43, - "desc": "문제 2/마법사/[시작]의 세부 동작 2/크기를 '180' 으로 정하기" + "ele": [ + "$[0][2].type", + "$[0][2].params[0].params[0]" + ], + "answer": [ + "set_scale_size", + "180" + ], + "point": 2.43, + "desc": "문제 2/마법사/[시작]의 세부 동작 2/크기를 '180' 으로 정하기", + "type": "list" }, { "ele": "$[0][3].params[*].params", - "answer": ["마법 실험을 해봐야지!", "2"], - "points": 2.43, + "answer": [ + "마법 실험을 해봐야지!", + "2" + ], + "point": 2.43, "desc": "문제 2/마법사/[시작]의 세부 동작 3/'마법 실험을 해봐야지!' 를 '2' 초 동안 '말하기'" } - ] + ], + "sortBlock": [ + "when_run_button_click" + ], + "sort": 121 }, "5-0": { "type": "script", @@ -239,7 +336,7 @@ { "ele": "$[0][0].type", "answer": "when_run_button_click", - "points": 2.43, + "point": 2.43, "desc": "문제 2/마법의 약/시작/시작하기 버튼을 클릭했을 때" }, { @@ -248,28 +345,45 @@ "$[0][1].params[0].params[0]", "$[0][1].params[1].params[0]" ], - "answer": ["locate_xy", "-40", "10"], - "points": 2.43, + "answer": [ + "locate_xy", + "-40", + "10" + ], + "point": 2.43, "desc": "문제 2/마법의 약/[시작]의 세부 동작 1/x: '-40' y: '10' 위치로 이동하기", "type": "list" }, { - "ele": "$[0][2].params[0].params[0]", - "answer": "50", - "points": 2.43, - "desc": "문제 2/마법의 약/[시작]의 세부 동작 2/크기를 '50' 으로 정하기" + "ele": [ + "$[0][2].type", + "$[0][2].params[0].params[0]" + ], + "answer": [ + "set_scale_size", + "50" + ], + "point": 2.43, + "desc": "문제 2/마법의 약/[시작]의 세부 동작 2/크기를 '50' 으로 정하기", + "type": "list" }, { - "ele": ["$[0][3].type", "$[0][3].params[0]"], - "answer": ["repeat_inf", null], - "points": 2.43, + "ele": [ + "$[0][3].type", + "$[0][3].params[0]" + ], + "answer": [ + "repeat_inf", + null + ], + "point": 2.43, "desc": "문제 2/마법의 약/반복/계속 반복하기", "type": "list" }, { "ele": "$[0][3].statements[0][0].type", "answer": "hide", - "points": 2.43, + "point": 2.43, "desc": "문제 2/마법의 약/[반복]의 세부 동작 1/모양 숨기기" }, { @@ -278,8 +392,12 @@ "$[0][3].statements[0][1].params[0].params[1].params[0]", "$[0][3].statements[0][1].params[0].params[3].params[0]" ], - "answer": ["locate_x", "-160", "60"], - "points": 2.43, + "answer": [ + "locate_x", + "-160", + "60" + ], + "point": 2.43, "desc": "문제 2/마법의 약/[반복]의 세부 동작 2/x: '-160 부터 60 사이의 무작위 수' 위치로 이동하기", "type": "list" }, @@ -288,15 +406,18 @@ "$[0][3].statements[0][2].type", "$[0][3].statements[0][2].params[0].params[0]" ], - "answer": ["wait_second", "2"], - "points": 2.43, + "answer": [ + "wait_second", + "2" + ], + "point": 2.43, "desc": "문제 2/마법의 약/[반복]의 세부 동작 3/ '2' 초 기다리기", "type": "list" }, { "ele": "$[0][3].statements[0][3].type", "answer": "show", - "points": 2.43, + "point": 2.43, "desc": "문제 2/마법의 약/[반복]의 세부 동작 4/모양 보이기" }, { @@ -304,8 +425,11 @@ "$[0][3].statements[0][4].type", "$[0][3].statements[0][4].params[0].params[0]" ], - "answer": ["wait_second", "0.5"], - "points": 2.43, + "answer": [ + "wait_second", + "0.5" + ], + "point": 2.43, "desc": "문제 2/마법의 약/[반복]의 세부 동작 5/'0.5' 초 기다리기", "type": "list" }, @@ -314,16 +438,26 @@ "$[0][3].statements[0][5].type", "$[0][3].statements[0][5].params[0].type" ], - "answer": ["_if", "reach_something"], - "points": 2.43, + "answer": [ + "_if", + "reach_something" + ], + "point": 2.43, "desc": "문제 2/마법의 약/만일/만일 '새로운 약' 에 닿았는가? 라면", "type": "list" }, { - "ele": "$[0][3].statements[0][5].statements[0][0].params[0].params[0]", - "answer": "100", - "points": 2.43, - "desc": "문제 2/마법의 약/[만일]의 세부 동작 1/크기를 '100' 으로 정하기" + "ele": [ + "$[0][3].statements[0][5].statements[0][0].type", + "$[0][3].statements[0][5].statements[0][0].params[0].params[0]" + ], + "answer": [ + "set_scale_size", + "100" + ], + "point": 2.43, + "desc": "문제 2/마법의 약/[만일]의 세부 동작 1/크기를 '100' 으로 정하기", + "type": "list" }, { "ele": [ @@ -331,8 +465,12 @@ "$[0][3].statements[0][5].statements[0][1].params[0]", "$[0][3].statements[0][5].statements[0][1].params[1].params[0]" ], - "answer": ["add_effect_amount", "color", "70"], - "points": 2.43, + "answer": [ + "add_effect_amount", + "color", + "70" + ], + "point": 2.43, "desc": "문제 2/마법의 약/[만일]의 세부 동작 2/'색깔' 효과를 '70' 만큼 주기", "type": "list" }, @@ -342,8 +480,12 @@ "$[0][3].statements[0][5].statements[0][2].params[0].params[0]", "$[0][3].statements[0][5].statements[0][2].params[1]" ], - "answer": ["dialog", "마법 성공", "speak"], - "points": 2.43, + "answer": [ + "dialog", + "마법 성공", + "speak" + ], + "point": 2.43, "desc": "문제 2/마법의 약/[만일]의 세부 동작 3/'마법 성공' 을 '말하기'", "type": "list" }, @@ -352,11 +494,18 @@ "$[0][3].statements[0][5].statements[0][3].type", "$[0][3].statements[0][5].statements[0][3].params[0]" ], - "answer": ["stop_object", "all"], - "points": 2.43, + "answer": [ + "stop_object", + "all" + ], + "point": 2.43, "desc": "문제 2/마법의 약/[만일]의 세부 동작 4/'모든' 코드 멈추기", "type": "list" } - ] + ], + "sortBlock": [ + "when_run_button_click" + ], + "sort": 125 } -} +} \ No newline at end of file diff --git a/correct/2602_CAS_2_A.json b/correct/2602_CAS_2_A.json new file mode 100644 index 0000000..ed08aba --- /dev/null +++ b/correct/2602_CAS_2_A.json @@ -0,0 +1,697 @@ +{ + "1-1": { + "type": "scene", + "ele": "$..objects[?(@.name=='우주')]", + "point": 1.7, + "desc": "문제 1/장면 1/[배경] 이름 설정 1/이름을 '우주'로 변경하기", + "sort": 11 + }, + "1-2": { + "type": "scene", + "ele": "$.[objects,scenes][?(@.name=='장면 2')]", + "point": 1.7, + "desc": "문제 1/장면 2/[배경] 이름 설정 2/이름 변경 없음", + "sort": 12 + }, + "1-3": { + "type": "scene", + "ele": "$..objects[?(@.name=='우주비행사')]", + "point": 1.7, + "desc": "문제 1/우주인(4)/[개체] 이름 설정 1/이름을 '우주비행사'로 변경하기", + "sort": 13 + }, + "1-4": { + "type": "scene", + "ele": "$..objects[?(@.name=='별똥별')]", + "point": 1.7, + "desc": "문제 1/별똥별(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/열기구(2)/[개체] 이름 설정 4/이름을 '낙하산'으로 변경하기", + "sort": 16 + }, + "1-0": { + "ele": "$..variables[?(@.name=='구조자')]", + "point": 1.63, + "desc": "문제 2/우주비행사/변수/'구조자' 변수 만들기 (변수 기본값은 '0', '모든 오브젝트에 사용' 설정)", + "type": "scene", + "sort": 101 + }, + "2-0": { + "type": "script", + "ele": "$.objects[?(@.name=~'우주비행사|우주인')].script", + "blocks": [ + { + "ele": "$[0][0].type", + "answer": "when_run_button_click", + "point": 1.63, + "desc": "문제 2/우주비행사/시작/시작하기 버튼을 클릭했을 때" + }, + { + "ele": [ + "$[0][1].type", + "$[0][1].params[0].params[0]" + ], + "answer": [ + "set_scale_size", + "70" + ], + "point": 1.63, + "desc": "문제 2/우주비행사/[시작]의 세부 동작 1/크기를 '70' 으로 정하기", + "type": "list" + }, + { + "ele": [ + "$[0][2].type", + "$[0][2].params[0]" + ], + "answer": [ + "repeat_inf", + null + ], + "point": 1.63, + "desc": "문제 2/우주비행사/반복/계속 반복하기", + "type": "list" + }, + { + "ele": "$[0][2].statements[0][0].type", + "answer": "hide", + "point": 1.63, + "desc": "문제 2/우주비행사/[반복]의 세부 동작 1/모양 숨기기" + }, + { + "ele": [ + "$[0][2].statements[0][1].type", + "$[0][2].statements[0][1].params[0].params[1].params[0]", + "$[0][2].statements[0][1].params[0].params[3].params[0]", + "$[0][2].statements[0][1].params[1].params[1].params[0]", + "$[0][2].statements[0][1].params[1].params[3].params[0]" + ], + "answer": [ + "locate_xy", + "-210", + "210", + "-120", + "120" + ], + "point": 1.63, + "desc": "문제 2/우주비행사/[반복]의 세부 동작 2/x: '-210 부터 210 사이의 무작위 수' y: '-120 부터 120 사이의 무작위 수' 위치로 이동하기", + "type": "list" + }, + { + "ele": [ + "$[0][2].statements[0][2].type", + "$[0][2].statements[0][2].params[0].type", + "$[0][2].statements[0][2].params[0].params[1].params[0]", + "$[0][2].statements[0][2].params[0].params[3].params[0]" + ], + "answer": [ + "wait_second", + "calc_rand", + "0", + "3" + ], + "point": 1.63, + "desc": "문제 2/우주비행사/[반복]의 세부 동작 3/'0 부터 3 사이의 무작위 수' 초 기다리기", + "type": "list" + }, + { + "ele": "$[0][2].statements[0][3].type", + "answer": "show", + "point": 1.63, + "desc": "문제 2/우주비행사/[반복]의 세부 동작 4/모양 보이기" + }, + { + "ele": [ + "$[0][2].statements[0][4].type", + "$[0][2].statements[0][4].params[0].params[0]" + ], + "answer": [ + "wait_second", + "1.5" + ], + "point": 1.63, + "desc": "문제 2/우주비행사/[반복]의 세부 동작 5/'1.5' 초 기다리기", + "type": "list" + }, + { + "ele": [ + "$[0][2].statements[0][5].type", + "$[0][2].statements[0][5].params[0].type" + ], + "answer": [ + "_if", + "reach_something" + ], + "point": 1.63, + "desc": "문제 2/우주비행사/만일/만일 '우주왕복선' 에 닿았는가? 라면", + "type": "list" + }, + { + "ele": [ + "$[0][2].statements[0][5].statements[0][0].type", + "$[0][2].statements[0][5].statements[0][0].params[1].params[0]" + ], + "answer": [ + "change_variable", + "1" + ], + "point": 1.63, + "desc": "문제 2/우주비행사/[만일]의 세부 동작/'구조자' 에 '1' 만큼 더하기", + "type": "list" + } + ], + "sortBlock": [ + "when_run_button_click" + ], + "sort": 102 + }, + "3-0": { + "type": "script", + "ele": "$.objects[?(@.name=~'별똥별')].script", + "blocks": [ + { + "ele": "$[0][0].type", + "answer": "when_run_button_click", + "point": 1.63, + "desc": "문제 2/별똥별/시작/시작하기 버튼을 클릭했을 때" + }, + { + "ele": [ + "$[0][1].type", + "$[0][1].params[0].params[0]" + ], + "answer": [ + "set_scale_size", + "60" + ], + "point": 1.63, + "desc": "문제 2/별똥별/[시작]의 세부 동작 1/크기를 '60' 으로 정하기", + "type": "list" + }, + { + "ele": [ + "$[0][2].type", + "$[0][2].params[0]" + ], + "answer": [ + "repeat_inf", + null + ], + "point": 1.63, + "desc": "문제 2/별똥별/반복/계속 반복하기", + "type": "list" + }, + { + "ele": "$[0][2].statements[0][0].type", + "answer": "hide", + "point": 1.63, + "desc": "문제 2/별똥별/[반복]의 세부 동작 1/모양 숨기기" + }, + { + "ele": [ + "$[0][2].statements[0][1].type", + "$[0][2].statements[0][1].params[0].params[1].params[0]", + "$[0][2].statements[0][1].params[0].params[3].params[0]", + "$[0][2].statements[0][1].params[1].params[1].params[0]", + "$[0][2].statements[0][1].params[1].params[3].params[0]" + ], + "answer": [ + "locate_xy", + "-210", + "210", + "-120", + "120" + ], + "point": 1.63, + "desc": "문제 2/별똥별/[반복]의 세부 동작 2/x: '-210 부터 210 사이의 무작위 수' y: '-120 부터 120 사이의 무작위 수' 위치로 이동하기", + "type": "list" + }, + { + "ele": [ + "$[0][2].statements[0][2].type", + "$[0][2].statements[0][2].params[0].type", + "$[0][2].statements[0][2].params[0].params[1].params[0]", + "$[0][2].statements[0][2].params[0].params[3].params[0]" + ], + "answer": [ + "wait_second", + "calc_rand", + "0", + "3" + ], + "point": 1.63, + "desc": "문제 2/별똥별/[반복]의 세부 동작 3/'0 부터 3 사이의 무작위 수' 초 기다리기", + "type": "list" + }, + { + "ele": "$[0][2].statements[0][3].type", + "answer": "show", + "point": 1.63, + "desc": "문제 2/별똥별/[반복]의 세부 동작 4/모양 보이기" + }, + { + "ele": [ + "$[0][2].statements[0][4].type", + "$[0][2].statements[0][4].params[0].params[0]" + ], + "answer": [ + "wait_second", + "1.5" + ], + "point": 1.63, + "desc": "문제 2/별똥별/[반복]의 세부 동작 4/'1.5' 초 기다리기", + "type": "list" + }, + { + "ele": [ + "$[0][2].statements[0][5].type", + "$[0][2].statements[0][5].params[0].type" + ], + "answer": [ + "_if", + "reach_something" + ], + "point": 1.63, + "desc": "문제 2/별똥별/만일/만일 '우주왕복선' 에 닿았는가? 라면", + "type": "list" + }, + { + "ele": [ + "$[0][2].statements[0][5].statements[0][0].type", + "$[0][2].statements[0][5].statements[0][0].params[1].params[0]" + ], + "answer": [ + "change_variable", + "-1" + ], + "point": 1.63, + "desc": "문제 2/별똥별/[만일]의 세부 동작 1/'구조자' 에 '-1' 만큼 더하기", + "type": "list" + } + ], + "sortBlock": [ + "when_run_button_click" + ], + "sort": 113 + }, + "22-0": { + "ele": "$.messages[?(@.name=='탈출')]", + "point": 1.63, + "desc": "문제 2/우주왕복선/신호/'탈출' 신호 만들기", + "type": "scene", + "sort": 122 + }, + "4-0": { + "type": "script", + "ele": "$.objects[?(@.name=~'우주왕복선')].script", + "blocks": [ + { + "ele": "$[0][0].type", + "answer": "when_run_button_click", + "point": 1.63, + "desc": "문제 2/우주왕복선/시작/시작하기 버튼을 클릭했을 때" + }, + { + "ele": [ + "$[0][1].type", + "$[0][1].params[0].params[0]", + "$[0][1].params[1].params[0]" + ], + "answer": [ + "locate_xy", + "10", + "10" + ], + "point": 1.63, + "desc": "문제 2/우주왕복선/[시작]의 세부 동작 1/x: '10' y: '10' 위치로 이동하기", + "type": "list" + }, + { + "ele": [ + "$[0][2].type", + "$[0][2].params[0].params[0]" + ], + "answer": [ + "set_scale_size", + "60" + ], + "point": 1.63, + "desc": "문제 2/우주왕복선/[시작]의 세부 동작 2/크기를 '60' 으로 정하기", + "type": "list" + }, + { + "ele": [ + "$[0][3].type", + "$[0][3].params[0]" + ], + "answer": [ + "repeat_inf", + null + ], + "point": 1.63, + "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]" + ], + "answer": [ + "_if", + "is_press_some_key", + "37" + ], + "point": 1.63, + "desc": "문제 2/우주왕복선/만일 1/만일 '왼쪽 화살표' 키가 눌러져 있는가? 라면", + "type": "list" + }, + { + "ele": [ + "$[0][3].statements[0][0].statements[0][0].type", + "$[0][3].statements[0][0].statements[0][0].params[0].params[0]" + ], + "answer": [ + "move_x", + "-6" + ], + "point": 1.63, + "desc": "문제 2/우주왕복선/[만일 1]의 세부 동작/x 좌표를 '-6' 만큼 바꾸기", + "type": "list" + }, + { + "ele": [ + "$[0][3].statements[0][1].type", + "$[0][3].statements[0][1].params[0].type", + "$[0][3].statements[0][1].params[0].params[0]" + ], + "answer": [ + "_if", + "is_press_some_key", + "39" + ], + "point": 1.63, + "desc": "문제 2/우주왕복선/만일 2/만일 '오른쪽 화살표' 키가 눌러져 있는가? 라면", + "type": "list" + }, + { + "ele": [ + "$[0][3].statements[0][1].statements[0][0].type", + "$[0][3].statements[0][1].statements[0][0].params[0].params[0]" + ], + "answer": [ + "move_x", + "6" + ], + "point": 1.63, + "desc": "문제 2/우주왕복선/[만일 2]의 세부 동작/x 좌표를 '6' 만큼 바꾸기", + "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]" + ], + "answer": [ + "_if", + "is_press_some_key", + "38" + ], + "point": 1.63, + "desc": "문제 2/우주왕복선/만일 3/만일 '위쪽 화살표' 키가 눌러져 있는가? 라면", + "type": "list" + }, + { + "ele": [ + "$[0][3].statements[0][2].statements[0][0].type", + "$[0][3].statements[0][2].statements[0][0].params[0].params[0]" + ], + "answer": [ + "move_y", + "6" + ], + "point": 1.63, + "desc": "문제 2/우주왕복선/[만일 3]의 세부 동작/y 좌표를 '6' 만큼 바꾸기", + "type": "list" + }, + { + "ele": [ + "$[0][3].statements[0][3].type", + "$[0][3].statements[0][3].params[0].type", + "$[0][3].statements[0][3].params[0].params[0]" + ], + "answer": [ + "_if", + "is_press_some_key", + "40" + ], + "point": 1.63, + "desc": "문제 2/우주왕복선/만일 4/만일 '아래쪽 화살표' 키가 눌러져 있는가? 라면", + "type": "list" + }, + { + "ele": [ + "$[0][3].statements[0][3].statements[0][0].type", + "$[0][3].statements[0][3].statements[0][0].params[0].params[0]" + ], + "answer": [ + "move_y", + "-6" + ], + "point": 1.63, + "desc": "문제 2/우주왕복선/[만일 4]의 세부 동작/y 좌표를 '-6' 만큼 바꾸기", + "type": "list" + }, + { + "ele": [ + "$[0][3].statements[0][4].type", + "$[0][3].statements[0][4].params[0].type", + "$[0][3].statements[0][4].params[0].params[0].type", + "$[0][3].statements[0][4].params[0].params[1]", + "$[0][3].statements[0][4].params[0].params[2].params[0]" + ], + "answer": [ + "_if", + "boolean_basic_operator", + "get_variable", + "EQUAL", + "4" + ], + "point": 1.63, + "desc": "문제 2/우주왕복선/만일 5/만일 '구조자' 값 = '4' 이라면", + "type": "list" + }, + { + "ele": "$[0][3].statements[0][4].statements[0][0].type", + "answer": "hide", + "point": 1.63, + "desc": "문제 2/우주왕복선/[만일 5]의 세부 동작 1/모양 숨기기" + }, + { + "ele": "$[0][3].statements[0][4].statements[0][1].type", + "answer": "message_cast", + "point": 1.63, + "desc": "문제 2/우주왕복선/[만일 5]의 세부 동작 2/'탈출' 신호 보내기" + } + ], + "sortBlock": [ + "when_run_button_click" + ], + "sort": 123 + }, + "5-0": { + "type": "script", + "ele": "$.objects[?(@.name=~'낙하산|열기구')].script", + "blocks": [ + { + "ele": "$[0][0].type", + "answer": "when_run_button_click", + "point": 1.63, + "desc": "문제 2/낙하산/시작/시작하기 버튼을 클릭했을 때" + }, + { + "ele": "$[0][1].type", + "answer": "hide", + "point": 1.63, + "desc": "문제 2/낙하산/[시작]의 세부 동작/모양 숨기기" + }, + { + "ele": "$[1][0].type", + "answer": "when_message_cast", + "point": 1.63, + "desc": "문제 2/낙하산/신호/'탈출' 신호를 받았을 때" + }, + { + "ele": "$[1][1].type", + "answer": "locate", + "point": 1.63, + "desc": "문제 2/낙하산/[신호]의 세부 동작 1/'우주왕복선' 위치로 이동하기" + }, + { + "ele": "$[1][2].type", + "answer": "show", + "point": 1.63, + "desc": "문제 2/낙하산/[신호]의 세부 동작 2/모양 보이기" + }, + { + "ele": [ + "$[1][3].type", + "$[1][3].params[0].params[0]", + "$[1][3].params[1]" + ], + "answer": [ + "dialog", + "구출완료!", + "speak" + ], + "point": 1.63, + "desc": "문제 2/낙하산/[신호]의 세부 동작 3/'구출완료!' 를 '말하기'", + "type": "list" + }, + { + "ele": [ + "$[1][4].type", + "$[1][4].params[0]" + ], + "answer": [ + "stop_object", + "other_objects" + ], + "point": 1.63, + "desc": "문제 2/낙하산/[신호]의 세부 동작 4/'다른 오브젝트의' 코드 멈추기", + "type": "list" + }, + { + "ele": [ + "$[1][5].type", + "$[1][5].params[0].params[0]" + ], + "answer": [ + "wait_second", + "2" + ], + "point": 1.63, + "desc": "문제 2/낙하산/[신호]의 세부 동작 5/'2' 초 기다리기", + "type": "list" + }, + { + "ele": "$[1][6].type", + "answer": "start_neighbor_scene", + "point": 1.63, + "desc": "문제 2/낙하산/[신호]의 세부 동작 6/'다음' 장면 시작하기" + } + ], + "sortBlock": [ + "when_run_button_click", + "when_message_cast" + ], + "sort": 139 + }, + "6-0": { + "type": "script", + "ele": "$.objects[?(@.name=~'활주로')].script", + "blocks": [ + { + "ele": "$[0][0].type", + "answer": "when_scene_start", + "point": 1.63, + "desc": "문제 2/활주로/장면 2/장면이 시작되었을 때" + }, + { + "ele": "$[0][1].type", + "answer": "hide_variable", + "point": 1.63, + "desc": "문제 2/활주로/[장면 2]의 세부 동작 1/변수 '구조자' 숨기기" + }, + { + "ele": [ + "$[0][2].type", + "$[0][2].params[0].params[0]", + "$[0][2].params[1]" + ], + "answer": [ + "dialog", + "미션 성공!", + "speak" + ], + "point": 1.63, + "desc": "문제 2/활주로/[장면 2]의 세부 동작 2/'미션 성공!' 을 '말하기'", + "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", + "50" + ], + "point": 2, + "desc": "문제 3/활주로/[오브젝트]의 세부 동작 1/'색깔' 효과를 '50' 만큼 주기", + "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": 148 + } +} \ No newline at end of file diff --git a/correct/_2508_CAS_2_A.json b/correct/_2508_CAS_2_A.json deleted file mode 100644 index 86b9a67..0000000 --- a/correct/_2508_CAS_2_A.json +++ /dev/null @@ -1,877 +0,0 @@ -{ - "1-1": { - "type": "scene", - "ele": "$..objects[?(@.name=='우주')]", - "points": 1.8, - "desc": "장면 1/[배경] 이름 설정 1/이름을 ‘우주’로 변경하기", - "sort": 11 - }, - "1-2": { - "type": "scene", - "ele": "$..objects[?(@.name=='우주정거장')]", - "points": 1.8, - "desc": "장면 2/[배경] 이름 설정 2/이름 변경 없음", - "sort": 12 - }, - "1-3": { - "type": "scene", - "ele": "$..objects[?(@.name=='에너지원')]", - "points": 1.6, - "desc": "물약(빨강)/[개체] 이름 설정 1/이름을 ‘에너지원’으로 변경하기", - "sort": 13 - }, - "1-4": { - "type": "scene", - "ele": "$..objects[?(@.name=='운석')]", - "points": 1.6, - "desc": "검은 돌멩이/[개체] 이름 설정 2/이름을 ‘운석’으로 변경하기", - "sort": 14 - }, - "1-5": { - "type": "scene", - "ele": "$..objects[?(@.name=='행성')]", - "points": 1.6, - "desc": "행성(5)/[개체] 이름 설정 3/이름을 ‘행성’으로 변경하기", - "sort": 15 - }, - "1-6": { - "type": "scene", - "ele": "$..objects[?(@.name=='우주선')]", - "points": 1.6, - "desc": "우주선 탄 엔트리봇/[개체] 이름 설정 4/이름을 ‘우주선’으로 변경하기", - "sort": 16 - }, - "1-7": { - "type": "scene", - "ele": "$..variables[?(@.name=='연료')]", - "points": 1, - "desc": "문제 2/에너지원/변수 1/‘연료’변수 만들기 (변수 기본값은 ‘100’, ‘모든 오브젝트에 사용’ 설정하기)", - "sort": 101 - }, - "1-8": { - "type": "scene", - "ele": "$..variables[?(@.name=='점수')]", - "points": 1, - "desc": "문제 2/에너지원/변수 2/‘점수’ 변수 만들기 (변수 기본값은 ‘0’, ‘모든 오브젝트에 사용’ 설정하기)", - "sort": 102 - }, - "2-0": { - "type": "script", - "ele": "$.objects[?(@.name=~'에너지원')].script", - "blocks": [ - { - "ele": "$[0][0].type", - "answer": "when_run_button_click", - "points": 1.2, - "desc": "문제 2/에너지원/시작/시작하기 버튼을 클릭했을 때" - }, - { - "ele": "$[0][1].params[0].params[0]", - "answer": "50", - "points": 1.2, - "desc": "문제 2/에너지원/[시작]의 세부 동작/크기를 ‘50’ 으로 정하기" - }, - { - "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]" - ], - "answer": [ - "hide", - null - ], - "points": 1.2, - "desc": "문제 2/에너지원/[반복]의 세부 동작 1/모양 숨기기", - "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" - ] - } -} \ No newline at end of file diff --git a/correct/_2508_CAS_2_B.json b/correct/_2508_CAS_2_B.json deleted file mode 100644 index 0e44a46..0000000 --- a/correct/_2508_CAS_2_B.json +++ /dev/null @@ -1,870 +0,0 @@ -{ - "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": { - "type": "scene", - "ele": "$..variables[?(@.name=='물고기 수')]", - "points": 1, - "desc": "문제 2/빨간 물고기/변수/'물고기 수' 변수 만들기", - "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" - ] - } -} \ No newline at end of file diff --git a/jsonPathTest.py b/jsonPathTest.py deleted file mode 100644 index fd9623d..0000000 --- a/jsonPathTest.py +++ /dev/null @@ -1,82 +0,0 @@ -import json -from jsonpath_ng import parse - -# JSON 데이터 -json_data = [ - { - "id": "ro4n", - "x": 0, - "y": 0, - "type": "wait_second", - "params": [ - { - "id": "6xf0", - "x": 0, - "y": 0, - "type": "number", - "params": ["1"], - "statements": [], - "movable": None, - "deletable": 1, - "emphasized": False, - "readOnly": None, - "copyable": True, - "assemble": True, - "extensions": [] - }, - None - ], - "statements": [], - "movable": None, - "deletable": 1, - "emphasized": False, - "readOnly": None, - "copyable": True, - "assemble": True, - "extensions": [] - }, - { - "id": "kkqk", - "x": 0, - "y": 0, - "type": "wait_second", - "params": [ - { - "id": "167c", - "x": 0, - "y": 0, - "type": "number", - "params": ["1"], - "statements": [], - "movable": None, - "deletable": 1, - "emphasized": False, - "readOnly": None, - "copyable": True, - "assemble": True, - "extensions": [] - }, - None - ], - "statements": [], - "movable": None, - "deletable": 1, - "emphasized": False, - "readOnly": None, - "copyable": True, - "assemble": True, - "extensions": [] - } -] - -# JSONPath 표현식 -jsonpath_expr = parse("$[?(@.type=='wait_second')][0]") - -# 첫 번째 "wait_second" 요소 찾기 -matches = [match.value for match in jsonpath_expr.find(json_data)] - -# 출력 -if matches: - print("첫 번째 wait_second 요소:", json.dumps(matches[0], indent=4, ensure_ascii=False)) -else: - print("❌ 해당 요소를 찾을 수 없습니다.") diff --git a/main.py b/main.py index 4942575..899dbb8 100644 --- a/main.py +++ b/main.py @@ -7,9 +7,9 @@ import re # 상단에 추가 from datetime import datetime import logging from logging_config import setup_logging # logging 설정을 위한 import -import traceback import itertools import copy +from pathlib import Path from script_utils import extract_and_format_scripts # 스크립트 추출 함수 import @@ -243,7 +243,7 @@ def process_project(project_data, scoring_data): scene_elements = find_element(project_data, element_path) if scene_elements: - print(f"🟨 Found elements for '{element_path}'") + print(f"🟦 Found elements for '{element_path}'") scene_elements = [convert_to_str(x) for x in scene_elements] if scene_elements == expected_answer or (expected_answer is None and scene_elements): @@ -356,14 +356,18 @@ def main(): test_mode = False # 일반 채점 모드 # test_mode = True # 테스트 모드 - exam_round = "2602_6" - exam_names = ["CAS_2_B"] # 여러 시험명을 리스트로 설정 + exam_round = "2602" + exam_names = ["CAS_2_A"] # 여러 시험명을 리스트로 설정 # exam_names = ["CAS_2_A", "CAS_2_B"] # 여러 시험명을 리스트로 설정 excel_list = [] for exam_name in exam_names: scoring_json_path = f'./correct/{exam_round}_{exam_name}.json' project_json_path = f'./output/{"00_test" if test_mode else exam_round+"_"+exam_name}/' + + # dir_path = Path("score_result") / f'{exam_round}_{exam_name}' + # dir_path.mkdir(parents=True, exist_ok=True) + # excel_path = dir_path / f'{timestamp}_{exam_round}_{exam_name}_{"TEST" if test_mode else "채점결과"}.xlsx' excel_path = f'{timestamp}_{exam_round}_{exam_name}_{"TEST" if test_mode else "채점결과"}.xlsx' scoring_data = read_json(scoring_json_path) @@ -374,7 +378,7 @@ def main(): idx = 1 for key in scoring_data.keys(): if scoring_data[key].get('type') == 'scene': - columns.append(f'{idx}') + columns.append(f'{idx}') idx = idx + 1 elif scoring_data[key].get('type') == 'script': for i in range(len(scoring_data[key].get('blocks', []))): diff --git a/results.xlsx b/results.xlsx deleted file mode 100644 index b6e2842..0000000 Binary files a/results.xlsx and /dev/null differ diff --git a/scorer.py b/scorer.py deleted file mode 100644 index 2f94bb0..0000000 --- a/scorer.py +++ /dev/null @@ -1,51 +0,0 @@ -import json - -def load_json(file_path): - with open(file_path, 'r', encoding='utf-8') as file: - return json.load(file) - -def compare_params(params1, params2): - if len(params1) != len(params2): - return False - for p1, p2 in zip(params1, params2): - if p1 != p2: - return False - return True - -def calculate_points(project_data, scoring_data): - total_points = 0 - for key, criteria in scoring_data.items(): - ele = criteria['ele'] - arg = criteria['arg'] - value = criteria['value'] - - - if ele == "scenes": - for scene in project_data['scenes']: - if scene.get(arg) == value: - points = criteria['points'] - total_points += points - break - elif ele == "objects": - for obj in project_data['objects']: - if obj.get(arg) == value: - if 'script' in criteria: - for script_criteria in criteria['script']: - for script in json.loads(obj['script']): - if script['type'] == script_criteria['type']: - if 'params' in script_criteria: - if compare_params(script['params'], script_criteria['params']): - total_points += script_criteria['points'] - else: - total_points += script_criteria['points'] - return total_points - -def main(): - project_data = load_json(r'D:\project\Entry\Entry-Scoring\sample\제2506회 코딩활용능력 2급 A형 정답\temp\project.json') - scoring_data = load_json('scoring.json') - - total_points = calculate_points(project_data, scoring_data) - print(f"Total Points: {total_points}") - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/temp.csv b/temp.csv deleted file mode 100644 index 2dd50f1..0000000 --- a/temp.csv +++ /dev/null @@ -1 +0,0 @@ -'cas-000039-정승혁', 0, 0, 1.77, 1.77, 0, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 0, 0, 0, 0, 0, 0, 0, 1.77, 1.77, 0, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 58.41000000000004 \ No newline at end of file diff --git a/시험자료/2511/2511_CAT_3_A.ent b/시험자료/2511/2511_CAT_3_A.ent deleted file mode 100644 index 8aabbc3..0000000 Binary files a/시험자료/2511/2511_CAT_3_A.ent and /dev/null differ diff --git a/시험자료/2511/2511_CAT_3_A_문제.hwp b/시험자료/2511/2511_CAT_3_A_문제.hwp deleted file mode 100644 index 6f89758..0000000 Binary files a/시험자료/2511/2511_CAT_3_A_문제.hwp and /dev/null differ diff --git a/시험자료/2511/2511_CAT_3_A_채점기준표.xlsx b/시험자료/2511/2511_CAT_3_A_채점기준표.xlsx deleted file mode 100644 index b974ad3..0000000 Binary files a/시험자료/2511/2511_CAT_3_A_채점기준표.xlsx and /dev/null differ diff --git a/시험자료/2512/251226_2512_CAS_2_A_TEST.xlsx b/시험자료/2512/251226_2512_CAS_2_A_TEST.xlsx deleted file mode 100644 index bb68f6d..0000000 Binary files a/시험자료/2512/251226_2512_CAS_2_A_TEST.xlsx and /dev/null differ diff --git a/시험자료/2512/251226_2512_CAS_2_A_채점결과.xlsx b/시험자료/2512/251226_2512_CAS_2_A_채점결과.xlsx deleted file mode 100644 index 17321cb..0000000 Binary files a/시험자료/2512/251226_2512_CAS_2_A_채점결과.xlsx and /dev/null differ diff --git a/시험자료/2512/251226_2512_CAS_2_B_TEST.xlsx b/시험자료/2512/251226_2512_CAS_2_B_TEST.xlsx deleted file mode 100644 index 181bcc5..0000000 Binary files a/시험자료/2512/251226_2512_CAS_2_B_TEST.xlsx and /dev/null differ diff --git a/시험자료/2512/251226_2512_CAS_2_B_채점결과.xlsx b/시험자료/2512/251226_2512_CAS_2_B_채점결과.xlsx deleted file mode 100644 index d846ab0..0000000 Binary files a/시험자료/2512/251226_2512_CAS_2_B_채점결과.xlsx and /dev/null differ diff --git a/시험자료/2512/251229_2512_CAS_2_A_TEST.xlsx b/시험자료/2512/251229_2512_CAS_2_A_TEST.xlsx deleted file mode 100644 index 23a26e1..0000000 Binary files a/시험자료/2512/251229_2512_CAS_2_A_TEST.xlsx and /dev/null differ diff --git a/시험자료/2512/251229_2512_CAS_2_A_채점결과.xlsx b/시험자료/2512/251229_2512_CAS_2_A_채점결과.xlsx deleted file mode 100644 index 143eafe..0000000 Binary files a/시험자료/2512/251229_2512_CAS_2_A_채점결과.xlsx and /dev/null differ diff --git a/시험자료/2512/251229_2512_CAS_2_B_채점결과.xlsx b/시험자료/2512/251229_2512_CAS_2_B_채점결과.xlsx deleted file mode 100644 index d2eed57..0000000 Binary files a/시험자료/2512/251229_2512_CAS_2_B_채점결과.xlsx and /dev/null differ diff --git a/시험자료/2601/제2601회 코딩활용능력 3급 A형 문제.hwp b/시험자료/2601/제2601회 코딩활용능력 3급 A형 문제.hwp deleted file mode 100644 index 563b986..0000000 Binary files a/시험자료/2601/제2601회 코딩활용능력 3급 A형 문제.hwp and /dev/null differ diff --git a/시험자료/2601/제2601회 코딩활용능력 3급 A형 정답.ent b/시험자료/2601/제2601회 코딩활용능력 3급 A형 정답.ent deleted file mode 100644 index 732860e..0000000 Binary files a/시험자료/2601/제2601회 코딩활용능력 3급 A형 정답.ent and /dev/null differ diff --git a/시험자료/2601/제2601회 코딩활용능력 3급 A형 채점기준표.xlsx b/시험자료/2601/제2601회 코딩활용능력 3급 A형 채점기준표.xlsx deleted file mode 100644 index ed45c91..0000000 Binary files a/시험자료/2601/제2601회 코딩활용능력 3급 A형 채점기준표.xlsx and /dev/null differ diff --git a/시험자료/2602/제2602회 코딩활용능력 2급 A형 문제.hwp b/시험자료/2602/제2602회 코딩활용능력 2급 A형 문제.hwp new file mode 100644 index 0000000..38a76df Binary files /dev/null and b/시험자료/2602/제2602회 코딩활용능력 2급 A형 문제.hwp differ diff --git a/시험자료/2602/제2602회 코딩활용능력 2급 A형 정답.ent b/시험자료/2602/제2602회 코딩활용능력 2급 A형 정답.ent new file mode 100644 index 0000000..a5de6dc Binary files /dev/null and b/시험자료/2602/제2602회 코딩활용능력 2급 A형 정답.ent differ diff --git a/시험자료/2602/제2602회 코딩활용능력 2급 A형 채점기준표.xlsx b/시험자료/2602/제2602회 코딩활용능력 2급 A형 채점기준표.xlsx new file mode 100644 index 0000000..900f20b Binary files /dev/null and b/시험자료/2602/제2602회 코딩활용능력 2급 A형 채점기준표.xlsx differ diff --git a/시험자료/2602_3/제2602회 수시-코딩활용능력 2급 A형 문제.hwp b/시험자료/2602_3/제2602회 수시-코딩활용능력 2급 A형 문제.hwp deleted file mode 100644 index b404591..0000000 Binary files a/시험자료/2602_3/제2602회 수시-코딩활용능력 2급 A형 문제.hwp and /dev/null differ diff --git a/시험자료/2602_3/제2602회 수시-코딩활용능력 2급 A형 정답.ent b/시험자료/2602_3/제2602회 수시-코딩활용능력 2급 A형 정답.ent deleted file mode 100644 index 022e4e3..0000000 Binary files a/시험자료/2602_3/제2602회 수시-코딩활용능력 2급 A형 정답.ent and /dev/null differ diff --git a/시험자료/2602_3/제2602회 수시-코딩활용능력 2급 A형 채점기준표.xlsx b/시험자료/2602_3/제2602회 수시-코딩활용능력 2급 A형 채점기준표.xlsx deleted file mode 100644 index cdeaddf..0000000 Binary files a/시험자료/2602_3/제2602회 수시-코딩활용능력 2급 A형 채점기준표.xlsx and /dev/null differ