시작하기 클릭이 여러개 있는 경우 배열에 추가하고 정렬하도록 수정(2506 CAS 2급 채점 완료)

This commit is contained in:
2025-07-10 13:08:58 +09:00
parent 0fd9c9e8c0
commit 23946baccf
18 changed files with 22419 additions and 24 deletions

90
correct/2401B.json Normal file
View File

@@ -0,0 +1,90 @@
{
"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": "모양 숨기기"
}
]
}
}

View File

@@ -0,0 +1,669 @@
{
"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"
}
]
}
}

View File

@@ -0,0 +1,370 @@
{
"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초"
}
]
}
}

View File

@@ -0,0 +1,382 @@
{
"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초 "
}
]
}
}

656
correct/2504CAS2A.json Normal file
View File

@@ -0,0 +1,656 @@
{
"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/처음부터 다시 실행하기"
}
]
}
}

482
correct/2505CAT3A.json Normal file
View File

@@ -0,0 +1,482 @@
{
"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' 초 동안 '말하기'"
}
]
}
}

870
correct/2506_CAS_2_A.json Normal file
View File

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