2602회 채점완료

This commit is contained in:
2026-03-06 17:41:55 +09:00
parent 20b9848818
commit 2c78f54bdd
57 changed files with 1718 additions and 10536 deletions

697
correct/2602_CAS_2_A.json Normal file
View File

@@ -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
}
}