시작하기 클릭이 여러개 있는 경우 배열에 추가하고 정렬하도록 수정(2506 CAS 2급 채점 완료)
This commit is contained in:
@@ -42,8 +42,8 @@ def copy_ent_files(source_root, target_root):
|
|||||||
print(f"Copied {source_file_path} to {target_file_path}")
|
print(f"Copied {source_file_path} to {target_file_path}")
|
||||||
|
|
||||||
# 사용법
|
# 사용법
|
||||||
source_directory = r"/Users/waterdrw/Downloads/제2503회 코딩활용능력 3급 정기검정 답안파일" # 원본 디렉토리 경로
|
source_directory = r"/Users/waterdrw/Downloads/제2505회 코딩활용능력 3급 답안파일" # 원본 디렉토리 경로
|
||||||
target_directory = r"./output/2503 CAT 3급 A형"
|
target_directory = r"./output/2505CAT3A"
|
||||||
target_directory_a = r"./output/A" # '1교시'의 타겟 경로
|
target_directory_a = r"./output/A" # '1교시'의 타겟 경로
|
||||||
target_directory_b = r"./output/B" # '2교시'의 타겟 경로
|
target_directory_b = r"./output/B" # '2교시'의 타겟 경로
|
||||||
target_directory_c = r"./output/C" # '3교시'의 타겟 경로
|
target_directory_c = r"./output/C" # '3교시'의 타겟 경로
|
||||||
|
|||||||
656
correct/2504CAS2A.json
Normal file
656
correct/2504CAS2A.json
Normal 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
482
correct/2505CAT3A.json
Normal 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
870
correct/2506_CAS_2_A.json
Normal 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"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
88
logs/2504CAS2A-정답.log
Normal file
88
logs/2504CAS2A-정답.log
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
|
||||||
|
Processing: ./sample/제2504회 코딩활용능력 2급 A형 정답/temp/project.json
|
||||||
|
example: 1-1
|
||||||
|
elements found for $..objects[?(@.name=='약도')]
|
||||||
|
$..objects[?(@.name=='약도')] found
|
||||||
|
example: 1-2
|
||||||
|
elements found for $..objects[?(@.name=='나의 방')]
|
||||||
|
$..objects[?(@.name=='나의 방')] found
|
||||||
|
example: 1-3
|
||||||
|
elements found for $..objects[?(@.name=='놀이동산')]
|
||||||
|
$..objects[?(@.name=='놀이동산')] found
|
||||||
|
example: 1-4
|
||||||
|
elements found for $..objects[?(@.name=='백화점')]
|
||||||
|
$..objects[?(@.name=='백화점')] found
|
||||||
|
example: 1-5
|
||||||
|
elements found for $..objects[?(@.name=='우리집')]
|
||||||
|
$..objects[?(@.name=='우리집')] found
|
||||||
|
example: 1-6
|
||||||
|
elements found for $..objects[?(@.name=='어린이')]
|
||||||
|
$..objects[?(@.name=='어린이')] found
|
||||||
|
example: 2
|
||||||
|
2-1: when_run_button_click == when_run_button_click
|
||||||
|
2-2: 100 == 100
|
||||||
|
2-3: ['locate_xy', '-25', '80'] == ['locate_xy', '-25', '80']
|
||||||
|
2-4: when_object_click == when_object_click
|
||||||
|
2-5: ['여기는 놀이동산!', '1'] == ['여기는 놀이동산!', '1']
|
||||||
|
example: 3
|
||||||
|
3-1: when_run_button_click == when_run_button_click
|
||||||
|
3-2: 80 == 80
|
||||||
|
3-3: ['locate_xy', '170', '-80'] == ['locate_xy', '170', '-80']
|
||||||
|
3-4: when_object_click == when_object_click
|
||||||
|
3-5: ['여기는 백화점!', '1'] == ['여기는 백화점!', '1']
|
||||||
|
example: 31
|
||||||
|
elements found for $.messages[?(@.name=='놀이동산')]
|
||||||
|
$.messages[?(@.name=='놀이동산')] found
|
||||||
|
example: 32
|
||||||
|
elements found for $.messages[?(@.name=='백화점')]
|
||||||
|
$.messages[?(@.name=='백화점')] found
|
||||||
|
example: 4
|
||||||
|
4-1: when_run_button_click == when_run_button_click
|
||||||
|
4-2: 110 == 110
|
||||||
|
4-3: ['locate_xy', '-170', '-90'] == ['locate_xy', '-170', '-90']
|
||||||
|
4-4: when_object_click == when_object_click
|
||||||
|
4-5: ['ask_and_wait', '첫 번째로 방문할 장소는?'] == ['ask_and_wait', '첫 번째로 방문할 장소는?']
|
||||||
|
4-6: ['wait_second', '0.5'] == ['wait_second', '0.5']
|
||||||
|
4-7: ['_if', 'boolean_basic_operator', 'get_canvas_input_value', 'EQUAL', '놀이동산'] == ['_if', 'boolean_basic_operator', 'get_canvas_input_value', 'EQUAL', '놀이동산']
|
||||||
|
4-8: message_cast == message_cast
|
||||||
|
4-9: ['_if', 'boolean_basic_operator', 'get_canvas_input_value', 'EQUAL', '백화점'] == ['_if', 'boolean_basic_operator', 'get_canvas_input_value', 'EQUAL', '백화점']
|
||||||
|
4-10: message_cast == message_cast
|
||||||
|
example: 5
|
||||||
|
5-1: when_run_button_click == when_run_button_click
|
||||||
|
5-2: 40 == 40
|
||||||
|
5-3: ['locate_xy', '-170', '-100'] == ['locate_xy', '-170', '-100']
|
||||||
|
5-4: ['repeat_inf', 'None'] == ['repeat_inf', 'None']
|
||||||
|
5-5: ['_if', 'is_press_some_key', '39'] == ['_if', 'is_press_some_key', '39']
|
||||||
|
5-6: ['locate_xy', '-90', '-100'] == ['locate_xy', '-90', '-100']
|
||||||
|
5-7: when_message_cast == when_message_cast
|
||||||
|
5-8: ['repeat_while_true'] == ['repeat_while_true']
|
||||||
|
5-9: ['locate_object_time', '2'] == ['locate_object_time', '2']
|
||||||
|
5-10: ['wait_second', '0.5'] == ['wait_second', '0.5']
|
||||||
|
5-11: ['repeat_while_true'] == ['repeat_while_true']
|
||||||
|
5-12: ['locate_object_time', '2'] == ['locate_object_time', '2']
|
||||||
|
5-13: ['wait_second', '1'] == ['wait_second', '1']
|
||||||
|
5-14: ['locate_xy_time', '2', '-120', '-100'] == ['locate_xy_time', '2', '-120', '-100']
|
||||||
|
5-15: ['집 도착!', '1'] == ['집 도착!', '1']
|
||||||
|
5-16: start_neighbor_scene == start_neighbor_scene
|
||||||
|
5-17: when_message_cast == when_message_cast
|
||||||
|
5-18: ['repeat_while_true'] == ['repeat_while_true']
|
||||||
|
5-19: ['locate_object_time', '2'] == ['locate_object_time', '2']
|
||||||
|
5-20: ['wait_second', '0.5'] == ['wait_second', '0.5']
|
||||||
|
5-21: ['repeat_while_true'] == ['repeat_while_true']
|
||||||
|
5-22: ['locate_object_time', '2'] == ['locate_object_time', '2']
|
||||||
|
5-23: ['wait_second', '1'] == ['wait_second', '1']
|
||||||
|
5-24: ['locate_xy_time', '2', '-120', '-100'] == ['locate_xy_time', '2', '-120', '-100']
|
||||||
|
5-25: ['집 도착!', '1'] == ['집 도착!', '1']
|
||||||
|
5-26: start_neighbor_scene == start_neighbor_scene
|
||||||
|
example: 6
|
||||||
|
6-1: when_scene_start == when_scene_start
|
||||||
|
6-2: ['set_visible_answer', 'HIDE'] == ['set_visible_answer', 'HIDE']
|
||||||
|
6-3: ['dialog', 'my room!', 'speak'] == ['dialog', 'my room!', 'speak']
|
||||||
|
6-4: when_object_click == when_object_click
|
||||||
|
6-5: ['add_effect_amount', 'brightness', '10'] == ['add_effect_amount', 'brightness', '10']
|
||||||
|
6-6: ['dialog', '처음부터 다시 실행합니다.', 'speak'] == ['dialog', '처음부터 다시 실행합니다.', 'speak']
|
||||||
|
6-7: ['wait_second', '2'] == ['wait_second', '2']
|
||||||
|
6-8: restart_project == restart_project
|
||||||
|
Total Points for ['temp', 1.7, 1.7, 1.7, 1.7, 1.7, 1.7, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 1.56, 2, 2, 2, 2, 2, 99.76000000000008]
|
||||||
|
|
||||||
|
Results saved to ./sample/제2504회 코딩활용능력 2급 A형 정답/results.xlsx
|
||||||
7379
logs/2504CAS2A.log
Normal file
7379
logs/2504CAS2A.log
Normal file
File diff suppressed because it is too large
Load Diff
3123
logs/2505CAT3A.log
Normal file
3123
logs/2505CAT3A.log
Normal file
File diff suppressed because it is too large
Load Diff
9797
logs/2506_CAS_2_A.log
Normal file
9797
logs/2506_CAS_2_A.log
Normal file
File diff suppressed because it is too large
Load Diff
44
main.py
44
main.py
@@ -7,8 +7,8 @@ import unicodedata # 상단에 import 추가
|
|||||||
import re # 상단에 추가
|
import re # 상단에 추가
|
||||||
|
|
||||||
# 파일 경로 설정
|
# 파일 경로 설정
|
||||||
project_json_path = 'output/2503 CAT 3급 A형'
|
project_json_path = './output/2506_CAS_2_A/'
|
||||||
scoring_json_path = './2503 CAT 3급 A형.json'
|
scoring_json_path = './correct/2506_CAS_2_A.json'
|
||||||
|
|
||||||
# JSON 파일 읽기
|
# JSON 파일 읽기
|
||||||
def read_json(file_path):
|
def read_json(file_path):
|
||||||
@@ -49,10 +49,10 @@ def swap_script(origin):
|
|||||||
return origin
|
return origin
|
||||||
|
|
||||||
# 스크립트 블록 분류를 위한 임시 저장소
|
# 스크립트 블록 분류를 위한 임시 저장소
|
||||||
run_button_block = None
|
run_button_blocks = []
|
||||||
key_press_blocks = []
|
key_press_blocks = []
|
||||||
clone_start_block = None
|
clone_start_block = None
|
||||||
message_cast_block = None
|
message_cast_block = []
|
||||||
other_blocks = []
|
other_blocks = []
|
||||||
|
|
||||||
# 각 블록을 타입별로 분류
|
# 각 블록을 타입별로 분류
|
||||||
@@ -62,23 +62,23 @@ def swap_script(origin):
|
|||||||
|
|
||||||
block_type = block[0].get("type")
|
block_type = block[0].get("type")
|
||||||
|
|
||||||
# 기존 로직: run_button과 scene_start 처리
|
# # 기존 로직: run_button과 scene_start 처리
|
||||||
if (block_type == "when_run_button_click" or block_type == "when_scene_start") and i > 0:
|
# if (block_type == "when_run_button_click" or block_type == "when_scene_start") and i > 0:
|
||||||
print(f"swap script run button or scene start")
|
# print(f"swap script run button or scene start")
|
||||||
swap = origin[0]
|
# swap = origin[0]
|
||||||
origin[0] = origin[i]
|
# origin[0] = origin[i]
|
||||||
origin[i] = swap
|
# origin[i] = swap
|
||||||
|
|
||||||
# 기존 로직: clone_start와 message_cast 처리
|
# # 기존 로직: clone_start와 message_cast 처리
|
||||||
elif (block_type == "when_clone_start" or block_type == "when_message_cast") and i > 0:
|
# elif (block_type == "when_clone_start" or block_type == "when_message_cast") and i > 0:
|
||||||
print(f"swap script clone start or msg cast")
|
# print(f"swap script clone start or msg cast")
|
||||||
swap = origin[1]
|
# swap = origin[1]
|
||||||
origin[1] = origin[i]
|
# origin[1] = origin[i]
|
||||||
origin[i] = swap
|
# origin[i] = swap
|
||||||
|
|
||||||
# 새로운 로직: 키 이벤트 처리
|
# 새로운 로직: 키 이벤트 처리
|
||||||
if block_type == "when_run_button_click":
|
if block_type == "when_run_button_click":
|
||||||
run_button_block = block
|
run_button_blocks.append(block)
|
||||||
elif block_type == "when_some_key_pressed":
|
elif block_type == "when_some_key_pressed":
|
||||||
# params[1]에서 키 값 확인 (49, 50, 51) 아스키코드 값이므로 필요하면 추가 가능
|
# params[1]에서 키 값 확인 (49, 50, 51) 아스키코드 값이므로 필요하면 추가 가능
|
||||||
key_value = block[0].get("params")[1]
|
key_value = block[0].get("params")[1]
|
||||||
@@ -87,7 +87,7 @@ def swap_script(origin):
|
|||||||
elif block_type == "when_clone_start":
|
elif block_type == "when_clone_start":
|
||||||
clone_start_block = block
|
clone_start_block = block
|
||||||
elif block_type == "when_message_cast":
|
elif block_type == "when_message_cast":
|
||||||
message_cast_block = block
|
message_cast_block.append(block)
|
||||||
else:
|
else:
|
||||||
other_blocks.append(block)
|
other_blocks.append(block)
|
||||||
|
|
||||||
@@ -95,8 +95,8 @@ def swap_script(origin):
|
|||||||
result = []
|
result = []
|
||||||
|
|
||||||
# 1. when_run_button_click 블록을 첫 번째로 추가
|
# 1. when_run_button_click 블록을 첫 번째로 추가
|
||||||
if run_button_block:
|
if run_button_blocks:
|
||||||
result.append(run_button_block)
|
result.extend(run_button_blocks)
|
||||||
|
|
||||||
# 2. when_some_key_pressed 블록들을 키 값 순서대로 정렬하여 추가
|
# 2. when_some_key_pressed 블록들을 키 값 순서대로 정렬하여 추가
|
||||||
key_press_blocks.sort(key=lambda x: int(x[0]) if x[0] else 0)
|
key_press_blocks.sort(key=lambda x: int(x[0]) if x[0] else 0)
|
||||||
@@ -106,7 +106,7 @@ def swap_script(origin):
|
|||||||
if clone_start_block:
|
if clone_start_block:
|
||||||
result.append(clone_start_block)
|
result.append(clone_start_block)
|
||||||
if message_cast_block:
|
if message_cast_block:
|
||||||
result.append(message_cast_block)
|
result.extend(message_cast_block)
|
||||||
|
|
||||||
# 4. 나머지 블록 추가
|
# 4. 나머지 블록 추가
|
||||||
result.extend(other_blocks)
|
result.extend(other_blocks)
|
||||||
@@ -259,7 +259,7 @@ def main():
|
|||||||
try:
|
try:
|
||||||
# 디렉토리 패스 내에 학생 이름만 뽑아서 엑셀 컬럼 명으로 추가
|
# 디렉토리 패스 내에 학생 이름만 뽑아서 엑셀 컬럼 명으로 추가
|
||||||
# output/cas-000040-이지원/temp/project.json
|
# output/cas-000040-이지원/temp/project.json
|
||||||
student_id = normalize_path(full_path.split('/')[2])
|
student_id = normalize_path(full_path.split('/')[3])
|
||||||
project_data = read_json(full_path)
|
project_data = read_json(full_path)
|
||||||
points = process_project(project_data, scoring_data)
|
points = process_project(project_data, scoring_data)
|
||||||
points.insert(0, student_id)
|
points.insert(0, student_id)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user