2602회 채점완료
This commit is contained in:
@@ -49,17 +49,11 @@ def copy_ent_files(source_root, target_root):
|
|||||||
|
|
||||||
# source_directory = r"D:\project\data\CAS_제2510회 정기\제2510회 코딩활용능력 2급 정기 답안파일" # 원본 디렉토리 경로
|
# source_directory = r"D:\project\data\CAS_제2510회 정기\제2510회 코딩활용능력 2급 정기 답안파일" # 원본 디렉토리 경로
|
||||||
|
|
||||||
# test_name = "2602_2_CAS_2_A"
|
exam_name = "2602_CAS_2_A"
|
||||||
# test_name = "2602_2_CAS_2_B"
|
# exam_name = "2602_6_CAS_2_B"
|
||||||
test_name = "2602_3_CAS_2_A"
|
|
||||||
# test_name = "2602_6_CAS_2_B"
|
|
||||||
|
|
||||||
|
|
||||||
# source_directory = r"D:\project\data\CAT_제2511회 정기\답안파일" # 원본 디렉토리 경로
|
# source_directory = r"D:\project\data\CAT_제2511회 정기\답안파일" # 원본 디렉토리 경로
|
||||||
# source_directory = r"D:\project\data\제2602회 수시2_CAS(구미)\답안파일\A형" # 원본 디렉토리 경로
|
|
||||||
# source_directory = r"D:\project\data\제2602회 수시2_CAS(구미)\답안파일\B형" # 원본 디렉토리 경로
|
|
||||||
# source_directory = r"D:\project\data\제2602회 수시2_CAS(구미)\답안파일\B형" # 원본 디렉토리 경로
|
|
||||||
source_directory = r"D:\project\data\제2602회 수시3_CAS(대구)\답안파일" # 원본 디렉토리 경로
|
source_directory = r"D:\project\data\제2602회 수시3_CAS(대구)\답안파일" # 원본 디렉토리 경로
|
||||||
target_directory = rf".\ent\{test_name}" # 타겟 디렉토리 경로
|
target_directory = rf".\ent\{exam_name}" # 타겟 디렉토리 경로
|
||||||
|
|
||||||
copy_ent_files(source_directory, target_directory)
|
copy_ent_files(source_directory, target_directory)
|
||||||
@@ -50,9 +50,9 @@ def process_ent_files(ent_dir, output_dir):
|
|||||||
|
|
||||||
# 실행 예
|
# 실행 예
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
test_names = ["2602_6_CAS_2_B"]
|
exam_names = ["2602_CAS_2_A"]
|
||||||
# test_names = ["2512_CAS_2_A", "2512_CAS_2_B"]
|
# exam_names = ["2512_CAS_2_A", "2512_CAS_2_B"]
|
||||||
for test_name in test_names:
|
for exam_name in exam_names:
|
||||||
ent_dir = f".\\ent\\{test_name}"
|
ent_dir = f".\\ent\\{exam_name}"
|
||||||
output_dir = f".\\output\\{test_name}"
|
output_dir = f".\\output\\{exam_name}"
|
||||||
process_ent_files(ent_dir, output_dir)
|
process_ent_files(ent_dir, output_dir)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
260220_2602_4_CAS_2_A_채점결과.xlsx
Normal file
BIN
260220_2602_4_CAS_2_A_채점결과.xlsx
Normal file
Binary file not shown.
Binary file not shown.
BIN
260306_2602_CAS_2_A_채점결과.xlsx
Normal file
BIN
260306_2602_CAS_2_A_채점결과.xlsx
Normal file
Binary file not shown.
476
_scoring.json
476
_scoring.json
@@ -1,476 +0,0 @@
|
|||||||
{
|
|
||||||
"1-1": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='꽃밭')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "배경 이름 변경"
|
|
||||||
},
|
|
||||||
"1-2": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='숲속')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "배경 이름 변경"
|
|
||||||
},
|
|
||||||
"1-3": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='당근')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "물체 이름 변경"
|
|
||||||
},
|
|
||||||
"1-4": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='하트')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "물체 이름 변경"
|
|
||||||
},
|
|
||||||
"1-5": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='토끼')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "물체 이름 변경"
|
|
||||||
},
|
|
||||||
"1-6": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='상자')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "물체 이름 변경"
|
|
||||||
},
|
|
||||||
"2-1": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$.variables[?(@.name=='당근')]['value', 'object']",
|
|
||||||
"answer": [
|
|
||||||
"10",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "변수 기본값, 전체 사용 여부"
|
|
||||||
},
|
|
||||||
"2-2": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$.variables[?(@.name=='점수')]['value', 'object']",
|
|
||||||
"answer": [
|
|
||||||
0,
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "변수 기본값, 전체 사용 여부"
|
|
||||||
},
|
|
||||||
"2-3": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$.messages[?@.name=='종료']",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "시그널 작성 여부"
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=='당근')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "시작하기 버튼을 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"points": 1.77,
|
|
||||||
"answer": "45",
|
|
||||||
"desc": "크기 지정"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2]['params']",
|
|
||||||
"points": 1.77,
|
|
||||||
"answer": [
|
|
||||||
"FORWARD",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"desc": "물체 앞으로 보내기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].params[0].params[?(@.type=='get_variable')].type",
|
|
||||||
"$[0][3].params[0].params[?(@=='LESS')]",
|
|
||||||
"$[0][3].params[0].params[?(@.type=='text')].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"get_variable",
|
|
||||||
"LESS",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "변수가 1보다 클때까지 반복"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][?@.type=='locate_xy'].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"0",
|
|
||||||
"-120"
|
|
||||||
],
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "x:0, y:-120 으로 이동"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][1].params[0].params[0]",
|
|
||||||
"answer": "32",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "스페이스(32) 를 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][1].statements[0][0].params[0].params[0]",
|
|
||||||
"answer": "0.2",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "0.2초 기다리기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][1].statements[0][1].params[1].params[0]",
|
|
||||||
"answer": "-1",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "변수에 -1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][1].statements[0][2].params[0].params[0]",
|
|
||||||
"$[0][3].statements[0][1].statements[0][2].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"0.5",
|
|
||||||
"mouse"
|
|
||||||
],
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "0.5초 동안 마우스 좌표 위치로 이동"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][2].type",
|
|
||||||
"$[0][3].statements[0][2].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "if reach something"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][2].statements[0][0].params[1].params[0]",
|
|
||||||
"answer": "10",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "변수에 10"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][2].statements[0][1].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"성공!",
|
|
||||||
"0.5"
|
|
||||||
],
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "dialog_time 시작!을 0.5초"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][4].type",
|
|
||||||
"answer": "message_cast",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "신호 보내기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][5].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "숨기기"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"3": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?name=~'하트'].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "시작하기 버튼을 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "50",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "크기 지정"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].params[0]",
|
|
||||||
"answer": "FRONT",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "맨 앞으로 보내기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].params[0]",
|
|
||||||
"answer": null,
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "반복하기 (계속)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate",
|
|
||||||
"mouse"
|
|
||||||
],
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "마우스 위치로 이동"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_message_cast",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "신호를 받았을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][1].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "숨기기"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"4": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=='토끼')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "시작하기 버튼을 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "90",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "크기 지정"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"0",
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "x:0, y:60 으로 이동"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].params[0].params[?(@.type=='get_variable')].type",
|
|
||||||
"$[0][3].params[0].params[?(@=='LESS')]",
|
|
||||||
"$[0][3].params[0].params[?(@.type=='text')].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"get_variable",
|
|
||||||
"LESS",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "변수가 1보다 클때까지 반복"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][*].params[0].params[0]",
|
|
||||||
"$[0][3].statements[0][*].params[1].params[*].params[0]",
|
|
||||||
"$[0][3].statements[0][*].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"2",
|
|
||||||
"-200",
|
|
||||||
"200",
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "2초 동안 무작위로 x:-200~200, y:60"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_message_cast",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "신호를 받았을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][1].params[*].params[0]",
|
|
||||||
"answer": [
|
|
||||||
"2",
|
|
||||||
"0",
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "2초 동안 x:0, y:0 좌표 이동"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][2].params[0].params[0]",
|
|
||||||
"answer": "50",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "크기 지정"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][3].params[0].params[0].type",
|
|
||||||
"$[1][3].params[0].params[1]",
|
|
||||||
"$[1][3].params[0].params[2].params[0]",
|
|
||||||
"$[1][3].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"get_variable",
|
|
||||||
"PLUS",
|
|
||||||
"점 입니다.",
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "변수 + 점 입니다. 3초 동안 말하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][4].params[0].params[0]",
|
|
||||||
"answer": "0.5",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "0.5초 기다리기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][5].type",
|
|
||||||
"answer": "start_scene",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "장면 전환"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"5": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?name=~'상자'].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "시작하기 버튼을 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[*][1].params[0]",
|
|
||||||
"points": 1.77,
|
|
||||||
"answer": "FORWARD",
|
|
||||||
"desc": "물체 앞으로 보내기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"0",
|
|
||||||
"-100"
|
|
||||||
],
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "x:0, y:-100 으로 이동"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].params[0].params[0]",
|
|
||||||
"points": 1.77,
|
|
||||||
"answer": "90",
|
|
||||||
"desc": "크기 지정"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][4].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"시작!",
|
|
||||||
"0.5"
|
|
||||||
],
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "dialog_time 시작!을 0.5초"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_message_cast",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "신호를 받았을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][1].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "숨기기"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"6": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=='숲속')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_scene_start",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "시작하기 버튼을 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].type",
|
|
||||||
"answer": "hide_variable",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "변수 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].type",
|
|
||||||
"answer": "hide_variable",
|
|
||||||
"points": 1.77,
|
|
||||||
"desc": "변수 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_object_click",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "오브젝트 클릭 시"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]",
|
|
||||||
"$[1][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_effect_amount",
|
|
||||||
"color",
|
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"points": 2,
|
|
||||||
"desc": "색깔 효과를 50으로 변경"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].type",
|
|
||||||
"$[1][2].params[0].params[0]",
|
|
||||||
"$[1][2].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"dialog",
|
|
||||||
"처음부터 다시 실행합니다.",
|
|
||||||
"speak"
|
|
||||||
],
|
|
||||||
"points": 2,
|
|
||||||
"desc": "처음부터 다시 실행합니다. 를 말하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][3].params[0].params[0]",
|
|
||||||
"answer": "2",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "2초 기다리기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][4].type",
|
|
||||||
"answer": "restart_project",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "처음부터 다시 시작하기"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
511
_scripts.json
511
_scripts.json
@@ -1,511 +0,0 @@
|
|||||||
[
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"id": "vlyg",
|
|
||||||
"x": 50,
|
|
||||||
"y": 30,
|
|
||||||
"type": "when_run_button_click",
|
|
||||||
"params": [
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "wqvc",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "set_scale_size",
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"id": "7qfb",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "number",
|
|
||||||
"params": [
|
|
||||||
"30"
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "kmdb",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "locate_xy",
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"id": "yry5",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "number",
|
|
||||||
"params": [
|
|
||||||
"-100"
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "g3wu",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "number",
|
|
||||||
"params": [
|
|
||||||
"-100"
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "wh5n",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "dialog_time",
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"id": "cga0",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "text",
|
|
||||||
"params": [
|
|
||||||
"야호! 출발!"
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "gihc",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "number",
|
|
||||||
"params": [
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
"speak",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
}
|
|
||||||
],
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"id": "mfln",
|
|
||||||
"x": 50,
|
|
||||||
"y": 168,
|
|
||||||
"type": "when_some_key_pressed",
|
|
||||||
"params": [
|
|
||||||
null,
|
|
||||||
"49"
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "t3ej",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "locate_object_time",
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"id": "th0s",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "number",
|
|
||||||
"params": [
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
"meq4",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "zakv",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "hide",
|
|
||||||
"params": [
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "f98n",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "wait_second",
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"id": "urh6",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "number",
|
|
||||||
"params": [
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "p4yn",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "show",
|
|
||||||
"params": [
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
}
|
|
||||||
],
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"id": "hlnb",
|
|
||||||
"x": 50,
|
|
||||||
"y": 444,
|
|
||||||
"type": "when_some_key_pressed",
|
|
||||||
"params": [
|
|
||||||
null,
|
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "smqv",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "locate_object_time",
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"id": "941e",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "number",
|
|
||||||
"params": [
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
"6kvc",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "f8ez",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "hide",
|
|
||||||
"params": [
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "6ln4",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "wait_second",
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"id": "eihx",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "number",
|
|
||||||
"params": [
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "mism",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "show",
|
|
||||||
"params": [
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
}
|
|
||||||
]
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"id": "edyx",
|
|
||||||
"x": 50,
|
|
||||||
"y": 334,
|
|
||||||
"type": "when_some_key_pressed",
|
|
||||||
"params": [
|
|
||||||
null,
|
|
||||||
"51"
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "vjkb",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "locate_object_time",
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"id": "jwnn",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "number",
|
|
||||||
"params": [
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
"9200",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "brfk",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "dialog_time",
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"id": "nun7",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "text",
|
|
||||||
"params": [
|
|
||||||
"다녀왔습니다!"
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "sriu",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "number",
|
|
||||||
"params": [
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
"speak",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": null,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": false,
|
|
||||||
"readOnly": null,
|
|
||||||
"copyable": true,
|
|
||||||
"assemble": true,
|
|
||||||
"extensions": []
|
|
||||||
}
|
|
||||||
]
|
|
||||||
]
|
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
{
|
|
||||||
"1-1": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$.scenes[0].name",
|
|
||||||
"answer": "꽃밭",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "장면 1 이름 변경"
|
|
||||||
},
|
|
||||||
"1-2": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$.scenes[1].name",
|
|
||||||
"answer": "숲속",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "장면 2 이름 변경"
|
|
||||||
},
|
|
||||||
"1-3": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='당근')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "장면 2 이름 변경"
|
|
||||||
},
|
|
||||||
"1-4": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='하트')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "장면 2 이름 변경"
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=='미어캣')].script[*]",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[*][?(@.type=='when_run_button_click')]",
|
|
||||||
"points": 1.33,
|
|
||||||
"desc": "시작하기 버튼을 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[*][?(@.type=='hide')]",
|
|
||||||
"points": 1.33,
|
|
||||||
"desc": "모양 숨기기 블럭"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[*][?(@.type=='set_scale_size')].params[0].params[0]",
|
|
||||||
"answer": "60",
|
|
||||||
"points": 1.33,
|
|
||||||
"desc": "크기 60으로 설정"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[*][?(@.type=='repeat_inf')]",
|
|
||||||
"points": 1.33,
|
|
||||||
"desc": "반복하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[*][?(@.type=='repeat_inf')].statements[0][0].params[*].params[?(@.type=='number')].params",
|
|
||||||
"answer": [
|
|
||||||
"-200",
|
|
||||||
"200",
|
|
||||||
"-100",
|
|
||||||
"100"
|
|
||||||
],
|
|
||||||
"points": 1.33,
|
|
||||||
"desc": "x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[*][?(@.type=='repeat_inf')].statements[*][1].type",
|
|
||||||
"answer": "wait_second",
|
|
||||||
"points": 1.33,
|
|
||||||
"desc": "1초 기다리기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[*][?(@.type=='repeat_inf')].statements[*][2].type",
|
|
||||||
"answer": "show",
|
|
||||||
"points": 1.33,
|
|
||||||
"desc": "모양 보이기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[*][?(@.type=='repeat_inf')].statements[*][3].type",
|
|
||||||
"answer": "wait_second",
|
|
||||||
"points": 1.33,
|
|
||||||
"desc": "1초 기다리기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[*][?(@.type=='repeat_inf')].statements[*][4].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 1.33,
|
|
||||||
"desc": "모양 숨기기"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,669 +0,0 @@
|
|||||||
{
|
|
||||||
"1-1": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='들길')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "배경 이름 변경"
|
|
||||||
},
|
|
||||||
"1-2": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='하늘')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "배경 이름 변경"
|
|
||||||
},
|
|
||||||
"1-3": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='나무')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "물체 이름 변경"
|
|
||||||
},
|
|
||||||
"1-4": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='돌')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "물체 이름 변경"
|
|
||||||
},
|
|
||||||
"1-5": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='행인')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "물체 이름 변경"
|
|
||||||
},
|
|
||||||
"1-6": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='마라토너')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "물체 이름 변경"
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'나무|나무(10)')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "시작하기 버튼을 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].type",
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": "hide",
|
|
||||||
"desc": "숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "무한 반복"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"create_clone",
|
|
||||||
"self"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "clone self"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][1].type",
|
|
||||||
"$[0][2].statements[0][1].params[0].type",
|
|
||||||
"$[0][2].statements[0][1].params[0].params[1].params[0]",
|
|
||||||
"$[0][2].statements[0][1].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"calc_rand",
|
|
||||||
"1",
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "wait random 1 betwwen 3 sec"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": "when_clone_start",
|
|
||||||
"desc": "cloen start"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0].params[0]",
|
|
||||||
"$[1][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"240",
|
|
||||||
"-20"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "변수가 1보다 클때까지 반복"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][2].type",
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": "show",
|
|
||||||
"desc": "show"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][3].type",
|
|
||||||
"$[1][3].params[0].params[0].params[3]",
|
|
||||||
"$[1][3].params[0].params[1]",
|
|
||||||
"$[1][3].params[0].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_while_true",
|
|
||||||
"x",
|
|
||||||
"LESS",
|
|
||||||
"-240"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "while object x pos less then -240"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][3].statements[0][0].type",
|
|
||||||
"$[1][3].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"-3"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "move x pos -3"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][4].type",
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": "delete_clone",
|
|
||||||
"desc": "delete clone"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"3": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'돌|바위(1)')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "시작하기 버튼을 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "30",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "크기 지정"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].type",
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": "hide",
|
|
||||||
"desc": "숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].type",
|
|
||||||
"$[0][3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "무한 반복"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"create_clone",
|
|
||||||
"self"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "clone self"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][1].type",
|
|
||||||
"$[0][3].statements[0][1].params[0].type",
|
|
||||||
"$[0][3].statements[0][1].params[0].params[1].params[0]",
|
|
||||||
"$[0][3].statements[0][1].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"calc_rand",
|
|
||||||
"1.5",
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "wait random 1.5 betwwen 3 sec"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": "when_clone_start",
|
|
||||||
"desc": "cloen start"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0].params[0]",
|
|
||||||
"$[1][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"240",
|
|
||||||
"-105"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "move location x:240, y:-105"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][2].type",
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": "show",
|
|
||||||
"desc": "show"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][3].type",
|
|
||||||
"$[1][3].params[0].params[0].params[3]",
|
|
||||||
"$[1][3].params[0].params[1]",
|
|
||||||
"$[1][3].params[0].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_while_true",
|
|
||||||
"x",
|
|
||||||
"LESS",
|
|
||||||
"-240"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "while object x pos less then -240"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][3].statements[0][0].type",
|
|
||||||
"$[1][3].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"-3"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "move x pos -3"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][4].type",
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": "delete_clone",
|
|
||||||
"desc": "delete clone"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"4": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'행인|가을 자전거를 타는 모습')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "시작하기 버튼을 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].type",
|
|
||||||
"$[0][1].params[0].params[0]",
|
|
||||||
"$[0][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"240",
|
|
||||||
"-30"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "move location x:240, y:-30"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "무한 반복"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_direction",
|
|
||||||
"-1"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "무한 반복"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"28": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$.messages[?(@.name=='넘어짐')]",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "시그널 작성 여부"
|
|
||||||
},
|
|
||||||
"5": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'마라토너|축구선수')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "시작하기 버튼을 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].type",
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": "flip_y",
|
|
||||||
"desc": "y axis flip"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0].params[0]",
|
|
||||||
"$[0][2].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"-150",
|
|
||||||
"-70"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "move location x:240, y:-30"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].type",
|
|
||||||
"$[0][3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "무한 반복"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][0].params[0]",
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": "next",
|
|
||||||
"desc": "change to next shape check value"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][1].type",
|
|
||||||
"$[0][3].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.1"
|
|
||||||
],
|
|
||||||
"desc": "wait 0.1 second"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][2].type",
|
|
||||||
"$[0][3].statements[0][2].params[0].type",
|
|
||||||
"$[0][3].statements[0][2].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"32"
|
|
||||||
],
|
|
||||||
"desc": "if press space key"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][2].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][2].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": [
|
|
||||||
"repeat_basic",
|
|
||||||
"20"
|
|
||||||
],
|
|
||||||
"desc": "while 20"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][2].statements[0][0].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][2].statements[0][0].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"5"
|
|
||||||
],
|
|
||||||
"desc": "y pos move 5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][2].statements[0][1].type",
|
|
||||||
"$[0][3].statements[0][2].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": [
|
|
||||||
"repeat_basic",
|
|
||||||
"20"
|
|
||||||
],
|
|
||||||
"desc": "while 20"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][2].statements[0][1].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][2].statements[0][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"-5"
|
|
||||||
],
|
|
||||||
"desc": "y pos move -5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][3].type",
|
|
||||||
"$[0][3].statements[0][3].params[0].type"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"desc": "if reach object"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][3].statements[0][0].type",
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": "message_cast",
|
|
||||||
"desc": "신호 보내기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_message_cast",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "신호를 받았을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0].type",
|
|
||||||
"$[1][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": [
|
|
||||||
"rotate_relative",
|
|
||||||
"angle",
|
|
||||||
"40"
|
|
||||||
],
|
|
||||||
"desc": "rotate angle 40"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].type",
|
|
||||||
"$[1][2].params[0].params[0]",
|
|
||||||
"$[1][2].params[1].params[0]",
|
|
||||||
"$[1][2].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": [
|
|
||||||
"locate_xy_time",
|
|
||||||
"0.2",
|
|
||||||
"-140",
|
|
||||||
"-100"
|
|
||||||
],
|
|
||||||
"desc": "locate x: -140, y:-100 during 0.2 sec "
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][3].type",
|
|
||||||
"$[1][3].params[0].params[0]",
|
|
||||||
"$[1][3].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"dialog",
|
|
||||||
"아야!",
|
|
||||||
"speak"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "아야! speak"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][4].type",
|
|
||||||
"$[1][4].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"stop_object",
|
|
||||||
"otherThread"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "object other code stop"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][5].type",
|
|
||||||
"$[1][5].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"desc": "wait 1 second"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][6].type",
|
|
||||||
"answer": "start_neighbor_scene",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "next scene start"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"6": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'하늘|날씨')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_scene_start",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "scene start"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].type",
|
|
||||||
"$[0][1].params[0].params[0]",
|
|
||||||
"$[0][1].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"dialog",
|
|
||||||
"아쉽지만 잘했어!",
|
|
||||||
"speak"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "말하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_object_click",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "오브젝트 클릭 시"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]",
|
|
||||||
"$[1][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"add_effect_amount",
|
|
||||||
"brightness",
|
|
||||||
"55"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "add brightness 55 effect"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].type",
|
|
||||||
"$[1][2].params[0].params[0]",
|
|
||||||
"$[1][2].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"dialog",
|
|
||||||
"처음부터 다시 실행합니다.",
|
|
||||||
"speak"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "말하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][3].type",
|
|
||||||
"$[1][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"points": 1.6,
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"desc": "wait 2 second"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][4].type",
|
|
||||||
"answer": "restart_project",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "restart"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,370 +0,0 @@
|
|||||||
{
|
|
||||||
"1-1": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='꽃밭')]",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "배경 이름 변경"
|
|
||||||
},
|
|
||||||
"1-3": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='당근')]",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "물체 이름 변경"
|
|
||||||
},
|
|
||||||
"1-4": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='하트')]",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "물체 이름 변경"
|
|
||||||
},
|
|
||||||
"1-5": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='토끼')]",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "물체 이름 변경"
|
|
||||||
},
|
|
||||||
"1-6": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='상자')]",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "물체 이름 변경"
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=='당근')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "시작하기 버튼을 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"points": 2.57,
|
|
||||||
"answer": "45",
|
|
||||||
"desc": "크기 지정"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2]['params']",
|
|
||||||
"points": 2.57,
|
|
||||||
"answer": [
|
|
||||||
"FORWARD",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"desc": "물체 앞으로 보내기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].type",
|
|
||||||
"points": 2.57,
|
|
||||||
"answer": "hide",
|
|
||||||
"desc": "숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][4].params[0]",
|
|
||||||
"answer": null,
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "반복하기 (계속)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][4].statements[0][?@.type=='locate_xy'].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"0",
|
|
||||||
"-100"
|
|
||||||
],
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "x:0, y:-100 으로 이동"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][4].statements[0][1].type",
|
|
||||||
"points": 2.57,
|
|
||||||
"answer": "show",
|
|
||||||
"desc": "모양보이기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][4].statements[0][2].params[0].params[0]",
|
|
||||||
"answer": "32",
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "스페이스(32) 를 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][4].statements[0][2].statements[0][0].params[0].params[0]",
|
|
||||||
"answer": "0.2",
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "0.2초 기다리기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][2].statements[0][1].params[0].params[0]",
|
|
||||||
"$[0][4].statements[0][2].statements[0][1].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"0.5",
|
|
||||||
"mouse"
|
|
||||||
],
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "0.5초 동안 마우스 좌표 위치로 이동"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][3].type",
|
|
||||||
"$[0][4].statements[0][3].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "if reach something"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][4].statements[0][3].statements[0][0].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"냠냠!",
|
|
||||||
"0.5"
|
|
||||||
],
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "dialog_time 냠냠!을 0.5초"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][4].type",
|
|
||||||
"$[0][4].statements[0][4].params[0].type",
|
|
||||||
"$[0][4].statements[0][4].params[0].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something",
|
|
||||||
"wall"
|
|
||||||
],
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "if reach something wall"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][4].statements[0][0].type",
|
|
||||||
"$[0][4].statements[0][4].statements[0][0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"stop_object",
|
|
||||||
"all"
|
|
||||||
],
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "모든 오브젝트 정지"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"3": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?name=~'하트'].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "시작하기 버튼을 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "50",
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "크기 지정"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].params[0]",
|
|
||||||
"answer": "FRONT",
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "맨 앞으로 보내기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].params[0]",
|
|
||||||
"answer": null,
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "반복하기 (계속)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate",
|
|
||||||
"mouse"
|
|
||||||
],
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "마우스 위치로 이동"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][1].type",
|
|
||||||
"$[0][3].statements[0][1].params[0]",
|
|
||||||
"$[0][3].statements[0][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"add_effect_amount",
|
|
||||||
"color",
|
|
||||||
"0.5"
|
|
||||||
],
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "Add Color effect 0.5 duration"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"4": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=='토끼')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "시작하기 버튼을 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "90",
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "크기 지정"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"0",
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "x:0, y:60 으로 이동"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].params[0]",
|
|
||||||
"answer": null,
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "계속 반복하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].params[0].params[0]",
|
|
||||||
"$[0][3].statements[0][0].params[1].params[*].params[0]",
|
|
||||||
"$[0][3].statements[0][0].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"2",
|
|
||||||
"-200",
|
|
||||||
"200",
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "2초 동안 무작위로 x:-200~200, y:60"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][1].type",
|
|
||||||
"$[0][3].statements[0][1].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "if reach something"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][1].statements[0][0].params[0].params[0]",
|
|
||||||
"answer": "10",
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "크기 지정"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][1].statements[0][1].type",
|
|
||||||
"$[0][3].statements[0][1].statements[0][1].params[0].params[0].type",
|
|
||||||
"$[0][3].statements[0][1].statements[0][1].params[0].params[0].params[3]",
|
|
||||||
"$[0][3].statements[0][1].statements[0][1].params[0].params[1]",
|
|
||||||
"$[0][3].statements[0][1].statements[0][1].params[0].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"coordinate_object",
|
|
||||||
"size",
|
|
||||||
"EQUAL",
|
|
||||||
"120"
|
|
||||||
],
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "비교 오브젝트의 크기가 120과 같을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][1].statements[0][1].statements[0][0].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"미션 성공!",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "dialog_time 미션 성공!을 2초"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][1].statements[0][1].statements[0][1].type",
|
|
||||||
"$[0][3].statements[0][1].statements[0][1].statements[0][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"stop_object",
|
|
||||||
"all"
|
|
||||||
],
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "모든 오브젝트 정지"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"5": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?name=~'상자'].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "시작하기 버튼을 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0]",
|
|
||||||
"points": 2.57,
|
|
||||||
"answer": "FORWARD",
|
|
||||||
"desc": "물체 앞으로 보내기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"0",
|
|
||||||
"-100"
|
|
||||||
],
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "x:0, y:-100 으로 이동"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].params[0].params[0]",
|
|
||||||
"points": 2.57,
|
|
||||||
"answer": "90",
|
|
||||||
"desc": "크기 지정"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][4].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"시작!",
|
|
||||||
"0.5"
|
|
||||||
],
|
|
||||||
"points": 2.57,
|
|
||||||
"desc": "dialog_time 시작!을 0.5초"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,382 +0,0 @@
|
|||||||
{
|
|
||||||
"1-1": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='약도')]",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "배경 이름 변경"
|
|
||||||
},
|
|
||||||
"1-3": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='놀이동산')]",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "물체 이름 변경"
|
|
||||||
},
|
|
||||||
"1-4": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='백화점')]",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "물체 이름 변경"
|
|
||||||
},
|
|
||||||
"1-5": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='우리집')]",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "물체 이름 변경"
|
|
||||||
},
|
|
||||||
"1-6": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='어린이')]",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "물체 이름 변경"
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'놀이동산')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "시작하기 버튼을 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"points": 2.43,
|
|
||||||
"answer": "90",
|
|
||||||
"desc": "크기 지정"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"-25",
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "x:-25, y:60 으로 이동"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].params",
|
|
||||||
"points": 2.43,
|
|
||||||
"answer": [
|
|
||||||
null,
|
|
||||||
"49"
|
|
||||||
],
|
|
||||||
"desc": "키보드 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]",
|
|
||||||
"$[1][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"add_effect_amount",
|
|
||||||
"color",
|
|
||||||
"30"
|
|
||||||
],
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "Add Color effect 30 duration"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][2].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"여기는 놀이동산!",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "dialog_time 여기는 놀이동산 1초 "
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][3].type",
|
|
||||||
"answer": "erase_all_effects",
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "효과 모두 삭제하기"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"3": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'백화점|건물')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "시작하기 버튼을 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"points": 2.43,
|
|
||||||
"answer": "50",
|
|
||||||
"desc": "크기 지정"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"180",
|
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "x:-25, y:60 으로 이동"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].params",
|
|
||||||
"points": 2.43,
|
|
||||||
"answer": [
|
|
||||||
null,
|
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"desc": "키보드 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]",
|
|
||||||
"$[1][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"add_effect_amount",
|
|
||||||
"color",
|
|
||||||
"40"
|
|
||||||
],
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "Add Color effect 30 duration"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][2].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"여기는 백화점!",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "dialog_time 여기는 놀이동산 1초 "
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][3].type",
|
|
||||||
"answer": "erase_all_effects",
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "효과 모두 삭제하기"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"4": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'우리집|예쁜집')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "시작하기 버튼을 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"points": 2.43,
|
|
||||||
"answer": "60",
|
|
||||||
"desc": "크기 지정"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"-190",
|
|
||||||
"-90"
|
|
||||||
],
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "x:-25, y:60 으로 이동"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].params",
|
|
||||||
"points": 2.43,
|
|
||||||
"answer": [
|
|
||||||
null,
|
|
||||||
"51"
|
|
||||||
],
|
|
||||||
"desc": "키보드 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]",
|
|
||||||
"$[1][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"add_effect_amount",
|
|
||||||
"color",
|
|
||||||
"35"
|
|
||||||
],
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "Add Color effect 30 duration"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][2].type",
|
|
||||||
"answer": "erase_all_effects",
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "효과 모두 삭제하기"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"5": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?name=~'어린이'].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "시작하기 버튼을 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"points": 2.57,
|
|
||||||
"answer": "30",
|
|
||||||
"desc": "크기 지정"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"-100",
|
|
||||||
"-100"
|
|
||||||
],
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "x:-25, y:60 으로 이동"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"야호! 출발!",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "dialog_time 여기는 놀이동산 1초 "
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].params",
|
|
||||||
"points": 2.43,
|
|
||||||
"answer": [
|
|
||||||
null,
|
|
||||||
"49"
|
|
||||||
],
|
|
||||||
"desc": "키보드 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_object_time",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "Locate Object 2 sec"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][2].type",
|
|
||||||
"points": 2.43,
|
|
||||||
"answer": "hide",
|
|
||||||
"desc": "숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[1][3].type",
|
|
||||||
"$[1][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"points": 2.43,
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"desc": "wait second"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][4].type",
|
|
||||||
"points": 2.43,
|
|
||||||
"answer": "show",
|
|
||||||
"desc": "보이기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[2][0].params",
|
|
||||||
"points": 2.43,
|
|
||||||
"answer": [
|
|
||||||
null,
|
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"desc": "키보드 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[2][1].type",
|
|
||||||
"$[2][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_object_time",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "Locate Object 2 sec"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[2][2].type",
|
|
||||||
"points": 2.43,
|
|
||||||
"answer": "hide",
|
|
||||||
"desc": "숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[2][3].type",
|
|
||||||
"$[2][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"points": 2.43,
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"desc": "wait second"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[2][4].type",
|
|
||||||
"points": 2.43,
|
|
||||||
"answer": "show",
|
|
||||||
"desc": "보이기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[3][0].params",
|
|
||||||
"points": 2.43,
|
|
||||||
"answer": [
|
|
||||||
null,
|
|
||||||
"51"
|
|
||||||
],
|
|
||||||
"desc": "키보드 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[3][1].type",
|
|
||||||
"$[3][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_object_time",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "Locate Object 2 sec"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[3][2].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"다녀왔습니다!",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 2.43,
|
|
||||||
"desc": "dialog_time 여기는 놀이동산 1초 "
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,656 +0,0 @@
|
|||||||
{
|
|
||||||
"1-1": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='약도')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "문제 1/장면 1/[배경] 이름 설정 1/이름 변경 없음"
|
|
||||||
},
|
|
||||||
"1-2": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='나의 방')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "문제 1/장면 2/[배경] 이름 설정 2/이름을 '나의 방'으로 변경하기"
|
|
||||||
},
|
|
||||||
"1-3": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='놀이동산')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "문제 1/놀이동산(1)/[개체] 이름 설정 1/이름을 '놀이동산'으로 변경하기"
|
|
||||||
},
|
|
||||||
"1-4": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='백화점')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "문제 1/건물(6)/[개체] 이름 설정 2/이름을 '백화점'으로 변경하기"
|
|
||||||
},
|
|
||||||
"1-5": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='우리집')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "문제 1/예쁜집/[개체] 이름 설정 3/이름을 '우리집'으로 변경하기"
|
|
||||||
},
|
|
||||||
"1-6": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='어린이')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "문제 1/어린이(2)/[개체] 이름 설정 4/이름을 '어린이'로 변경하기"
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'놀이동산')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/놀이동산/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "100",
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/놀이동산/[시작]의 세부 동작 1/크기를 '100' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0].params[0]",
|
|
||||||
"$[0][2].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"-25",
|
|
||||||
"80"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/놀이동산/[시작]의 세부 동작 2/x: '-25' y: '80' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_object_click",
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/놀이동산/오브젝트/오브젝트를 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][1].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"여기는 놀이동산!",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/놀이동산/[오브젝트]의 세부 동작/'여기는 놀이동산!' 을 '1' 초 동안 '말하기'"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"3": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'화점|건물')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/백화점/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "80",
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/백화점/[시작]의 세부 동작 1/크기를 '80' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0].params[0]",
|
|
||||||
"$[0][2].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"170",
|
|
||||||
"-80"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/백화점/[시작]의 세부 동작 2/x: '170' y: '-80' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_object_click",
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/백화점/오브젝트/오브젝트를 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][1].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"여기는 백화점!",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/백화점/[오브젝트]의 세부 동작/'여기는 백화점!' 을 '1' 초 동안 '말하기'"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"31": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$.messages[?(@.name=='놀이동산')]",
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "시그널 작성 여부"
|
|
||||||
},
|
|
||||||
"32": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$.messages[?(@.name=='백화점')]",
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "시그널 작성 여부"
|
|
||||||
},
|
|
||||||
"4": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'우리집|예쁜')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/우리집/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "110",
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/우리집/[시작]의 세부 동작 1/크기를 '110' 으로 정하기 "
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0].params[0]",
|
|
||||||
"$[0][2].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"-170",
|
|
||||||
"-90"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/우리집/[시작]의 세부 동작 2/x: '-170' y: '-90' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_object_click",
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/우리집/오브젝트/오브젝트를 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"ask_and_wait",
|
|
||||||
"첫 번째로 방문할 장소는?"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/우리집/[오브젝트]의 세부 동작 1/'첫 번째로 방문할 장소는?' 을 묻고 대답 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].type",
|
|
||||||
"$[1][2].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.5"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/우리집/[오브젝트]의 세부 동작 2/'0.5' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][3].type",
|
|
||||||
"$[1][3].params[0].type",
|
|
||||||
"$[1][3].params[0].params[0].type",
|
|
||||||
"$[1][3].params[0].params[1]",
|
|
||||||
"$[1][3].params[0].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"boolean_basic_operator",
|
|
||||||
"get_canvas_input_value",
|
|
||||||
"EQUAL",
|
|
||||||
"놀이동산"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/우리집/만일 1/만일 '대답' = '놀이동산' 이라면 ",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][3].statements[0][0].type",
|
|
||||||
"answer": "message_cast",
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/우리집/[만일 1]의 세부 동작/'놀이동산' 신호 보내기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][4].type",
|
|
||||||
"$[1][4].params[0].type",
|
|
||||||
"$[1][4].params[0].params[0].type",
|
|
||||||
"$[1][4].params[0].params[1]",
|
|
||||||
"$[1][4].params[0].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"boolean_basic_operator",
|
|
||||||
"get_canvas_input_value",
|
|
||||||
"EQUAL",
|
|
||||||
"백화점"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/우리집/만일 2/만일 '대답' = '백화점' 이라면 ",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][4].statements[0][0].type",
|
|
||||||
"answer": "message_cast",
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/우리집/[만일 2]의 세부 동작/'백화점' 신호 보내기"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"5": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'어린이')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "40",
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/[시작]의 세부 동작 1/크기를 '40' 으로 정하기 "
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0].params[0]",
|
|
||||||
"$[0][2].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"-170",
|
|
||||||
"-100"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/[시작]의 세부 동작 2/x: '-170' y: '-100' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].type",
|
|
||||||
"$[0][3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"39"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/만일/만일 '오른쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][0].statements[0][0].params[0].params[0]",
|
|
||||||
"$[0][3].statements[0][0].statements[0][0].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"-90",
|
|
||||||
"-100"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/[만일]의 세부 동작/x: '-90' y: '-100' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_message_cast",
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/신호 1/'놀이동산' 신호를 받았을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_while_true"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/반복 1/'놀이동산' 에 닿았는가? '이 될 때까지' 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_object_time",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/[반복 1]의 세부 동작 1/'2' 초 동안 '놀이동산' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][1].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.5"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/[반복 1]의 세부 동작 2/'0.5' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_while_true"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/반복 2/'백화점' 에 닿았는가? '이 될 때까지' 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].statements[0][0].type",
|
|
||||||
"$[1][2].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_object_time",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/[반복 2]의 세부 동작 1/'2' 초 동안 '백화점' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].statements[0][1].type",
|
|
||||||
"$[1][2].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/[반복 2]의 세부 동작 2/'1' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][3].type",
|
|
||||||
"$[1][3].params[0].params[0]",
|
|
||||||
"$[1][3].params[1].params[0]",
|
|
||||||
"$[1][3].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy_time",
|
|
||||||
"2",
|
|
||||||
"-120",
|
|
||||||
"-100"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/[신호 1]의 세부 동작 1/'2' 초 동안 x: '-120' y: '-100' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][4].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"집 도착!",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/[신호 1]의 세부 동작 2/'집 도착!' 을 '1' 초 동안 '말하기'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][5].type",
|
|
||||||
"answer": "start_neighbor_scene",
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/[신호 1]의 세부 동작 3/'다음' 장면 시작하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[2][0].type",
|
|
||||||
"answer": "when_message_cast",
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/신호 2/'백화점' 신호를 받았을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[2][1].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_while_true"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/반복 1/'백화점' 에 닿았는가? '이 될 때까지' 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[2][1].statements[0][0].type",
|
|
||||||
"$[2][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_object_time",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/[반복 1]의 세부 동작 1/'2' 초 동안 '백화점' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[2][1].statements[0][1].type",
|
|
||||||
"$[2][1].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.5"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/[반복 1]의 세부 동작 2/'0.5' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[2][2].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_while_true"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/반복 2/'놀이동산' 에 닿았는가? '이 될 때까지' 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[2][2].statements[0][0].type",
|
|
||||||
"$[2][2].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_object_time",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/[반복 2]의 세부 동작 1/'2' 초 동안 '놀이동산' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[2][2].statements[0][1].type",
|
|
||||||
"$[2][2].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/[반복 2]의 세부 동작 2/'1' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[2][3].type",
|
|
||||||
"$[2][3].params[0].params[0]",
|
|
||||||
"$[2][3].params[1].params[0]",
|
|
||||||
"$[2][3].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy_time",
|
|
||||||
"2",
|
|
||||||
"-120",
|
|
||||||
"-100"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/[신호 1]의 세부 동작 1/'2' 초 동안 x: '-120' y: '-100' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[2][4].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"집 도착!",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/[신호 1]의 세부 동작 2/'집 도착!' 을 '1' 초 동안 '말하기'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[2][5].type",
|
|
||||||
"answer": "start_neighbor_scene",
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/어린이/[신호 1]의 세부 동작 3/'다음' 장면 시작하기"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"6": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'나의|방')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_scene_start",
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/나의 방/장면/장면이 시작되었을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].type",
|
|
||||||
"$[0][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"set_visible_answer",
|
|
||||||
"HIDE"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/나의 방/[장면]의 세부 동작 1/대답 '숨기기'",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0].params[0]",
|
|
||||||
"$[0][2].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"dialog",
|
|
||||||
"my room!",
|
|
||||||
"speak"
|
|
||||||
],
|
|
||||||
"points": 1.56,
|
|
||||||
"desc": "문제2/나의 방/[장면]의 세부 동작 2/'my room!' 을 '말하기'",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_object_click",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/나의 방/오브젝트/오브젝트를 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]",
|
|
||||||
"$[1][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"add_effect_amount",
|
|
||||||
"brightness",
|
|
||||||
"10"
|
|
||||||
],
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/나의 방/[오브젝트]의 세부 동작 1/'밝기' 효과를 '10' 만큼 주기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].type",
|
|
||||||
"$[1][2].params[0].params[0]",
|
|
||||||
"$[1][2].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"dialog",
|
|
||||||
"처음부터 다시 실행합니다.",
|
|
||||||
"speak"
|
|
||||||
],
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/나의 방/[오브젝트]의 세부 동작 2/'처음부터 다시 실행합니다.' 를 '말하기'",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][3].type",
|
|
||||||
"$[1][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/나의 방/[오브젝트]의 세부 동작 3/'2' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][4].type",
|
|
||||||
"answer": "restart_project",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/나의 방/[오브젝트]의 세부 동작 4/처음부터 다시 실행하기"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,482 +0,0 @@
|
|||||||
{
|
|
||||||
"1-1": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='바다')]",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 1/바닷속(3)/[배경] 이름 설정/이름을 '바다'로 변경하기"
|
|
||||||
},
|
|
||||||
"1-3": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='신비한 열매')]",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 1/블루베리/[개체] 이름 설정 1/이름을 '신비한 열매'로 변경하기"
|
|
||||||
},
|
|
||||||
"1-4": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='쓰레기')]",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 1/쓰레기/[개체] 이름 설정 2/이름 변경 없음"
|
|
||||||
},
|
|
||||||
"1-5": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='물고기')]",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 1/빨간 물고기/[개체] 이름 설정 3/이름을 '물고기'로 변경하기"
|
|
||||||
},
|
|
||||||
"1-6": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='상어')]",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 1/상어(1)/[개체] 이름 설정 4/이름을 '상어'로 변경하기"
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'열매|블루베|신비한열매')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/신비한 열매/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/신비한 열매/[시작]의 세부 동작 1/모양 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].params[0].params[0]",
|
|
||||||
"answer": "40",
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/신비한 열매/[시작]의 세부 동작 2/크기를 '40' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].type",
|
|
||||||
"$[0][3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/신비한 열매/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0].params[*].params[0]",
|
|
||||||
"$[0][3].statements[0][0].params[1].params[*].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"-200",
|
|
||||||
"200",
|
|
||||||
"-120",
|
|
||||||
"120"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/신비한 열매/[반복]의 세부 동작 1/x: '-200 부터 200 사이의 무작위 수' y: '-120 부터 120 사이의 무작위 수' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][1].type",
|
|
||||||
"$[0][3].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/신비한 열매/[반복]의 세부 동작 2/'1' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][2].type",
|
|
||||||
"answer": "show",
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/신비한 열매/[반복]의 세부 동작 3/모양 보이기"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"3": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'쓰레기|변경없음')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/쓰레기/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/쓰레기/[시작]의 세부 동작 1/모양 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].params[0].params[0]",
|
|
||||||
"answer": "30",
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/쓰레기/[시작]의 세부 동작 2/크기를 '30' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].type",
|
|
||||||
"$[0][3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/쓰레기/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0].params[*].params[0]",
|
|
||||||
"$[0][3].statements[0][0].params[1].params[*].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"-200",
|
|
||||||
"200",
|
|
||||||
"-120",
|
|
||||||
"120"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/쓰레기/[반복]의 세부 동작 1/x: '-200 부터 200 사이의 무작위 수' y: '-120 부터 120 사이의 무작위 수' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][1].type",
|
|
||||||
"$[0][3].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/쓰레기/[반복]의 세부 동작 2/'1' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][2].type",
|
|
||||||
"answer": "show",
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/쓰레기/[반복]의 세부 동작 3/모양 보이기"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"4": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'물고기')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/물고기/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].type",
|
|
||||||
"$[0][1].params[0].params[0]",
|
|
||||||
"$[0][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"100",
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/물고기/[시작]의 세부 동작 1/x: '100' y: '60' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].params[0].params[0]",
|
|
||||||
"answer": "50",
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/물고기/[시작]의 세부 동작 2/크기를 '50' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].type",
|
|
||||||
"$[0][3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/물고기/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"37"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/물고기/만일 1/만일 '왼쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][0].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"-5"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/물고기/[만일 1]의 세부 동작/x 좌표를 '-5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][1].type",
|
|
||||||
"$[0][3].statements[0][1].params[0].type",
|
|
||||||
"$[0][3].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"39"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/물고기/만일 2/만일 '오른쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][1].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"5"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/물고기/[만일 2]의 세부 동작/x 좌표를 '5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][2].type",
|
|
||||||
"$[0][3].statements[0][2].params[0].type",
|
|
||||||
"$[0][3].statements[0][2].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"38"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/물고기/만일 3/만일 '위쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][2].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][2].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"5"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/물고기/[만일 3]의 세부 동작/y 좌표를 '5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][3].type",
|
|
||||||
"$[0][3].statements[0][3].params[0].type",
|
|
||||||
"$[0][3].statements[0][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"40"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/물고기/만일 4/만일 '아래쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][3].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][3].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"-5"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/물고기/[만일 4]의 세부 동작/y 좌표를 '-5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][4].type",
|
|
||||||
"$[0][3].statements[0][4].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/물고기/만일 5/만일 '신비한 열매' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][4].statements[0][0].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"냠냠!",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/물고기/[만일 5]의 세부 동작 1/'냠냠!' 을 '2' 초 동안 '말하기'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][4].statements[0][1].params[0].params[0]",
|
|
||||||
"answer": "120",
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/물고기/[만일 5]의 세부 동작 2/크기를 '120' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][4].statements[0][2].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/물고기/[만일 5]의 세부 동작 3/모양 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][5].type",
|
|
||||||
"$[0][3].statements[0][5].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/물고기/만일 6/만일 '쓰레기' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][5].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][5].statements[0][0].params[0]",
|
|
||||||
"$[0][3].statements[0][5].statements[0][0].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"add_effect_amount",
|
|
||||||
"color",
|
|
||||||
"30"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/물고기/[만일 6]의 세부 동작 1/'색깔' 효과를 '30' 만큼 주기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][5].statements[0][1].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"으악!",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/물고기/[만일 6]의 세부 동작 2/'으악!' 을 '2' 초 동안 '말하기'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][5].statements[0][2].type",
|
|
||||||
"answer": "erase_all_effects",
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/물고기/[만일 6]의 세부 동작 3/효과 모두 지우기"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"5": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'상어')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/상어/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/상어/[시작]의 세부 동작 1/모양 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "list",
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0].type",
|
|
||||||
"$[0][2].params[0].params[1]",
|
|
||||||
"$[0][2].params[0].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_until_true",
|
|
||||||
"boolean_basic_operator",
|
|
||||||
"EQUAL",
|
|
||||||
"120"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/상어/[시작]의 세부 동작 2/'물고기' 의 '크기' = '120' 이 될 때까지 기다리기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].type",
|
|
||||||
"$[0][3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"stop_object",
|
|
||||||
"other_objects"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/상어/[시작]의 세부 동작 3/'다른 오브젝트의' 코드 멈추기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][4].type",
|
|
||||||
"answer": "locate",
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/상어/[시작]의 세부 동작 4/'물고기' 위치로 이동하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][5].type",
|
|
||||||
"answer": "show",
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/상어/[시작]의 세부 동작 5/모양 보이기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][6].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"상어로 변했어!",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 2.19,
|
|
||||||
"desc": "문제 2/상어/[시작]의 세부 동작 6/'상어로 변했어!' 를 '2' 초 동안 '말하기'"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,870 +0,0 @@
|
|||||||
{
|
|
||||||
"1-1": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='바다1')]",
|
|
||||||
"points": 1.8,
|
|
||||||
"desc": "문제 1/장면 1/[배경] 이름 설정 1/이름을 '바다1'로 변경하기",
|
|
||||||
"sort": 11
|
|
||||||
},
|
|
||||||
"1-2": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='바다2')]",
|
|
||||||
"points": 1.8,
|
|
||||||
"desc": "문제 1/장면 2/[배경] 이름 설정 2/이름을 '바다2'로 변경하기",
|
|
||||||
"sort": 12
|
|
||||||
},
|
|
||||||
"1-3": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='빨간 물고기')]",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "문제 1/빨간 물고기/[개체] 이름 설정 1/이름 변경 없음",
|
|
||||||
"sort": 13
|
|
||||||
},
|
|
||||||
"1-4": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='노란 물고기')]",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "문제 1/물고기/[개체] 이름 설정 2/이름을 '노란 물고기'로 변경하기",
|
|
||||||
"sort": 14
|
|
||||||
},
|
|
||||||
"1-5": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='쓰레기')]",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "문제 1/쓰레기/[개체] 이름 설정 3/이름 변경 없음",
|
|
||||||
"sort": 15
|
|
||||||
},
|
|
||||||
"1-6": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='상어')]",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "문제 1/상어(1)/[개체] 이름 설정 4/이름을 '상어'로 변경하기",
|
|
||||||
"sort": 16
|
|
||||||
},
|
|
||||||
"1-7": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..variables[?(@.name=='물고기 수')]",
|
|
||||||
"points": 1,
|
|
||||||
"desc": "문제 2/빨간 물고기/변수/'물고기 수' 변수 만들기",
|
|
||||||
"sort": 101
|
|
||||||
},
|
|
||||||
"2-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'빨간 물고기')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/시작1/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "30",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[시작1]의 세부 동작 1/크기를 '30' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/만일/만일 '상어' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][0].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[만일]의 세부 동작 1/'물고기 수'에 '1' 만큼 더하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][1].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.01"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[만일]의 세부 동작 2/'0.01' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].statements[0][2].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[만일]의 세부 동작 3/모양 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].params[1].params[0]",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"calc_rand",
|
|
||||||
"0.5",
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[만일]의 세부 동작 4/'0.5 부터 3 사이의 무작위 수' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].statements[0][4].type",
|
|
||||||
"answer": "show",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[만일]의 세부 동작 5/모양 보이기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/시작2/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_direction",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[반복]의 세부 동작 1/이동 방향으로 '1 부터 2 사이의 무작위 수' 만큼 움직이기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][1].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[1].params[0]",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"direction_relative",
|
|
||||||
"calc_rand",
|
|
||||||
"-1",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[반복]의 세부 동작 2/이동 방향을 '-1 부터 1 사이의 무작위 수' 만큼 회전하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][1].statements[0][2].type",
|
|
||||||
"answer": "bounce_wall",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[반복]의 세부 동작 3/화면 끝에 닿으면 튕기기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 102,
|
|
||||||
"list": [
|
|
||||||
"set_scale_size",
|
|
||||||
"repeat_inf"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"3-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'노란 물고기|물고')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/시작1/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "30",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[시작1]의 세부 동작 1/크기를 '30' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/만일/만일 '상어' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][0].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[만일]의 세부 동작 1/물고기 수'에 '2' 만큼 더하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][1].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.01"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[만일]의 세부 동작 2/'0.01' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].statements[0][2].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[만일]의 세부 동작 3/모양 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].params[1].params[0]",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"calc_rand",
|
|
||||||
"0.5",
|
|
||||||
"1.5"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[만일]의 세부 동작 4/'0.5' 부터 '1.5' 사이의 무작위 수' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].statements[0][4].type",
|
|
||||||
"answer": "show",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[만일]의 세부 동작 5/모양 보이기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/시작2/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_direction",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[반복]의 세부 동작 1/이동 방향으로 '1 부터 2 사이의 무작위 수' 만큼 움직이기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][1].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[1].params[0]",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"direction_relative",
|
|
||||||
"calc_rand",
|
|
||||||
"-1",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[반복]의 세부 동작 2/이동 방향을 '-1 부터 1 사이의 무작위 수' 만큼 회전하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][1].statements[0][2].type",
|
|
||||||
"answer": "bounce_wall",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[반복]의 세부 동작 3/화면 끝에 닿으면 튕기기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 117,
|
|
||||||
"list": [
|
|
||||||
"set_scale_size",
|
|
||||||
"repeat_inf"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"4-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'쓰레기')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/시작1/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "30",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[시작1]의 세부 동작 1/크기를 '30' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/만일/만일 '상어' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][0].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"-1"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[만일]의 세부 동작 1/물고기 수'에 '-1' 만큼 더하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][1].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.01"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[만일]의 세부 동작 2/'0.01' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].statements[0][2].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[만일]의 세부 동작 3/모양 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].params[1].params[0]",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"calc_rand",
|
|
||||||
"0.5",
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[만일]의 세부 동작 4/'0.5 부터 3 사이의 무작위 수' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].statements[0][4].type",
|
|
||||||
"answer": "show",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[만일]의 세부 동작 5/모양 보이기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/시작2/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_direction",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[반복]의 세부 동작 1/이동 방향으로 '1 부터 2 사이의 무작위 수' 만큼 움직이기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][1].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[1].params[0]",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"direction_relative",
|
|
||||||
"calc_rand",
|
|
||||||
"-1",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[반복]의 세부 동작 2/이동 방향을 '-1 부터 1 사이의 무작위 수' 만큼 회전하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][1].statements[0][2].type",
|
|
||||||
"answer": "bounce_wall",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[반복]의 세부 동작 3/화면 끝에 닿으면 튕기기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 131,
|
|
||||||
"list": [
|
|
||||||
"set_scale_size",
|
|
||||||
"repeat_inf"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"44-0": {
|
|
||||||
"ele": "$.messages[?(@.name=='성공')]",
|
|
||||||
"points": 1,
|
|
||||||
"desc": "문제 2/상어/신호/'성공'신호 만들기",
|
|
||||||
"type": "scene",
|
|
||||||
"sort": 144
|
|
||||||
},
|
|
||||||
"5-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'상어')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/시작1/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "50",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[시작]의 세부 동작 1/크기를 '50' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0].params[0]",
|
|
||||||
"$[0][2].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"-100",
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[시작]의 세부 동작 2/x: '-100' y: '0' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].type",
|
|
||||||
"$[0][3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0].params[0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0].params[1]",
|
|
||||||
"$[0][3].statements[0][0].params[0].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"boolean_basic_operator",
|
|
||||||
"get_variable",
|
|
||||||
"GREATER",
|
|
||||||
"10"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/만일/만일 '물고기 수' 값 > '10' 이라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][0].statements[0][0].type",
|
|
||||||
"answer": "message_cast",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[만일]의 세부 동작 1/성공' 신호보내기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].statements[0][1].type",
|
|
||||||
"$[0][3].statements[0][0].statements[0][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"stop_object",
|
|
||||||
"thisOnly"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[만일]의 세부 동작 2/자신의' 코드 멈추기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/시작2/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][0].params[0].type",
|
|
||||||
"$[1][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"37"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/만일1/만일 '왼쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][0].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][0].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"-5"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[만일1]의 세부 동작 1/x 좌표를 '-5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][1].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"39"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/만일2/만일 '오른쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][1].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"5"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[만일2]의 세부 동작 1/x 좌표를 '5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][2].type",
|
|
||||||
"$[1][1].statements[0][2].params[0].type",
|
|
||||||
"$[1][1].statements[0][2].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"38"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/만일3/만일 '위쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][2].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][2].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"5"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[만일3]의 세부 동작 1/y 좌표를 '5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][3].type",
|
|
||||||
"$[1][1].statements[0][3].params[0].type",
|
|
||||||
"$[1][1].statements[0][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"40"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/만일4/만일 '아래쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][3].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][3].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"-5"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[만일4]의 세부 동작 1/y 좌표를 '-5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[2][0].type",
|
|
||||||
"answer": "when_message_cast",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/신호/'성공' 신호를 받았을 때 "
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[2][1].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"배부르다!",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[신호]의 세부 동작 1/'배부르다!' 를 '1'초 동안 '말하기'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[2][2].type",
|
|
||||||
"answer": "start_neighbor_scene",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[신호]의 세부 동작 2/'다음' 장면 시작하기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 145,
|
|
||||||
"list": [
|
|
||||||
"set_scale_size",
|
|
||||||
"repeat_inf",
|
|
||||||
"dialog_time"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"6-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'바다2|바닷속\\(3\\)1')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_scene_start",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/바다2/장면 2/장면이 시작되었을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].type",
|
|
||||||
"answer": "hide_variable",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/바다2/[장면 2]의 세부 동작 1/변수 '물고기 수' 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0].params[0]",
|
|
||||||
"$[0][2].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"dialog",
|
|
||||||
"미션성공!",
|
|
||||||
"speak"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/바다2/[장면 2]의 세부 동작 2/'미션성공!' 을 '말하기'",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_object_click",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/바다2/오브젝트/오브젝트를 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]",
|
|
||||||
"$[1][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"add_effect_amount",
|
|
||||||
"color",
|
|
||||||
"30"
|
|
||||||
],
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/바다2/[오브젝트]의 세부 동작 1/'색깔' 효과를 '30' 만큼 주기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].type",
|
|
||||||
"$[1][2].params[0].params[0]",
|
|
||||||
"$[1][2].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"dialog",
|
|
||||||
"처음부터 다시 실행!",
|
|
||||||
"speak"
|
|
||||||
],
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/바다2/[오브젝트]의 세부 동작 2/'처음부터 다시 실행!' 을 '말하기'",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][3].type",
|
|
||||||
"$[1][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/바다2/[오브젝트]의 세부 동작 3/'2' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][4].type",
|
|
||||||
"answer": "restart_project",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/바다2/[오브젝트]의 세부 동작 4/처음부터 다시 실행하기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 166,
|
|
||||||
"list": [
|
|
||||||
"hide_variable",
|
|
||||||
"add_effect_amount"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,774 +0,0 @@
|
|||||||
{
|
|
||||||
"1-1": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='우주')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "문제 1/장면 1/[배경] 이름 설정 1/이름을 '우주'로 변경하기",
|
|
||||||
"sort": 11
|
|
||||||
},
|
|
||||||
"1-2": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='우주정거장')]",
|
|
||||||
"points": 1.5,
|
|
||||||
"desc": "문제 1/장면 2/[배경] 이름 설정 2/이름 변경 없음",
|
|
||||||
"sort": 12
|
|
||||||
},
|
|
||||||
"1-3": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='에너지원')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "문제 1/물약(빨강)/[개체] 이름 설정 1/이름을 '에너지원'으로 변경하기",
|
|
||||||
"sort": 13
|
|
||||||
},
|
|
||||||
"1-4": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='운석')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "문제 1/검은 돌멩이/[개체] 이름 설정 2/이름을 '운석'으로 변경하기",
|
|
||||||
"sort": 14
|
|
||||||
},
|
|
||||||
"1-5": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='행성')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "문제 1/행성(5)/[개체] 이름 설정 3/이름을 '행성'으로 변경하기",
|
|
||||||
"sort": 15
|
|
||||||
},
|
|
||||||
"1-6": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='우주선')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "문제 1/우주선 탄 엔트리봇/[개체] 이름 설정 4/이름을 '우주선'으로 변경하기",
|
|
||||||
"sort": 16
|
|
||||||
},
|
|
||||||
"1-0": {
|
|
||||||
"ele": "$..variables[?(@.name=='연료')]",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/에너지원/변수 1/'연료' 변수 만들기 (변수 기본값은 '100', '모든 오브젝트에 사용' 설정하기)",
|
|
||||||
"type": "scene",
|
|
||||||
"sort": 101
|
|
||||||
},
|
|
||||||
"2-0": {
|
|
||||||
"ele": "$..variables[?(@.name=='점수')]",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/에너지원/변수 2/'점수' 변수 만들기 (변수 기본값은 '0', '모든 오브젝트에 사용' 설정하기)",
|
|
||||||
"type": "scene",
|
|
||||||
"sort": 102
|
|
||||||
},
|
|
||||||
"3-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'에너지원')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/에너지원/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "50",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/에너지원/[시작]의 세부 동작/크기를 '50' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/에너지원/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/에너지원/[반복]의 세부 동작 1/모양 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][1].type",
|
|
||||||
"$[0][2].statements[0][1].params[0].params[1].params[0]",
|
|
||||||
"$[0][2].statements[0][1].params[0].params[3].params[0]",
|
|
||||||
"$[0][2].statements[0][1].params[1].params[1].params[0]",
|
|
||||||
"$[0][2].statements[0][1].params[1].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"-200",
|
|
||||||
"200",
|
|
||||||
"-100",
|
|
||||||
"100"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/에너지원/[반복]의 세부 동작 2/x: '-200 부터 200 사이의 무작위 수' y: '-100 부터 100 사이의 무작위 수' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][2].type",
|
|
||||||
"$[0][2].statements[0][2].params[0].type",
|
|
||||||
"$[0][2].statements[0][2].params[0].params[1].params[0]",
|
|
||||||
"$[0][2].statements[0][2].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"calc_rand",
|
|
||||||
"1",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/에너지원/[반복]의 세부 동작 3/'1 부터 2 사이의 무작위 수' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][3].type",
|
|
||||||
"answer": "show",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/에너지원/[반복]의 세부 동작 4/모양 보이기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][4].type",
|
|
||||||
"$[0][2].statements[0][4].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/에너지원/[반복]의 세부 동작 5/'1' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][5].type",
|
|
||||||
"$[0][2].statements[0][5].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/에너지원/만일/만일 '우주선' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][5].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][5].statements[0][0].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"10"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/에너지원/[만일]의 세부 동작 1/'점수' 에 '10' 만큼 더하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][5].statements[0][1].type",
|
|
||||||
"$[0][2].statements[0][5].statements[0][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/에너지원/[만일]의 세부 동작 2/'연료' 에 '50' 만큼 더하기",
|
|
||||||
"type": "list"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 105
|
|
||||||
},
|
|
||||||
"4-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'운석|검은 돌멩')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/운석/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "30",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/운석/[시작]의 세부 동작/크기를 '30' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/운석/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/운석/[반복]의 세부 동작 1/모양 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][1].type",
|
|
||||||
"$[0][2].statements[0][1].params[0].params[1].params[0]",
|
|
||||||
"$[0][2].statements[0][1].params[0].params[3].params[0]",
|
|
||||||
"$[0][2].statements[0][1].params[1].params[1].params[0]",
|
|
||||||
"$[0][2].statements[0][1].params[1].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"-200",
|
|
||||||
"200",
|
|
||||||
"-100",
|
|
||||||
"100"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/운석/[반복]의 세부 동작 2/x: '-200 부터 200 사이의 무작위 수' y: '-100 부터 100 사이의 무작위 수' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][2].type",
|
|
||||||
"$[0][2].statements[0][2].params[0].type",
|
|
||||||
"$[0][2].statements[0][2].params[0].params[1].params[0]",
|
|
||||||
"$[0][2].statements[0][2].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"calc_rand",
|
|
||||||
"0",
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/운석/[반복]의 세부 동작 3/'0 부터 3 사이의 무작위 수' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][3].type",
|
|
||||||
"answer": "show",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/운석/[반복]의 세부 동작 4/모양 보이기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][4].type",
|
|
||||||
"$[0][2].statements[0][4].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.5"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/운석/[반복]의 세부 동작 5/'0.5' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][5].type",
|
|
||||||
"$[0][2].statements[0][5].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/운석/만일/만일 '우주선' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][5].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][5].statements[0][0].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"-5"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/운석/[만일]의 세부 동작/'점수' 에 '-5' 만큼 더하기",
|
|
||||||
"type": "list"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 115
|
|
||||||
},
|
|
||||||
"5-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'행성')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/행성/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].type",
|
|
||||||
"$[0][1].params[0].params[0]",
|
|
||||||
"$[0][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"150",
|
|
||||||
"80"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/행성/[시작]의 세부 동작/x: '150' y: '80' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/행성/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/행성/만일/만일 '우주선' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][0].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/행성/[만일]의 세부 동작 1/'연료' 에 '50' 만큼 더하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].statements[0][1].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/행성/[만일]의 세부 동작 2/모양 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][1].type",
|
|
||||||
"$[0][2].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/행성/[반복]의 세부 동작 1/'1' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][2].type",
|
|
||||||
"answer": "show",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/행성/[반복]의 세부 동작 2/모양 보이기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 125
|
|
||||||
},
|
|
||||||
"32-0": {
|
|
||||||
"ele": "$.messages[?(@.name=='탐사 성공')]",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/신호/'탐사 성공' 신호 만들기",
|
|
||||||
"type": "scene",
|
|
||||||
"sort": 132
|
|
||||||
},
|
|
||||||
"6-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'우주선')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].type",
|
|
||||||
"$[0][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].statements[0][0].type",
|
|
||||||
"$[0][1].statements[0][0].params[0].type",
|
|
||||||
"$[0][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"37"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/만일 1/만일 '왼쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].statements[0][0].statements[0][0].type",
|
|
||||||
"$[0][1].statements[0][0].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"-5"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/[만일 1]의 세부 동작 1/x 좌표를 '-5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].statements[0][0].statements[0][1].type",
|
|
||||||
"$[0][1].statements[0][0].statements[0][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"-1"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/[만일 1]의 세부 동작 2/'연료' 에 '-1' 만큼 더하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].statements[0][1].type",
|
|
||||||
"$[0][1].statements[0][1].params[0].type",
|
|
||||||
"$[0][1].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"39"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/만일 2/만일 '오른쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].statements[0][1].statements[0][0].type",
|
|
||||||
"$[0][1].statements[0][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"5"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/[만일 2]의 세부 동작 1/x 좌표를 '5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].statements[0][1].statements[0][1].type",
|
|
||||||
"$[0][1].statements[0][1].statements[0][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"-1"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/[만일 2]의 세부 동작 2/'연료' 에 '-1' 만큼 더하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].statements[0][2].type",
|
|
||||||
"$[0][1].statements[0][2].params[0].type",
|
|
||||||
"$[0][1].statements[0][2].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"38"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/만일 3/만일 '위쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].statements[0][2].statements[0][0].type",
|
|
||||||
"$[0][1].statements[0][2].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"5"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/[만일 3]의 세부 동작 1/y 좌표를 '5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].statements[0][2].statements[0][1].type",
|
|
||||||
"$[0][1].statements[0][2].statements[0][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"-1"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/[만일 3]의 세부 동작 2/'연료' 에 '-1' 만큼 더하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].statements[0][3].type",
|
|
||||||
"$[0][1].statements[0][3].params[0].type",
|
|
||||||
"$[0][1].statements[0][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"40"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/만일 4/만일 '아래쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].statements[0][3].statements[0][0].type",
|
|
||||||
"$[0][1].statements[0][3].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"-5"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/[만일 4]의 세부 동작 1/y 좌표를 '-5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].statements[0][3].statements[0][1].type",
|
|
||||||
"$[0][1].statements[0][3].statements[0][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"-1"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/[만일 4]의 세부 동작 2/'연료' 에 '-1' 만큼 더하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].statements[0][4].type",
|
|
||||||
"$[0][1].statements[0][4].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"boolean_and_or"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/만일 5/만일 '점수' 값 ≥ '30' '그리고' '연료' 값 > '0'",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].statements[0][4].statements[0][0].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"탐사성공!",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/[만일 5]의 세부 동작 1/'탐사성공!' 을 '1' 초 동안 '말하기'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].statements[0][4].statements[0][1].type",
|
|
||||||
"answer": "message_cast",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/[만일 5]의 세부 동작 2/'탐사 성공' 신호 보내기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].statements[0][5].type",
|
|
||||||
"$[0][1].statements[0][5].params[0].type",
|
|
||||||
"$[0][1].statements[0][5].params[0].params[0].type",
|
|
||||||
"$[0][1].statements[0][5].params[0].params[1]",
|
|
||||||
"$[0][1].statements[0][5].params[0].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"boolean_basic_operator",
|
|
||||||
"get_variable",
|
|
||||||
"LESS_OR_EQUAL",
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/만일 6/만일 '연료' 값 ≤ '0' 이라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].statements[0][5].statements[0][0].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"미션실패",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/[만일 6]의 세부 동작 1/'미션실패' 를 '2' 초 동안 '말하기'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].statements[0][5].statements[0][1].type",
|
|
||||||
"$[0][1].statements[0][5].statements[0][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"stop_object",
|
|
||||||
"all"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/[만일 6]의 세부 동작 2/'모든' 코드 멈추기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_message_cast",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/탐사 성공/'탐사 성공' 신호를 받았을 때 "
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][1].type",
|
|
||||||
"answer": "start_neighbor_scene",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주선/[탐사 성공]의 세부 동작/'다음' 장면 시작하기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 133
|
|
||||||
},
|
|
||||||
"7-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'우주정거장')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_scene_start",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주정거장/장면/장면이 시작되었을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].type",
|
|
||||||
"answer": "hide_variable",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주정거장/[장면 2]의 세부 동작 1/변수 '연료' 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].type",
|
|
||||||
"answer": "hide_variable",
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주정거장/[장면 2]의 세부 동작 2/변수 '점수' 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].type",
|
|
||||||
"$[0][3].params[0].params[0]",
|
|
||||||
"$[0][3].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"dialog",
|
|
||||||
"탐사 완료!",
|
|
||||||
"speak"
|
|
||||||
],
|
|
||||||
"points": 1.38,
|
|
||||||
"desc": "문제 2/우주정거장/[장면 2]의 세부 동작 3/'탐사 완료!' 를 '말하기'",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_object_click",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/우주정거장/오브젝트/오브젝트를 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]",
|
|
||||||
"$[1][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"add_effect_amount",
|
|
||||||
"color",
|
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/우주정거장/[오브젝트]의 세부 동작 1/'색깔' 효과를 '50' 만큼 주기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].type",
|
|
||||||
"$[1][2].params[0].params[0]",
|
|
||||||
"$[1][2].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"dialog",
|
|
||||||
"처음부터 다시 실행합니다.",
|
|
||||||
"speak"
|
|
||||||
],
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/우주정거장/[오브젝트]의 세부 동작 2/'처음부터 다시 실행합니다.' 를 '말하기'",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][3].type",
|
|
||||||
"$[1][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/우주정거장/[오브젝트]의 세부 동작 3/'2' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][4].type",
|
|
||||||
"answer": "restart_project",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/우주정거장/[오브젝트]의 세부 동작 4/처음부터 다시 실행하기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 156
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,825 +0,0 @@
|
|||||||
{
|
|
||||||
"1-1": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='체육관')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "문제 1/장면 1/[배경] 이름 설정 1/이름을 '체육관'으로 변경하기",
|
|
||||||
"sort": 11
|
|
||||||
},
|
|
||||||
"1-2": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='복도')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "문제 1/장면 2/[배경] 이름 설정 2/이름을 '복도'로 변경하기",
|
|
||||||
"sort": 12
|
|
||||||
},
|
|
||||||
"1-3": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='곰인형')]",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "문제 1/곰인형/[개체] 이름 설정 1/이름 변경 없음",
|
|
||||||
"sort": 13
|
|
||||||
},
|
|
||||||
"1-4": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='풍선')]",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "문제 1/풍선/[개체] 이름 설정 2/이름 변경 없음",
|
|
||||||
"sort": 14
|
|
||||||
},
|
|
||||||
"1-5": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='다트 날개')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "문제 1/빛나는 효과/[개체] 이름 설정 3/이름을 '다트 날개'로 변경하기",
|
|
||||||
"sort": 15
|
|
||||||
},
|
|
||||||
"1-6": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='다트')]",
|
|
||||||
"points": 1.7,
|
|
||||||
"desc": "문제 1/룰렛 화살표/[개체] 이름 설정 4/이름을 '다트'로 변경하기",
|
|
||||||
"sort": 16
|
|
||||||
},
|
|
||||||
"1-0": {
|
|
||||||
"ele": "$..variables[?(@.name=='다트 개수')]",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/곰인형/변수 1/'다트 개수' 변수 만들기 (변수 기본값은 '0', '모든 오브젝트에 사용' 설정하기)",
|
|
||||||
"type": "scene",
|
|
||||||
"sort": 101
|
|
||||||
},
|
|
||||||
"2-0": {
|
|
||||||
"ele": "$..variables[?(@.name=='점수')]",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/곰인형/변수 2/'점수' 변수 만들기 (변수 기본값은 '0', '모든 오브젝트에 사용' 설정하기)",
|
|
||||||
"type": "scene",
|
|
||||||
"sort": 102
|
|
||||||
},
|
|
||||||
"3-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'곰인형')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/곰인형/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].type",
|
|
||||||
"$[0][1].params[0].params[0]",
|
|
||||||
"$[0][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"180",
|
|
||||||
"-70"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/곰인형/[시작]의 세부 동작 1/x: '180' y: '-70' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].params[0].params[0]",
|
|
||||||
"answer": "25",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/곰인형/[시작]의 세부 동작 2/크기를 '25' 로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/곰인형/[시작]의 세부 동작 3/모양 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].type",
|
|
||||||
"$[0][4].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_basic",
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/곰인형/반복/'3' 번 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][0].type",
|
|
||||||
"$[0][4].statements[0][0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"create_clone",
|
|
||||||
"self"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/곰인형/[반복]의 세부 동작 1/'자신' 의 복제본 만들기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][1].type",
|
|
||||||
"$[0][4].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"70"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/곰인형/[반복]의 세부 동작 2/y 좌표를 '70' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_clone_start",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/곰인형/복제본/복제본이 처음 생성되었을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][1].type",
|
|
||||||
"answer": "show",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/곰인형/[복제본]의 세부 동작/모양 보이기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].type",
|
|
||||||
"$[1][2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/곰인형/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].statements[0][0].type",
|
|
||||||
"$[1][2].statements[0][0].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/곰인형/만일/만일 '다트'에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].statements[0][0].statements[0][0].type",
|
|
||||||
"$[1][2].statements[0][0].statements[0][0].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"-5"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/곰인형/[만일]의 세부 동작 1/'점수' 에 '-5' 만큼 더하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][2].statements[0][0].statements[0][1].type",
|
|
||||||
"answer": "delete_clone",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/곰인형/[만일]의 세부 동작 2/이 복제본 삭제하기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 105
|
|
||||||
},
|
|
||||||
"4-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'풍선')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/풍선/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].type",
|
|
||||||
"$[0][1].params[0].params[0]",
|
|
||||||
"$[0][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"130",
|
|
||||||
"-100"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/풍선/[시작]의 세부 동작 1/x: '130' y: '-100' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].params[0].params[0]",
|
|
||||||
"answer": "30",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/풍선/[시작]의 세부 동작 2/크기를 '30' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/풍선/[시작]의 세부 동작 3/모양 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].type",
|
|
||||||
"$[0][4].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_basic",
|
|
||||||
"6"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/풍선/반복/'6' 번 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][0].type",
|
|
||||||
"$[0][4].statements[0][0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"create_clone",
|
|
||||||
"self"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/풍선/[반복]의 세부 동작 1/'자신' 의 복제본 만들기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][1].type",
|
|
||||||
"$[0][4].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"40"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/풍선/[반복]의 세부 동작 2/y 좌표를 '40' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_clone_start",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/풍선/복제본/복제본이 처음 생성되었을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][1].type",
|
|
||||||
"answer": "show",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/풍선/[복제본]의 세부 동작/모양 보이기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].type",
|
|
||||||
"$[1][2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/풍선/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].statements[0][0].type",
|
|
||||||
"$[1][2].statements[0][0].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/풍선/만일/만일 '다트' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].statements[0][0].statements[0][0].type",
|
|
||||||
"$[1][2].statements[0][0].statements[0][0].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_to_some_shape",
|
|
||||||
"get_pictures"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/풍선/[만일]의 세부 동작 1/'풍선_터짐' 모양으로 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].statements[0][0].statements[0][1].type",
|
|
||||||
"$[1][2].statements[0][0].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.5"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/풍선/[만일]의 세부 동작 2/'0.5' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].statements[0][0].statements[0][2].type",
|
|
||||||
"$[1][2].statements[0][0].statements[0][2].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"10"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/풍선/[만일]의 세부 동작 3/'점수' 에 '10' 만큼 더하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][2].statements[0][0].statements[0][3].type",
|
|
||||||
"answer": "delete_clone",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/풍선/[만일]의 세부 동작 4/이 복제본 삭제하기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 117
|
|
||||||
},
|
|
||||||
"5-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'다트 날개|빛나는 효')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트 날개/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "50",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트 날개/[시작]의 세부 동작/크기를 '50' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트 날개/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].type",
|
|
||||||
"answer": "locate",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트 날개/[반복]의 세부 동작 1/'다트' 위치로 이동하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][1].type",
|
|
||||||
"$[0][2].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"-20"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트 날개/[반복]의 세부 동작 2/x 좌표를 '-20' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 132
|
|
||||||
},
|
|
||||||
"6-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'다트|룰렛 화살')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].type",
|
|
||||||
"$[0][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"set_variable",
|
|
||||||
"10"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/[시작]의 세부 동작 1/'다트 개수' 를 '10' 으로 정하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0].params[0]",
|
|
||||||
"$[0][2].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"-180",
|
|
||||||
"-20"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/[시작]의 세부 동작 2/x: '-180' y: '-20' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].type",
|
|
||||||
"$[0][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"rotate_absolute",
|
|
||||||
"90"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/[시작]의 세부 동작 3/방향을 '90°' 로 정하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][4].params[0].params[0]",
|
|
||||||
"answer": "40",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/[시작]의 세부 동작 4/크기를 '40' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][5].type",
|
|
||||||
"$[0][5].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][5].statements[0][0].type",
|
|
||||||
"$[0][5].statements[0][0].params[0].type",
|
|
||||||
"$[0][5].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"38"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/만일 1/만일 '위쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][5].statements[0][0].statements[0][0].type",
|
|
||||||
"$[0][5].statements[0][0].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/[만일 1]의 세부 동작/y 좌표를 '3' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][5].statements[0][1].type",
|
|
||||||
"$[0][5].statements[0][1].params[0].type",
|
|
||||||
"$[0][5].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"40"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/만일 2/만일 '아래쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][5].statements[0][1].statements[0][0].type",
|
|
||||||
"$[0][5].statements[0][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"-3"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/[만일 2]의 세부 동작/y 좌표를 '-3' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].params",
|
|
||||||
"answer": [
|
|
||||||
null,
|
|
||||||
"32"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/스페이스/'스페이스' 키를 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0].type",
|
|
||||||
"$[1][1].params[0].params[0].type",
|
|
||||||
"$[1][1].params[0].params[1]",
|
|
||||||
"$[1][1].params[0].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"if_else",
|
|
||||||
"boolean_basic_operator",
|
|
||||||
"get_variable",
|
|
||||||
"GREATER_OR_EQUAL",
|
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/만일/만일 '점수' 값 ≥ '50' 이라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"stop_object",
|
|
||||||
"all"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/[만일]의 세부 동작/'모든' 코드 멈추기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[1][0].type",
|
|
||||||
"$[1][1].statements[1][0].params[0].params[0]",
|
|
||||||
"$[1][1].statements[1][0].params[1].params[0]",
|
|
||||||
"$[1][1].statements[1][0].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy_time",
|
|
||||||
"1",
|
|
||||||
"330",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/[아니면]의 세부 동작 1/'1' 초 동안 x: '330' y: '자신의 y 좌푯값' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[1][1].type",
|
|
||||||
"$[1][1].statements[1][1].params[0].params[0]",
|
|
||||||
"$[1][1].statements[1][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"-180",
|
|
||||||
"-20"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/[아니면]의 세부 동작 2/x: '-180' y: '-20' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[1][2].type",
|
|
||||||
"$[1][1].statements[1][2].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"-1"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/[아니면]의 세부 동작 3/'다트 개수' 에 '-1' 만큼 더하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[1][3].type",
|
|
||||||
"$[1][1].statements[1][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.1"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/[아니면]의 세부 동작 4/'0.1' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[1][4].type",
|
|
||||||
"$[1][1].statements[1][4].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[1][4].statements[0][0].type",
|
|
||||||
"$[1][1].statements[1][4].statements[0][0].params[0].type",
|
|
||||||
"$[1][1].statements[1][4].statements[0][0].params[0].params[0].params[0].type",
|
|
||||||
"$[1][1].statements[1][4].statements[0][0].params[0].params[0].params[1]",
|
|
||||||
"$[1][1].statements[1][4].statements[0][0].params[0].params[0].params[2].params[0]",
|
|
||||||
"$[1][1].statements[1][4].statements[0][0].params[0].params[1]",
|
|
||||||
"$[1][1].statements[1][4].statements[0][0].params[0].params[2].type",
|
|
||||||
"$[1][1].statements[1][4].statements[0][0].params[0].params[2].params[0].type",
|
|
||||||
"$[1][1].statements[1][4].statements[0][0].params[0].params[2].params[1]",
|
|
||||||
"$[1][1].statements[1][4].statements[0][0].params[0].params[2].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"boolean_and_or",
|
|
||||||
"get_variable",
|
|
||||||
"EQUAL",
|
|
||||||
"0",
|
|
||||||
"AND",
|
|
||||||
"boolean_basic_operator",
|
|
||||||
"get_variable",
|
|
||||||
"LESS",
|
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"points": 1.31,
|
|
||||||
"desc": "문제 2/다트/만일 1/만일 '다트 개수' 값 = '0' '그리고' '점수 값' < '50' 이라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][1].statements[1][4].statements[0][0].statements[0][0].type",
|
|
||||||
"answer": "start_neighbor_scene",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/[만일 1]의 세부 동작/'다음' 장면 시작하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[1][4].statements[0][1].type",
|
|
||||||
"$[1][1].statements[1][4].statements[0][1].params[0].type",
|
|
||||||
"$[1][1].statements[1][4].statements[0][1].params[0].params[0].type",
|
|
||||||
"$[1][1].statements[1][4].statements[0][1].params[0].params[1]",
|
|
||||||
"$[1][1].statements[1][4].statements[0][1].params[0].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"boolean_basic_operator",
|
|
||||||
"get_variable",
|
|
||||||
"GREATER_OR_EQUAL",
|
|
||||||
"50"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/만일 2/만일 '점수' 값 ≥ '50' 이라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[1][4].statements[0][1].statements[0][0].type",
|
|
||||||
"$[1][1].statements[1][4].statements[0][1].statements[0][0].params[0].params[0]",
|
|
||||||
"$[1][1].statements[1][4].statements[0][1].statements[0][0].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"dialog",
|
|
||||||
"미션 성공!",
|
|
||||||
"speak"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/[만일 2]의 세부 동작 1/'미션 성공!' 을 '말하기'",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[1][4].statements[0][1].statements[0][1].type",
|
|
||||||
"$[1][1].statements[1][4].statements[0][1].statements[0][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"stop_object",
|
|
||||||
"all"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/다트/[만일 2]의 세부 동작 2/'모든' 코드 멈추기",
|
|
||||||
"type": "list"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 137
|
|
||||||
},
|
|
||||||
"7-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'복도|장면 ')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_scene_start",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/복도/장면/장면이 시작되었을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].type",
|
|
||||||
"answer": "hide_variable",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/복도/[장면 2]의 세부 동작 1/변수 '다트 개수' 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].type",
|
|
||||||
"answer": "hide_variable",
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/복도/[장면 2]의 세부 동작 2/변수 '점수' 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].type",
|
|
||||||
"$[0][3].params[0].params[0]",
|
|
||||||
"$[0][3].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"dialog",
|
|
||||||
"미션 실패!",
|
|
||||||
"speak"
|
|
||||||
],
|
|
||||||
"points": 1.29,
|
|
||||||
"desc": "문제 2/복도/[장면 2]의 세부 동작 3/'미션 실패!' 를 '말하기'",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_object_click",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/복도/오브젝트/오브젝트를 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]",
|
|
||||||
"$[1][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"add_effect_amount",
|
|
||||||
"color",
|
|
||||||
"60"
|
|
||||||
],
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/복도/[오브젝트]의 세부 동작 1/'색깔' 효과를 '60' 만큼 주기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].type",
|
|
||||||
"$[1][2].params[0].params[0]",
|
|
||||||
"$[1][2].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"dialog",
|
|
||||||
"처음부터 다시 실행합니다.",
|
|
||||||
"speak"
|
|
||||||
],
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/복도/[오브젝트]의 세부 동작 2/'처음부터 다시 실행합니다.' 를 '말하기'",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][3].type",
|
|
||||||
"$[1][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/복도/[오브젝트]의 세부 동작 3/'2' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][4].type",
|
|
||||||
"answer": "restart_project",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/복도/[오브젝트]의 세부 동작 4/처음부터 다시 실행하기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 160
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,557 +0,0 @@
|
|||||||
{
|
|
||||||
"1-1": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='화산')]",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 1/화산섬/[배경] 이름 설정/이름을 '화산'으로 변경하기",
|
|
||||||
"sort": 11
|
|
||||||
},
|
|
||||||
"1-3": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='불')]",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 1/불(2)/[개체] 이름 설정 1/이름을 '불'로 변경하기",
|
|
||||||
"sort": 13
|
|
||||||
},
|
|
||||||
"1-4": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='공룡')]",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 1/공룡/[개체] 이름 설정 2/이름 변경 없음",
|
|
||||||
"sort": 14
|
|
||||||
},
|
|
||||||
"1-5": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='알')]",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 1/계란/[개체] 이름 설정 3/이름을 '알'로 변경하기",
|
|
||||||
"sort": 15
|
|
||||||
},
|
|
||||||
"1-6": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='바위')]",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 1/바위(4)/[개체] 이름 설정 4/이름을 '바위'로 변경하기",
|
|
||||||
"sort": 16
|
|
||||||
},
|
|
||||||
"2-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'불')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/불/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].type",
|
|
||||||
"$[0][1].params[0].params[0]",
|
|
||||||
"$[0][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"120",
|
|
||||||
"90"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/불/[시작]의 세부 동작 1/x: '120' y: '90' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].params[0].params[0]",
|
|
||||||
"answer": "130",
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/불/[시작]의 세부 동작 2/크기를 '130' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].type",
|
|
||||||
"$[0][3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/불/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_to_some_shape",
|
|
||||||
"get_pictures"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/불/[반복]의 세부 동작 1/'불(2)_3' 모양으로 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][1].type",
|
|
||||||
"$[0][3].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.5"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/불/[반복]의 세부 동작 2/'0.5' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][2].type",
|
|
||||||
"$[0][3].statements[0][2].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_to_some_shape",
|
|
||||||
"get_pictures"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/불/[반복]의 세부 동작 3/'불(2)_1' 모양으로 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][3].type",
|
|
||||||
"$[0][3].statements[0][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.5"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/불/[반복]의 세부 동작 4/'0.5' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 102
|
|
||||||
},
|
|
||||||
"3-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'공룡')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/공룡/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].type",
|
|
||||||
"$[0][1].params[0].params[0]",
|
|
||||||
"$[0][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"0",
|
|
||||||
"-20"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/공룡/[시작]의 세부 동작 1/x: '0' y: '-20' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"공룡알을 구하자",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/공룡/[시작]의 세부 동작 2/'공룡알을 구하자' 를 '1' 초 동안 '말하기'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].type",
|
|
||||||
"$[0][3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/공룡/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"38"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/공룡/만일 1/만일 '위쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][0].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"5"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/공룡/[만일 1]의 세부 동작/y 좌표를 '5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][1].type",
|
|
||||||
"$[0][3].statements[0][1].params[0].type",
|
|
||||||
"$[0][3].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"40"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/공룡/만일 2/만일 '아래쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][1].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"-5"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/공룡/[만일 2]의 세부 동작/y 좌표를 '-5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][2].type",
|
|
||||||
"$[0][3].statements[0][2].params[0].type",
|
|
||||||
"$[0][3].statements[0][2].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"37"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/공룡/만일 3/만일 '왼쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][2].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][2].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"-5"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/공룡/[만일 3]의 세부 동작/x 좌표를 '-5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][3].type",
|
|
||||||
"$[0][3].statements[0][3].params[0].type",
|
|
||||||
"$[0][3].statements[0][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"39"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/공룡/만일 4/만일 '오른쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][3].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][3].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"5"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/공룡/[만일 4]의 세부 동작/x 좌표를 '5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][4].type",
|
|
||||||
"$[0][3].statements[0][4].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/공룡/만일 5/만일 '불' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][4].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][4].statements[0][0].params[0].params[0]",
|
|
||||||
"$[0][3].statements[0][4].statements[0][0].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"dialog",
|
|
||||||
"앗 뜨거워!",
|
|
||||||
"speak"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/공룡/[만일 5]의 세부 동작 1/'앗 뜨거워!' 를 '말하기'",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][4].statements[0][1].type",
|
|
||||||
"$[0][3].statements[0][4].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/공룡/[만일 5]의 세부 동작 2/'1' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][4].statements[0][2].type",
|
|
||||||
"$[0][3].statements[0][4].statements[0][2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"stop_object",
|
|
||||||
"all"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/공룡/[만일 5]의 세부 동작 3/'모든' 코드 멈추기",
|
|
||||||
"type": "list"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 110
|
|
||||||
},
|
|
||||||
"4-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'알|계')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/알/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "50",
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/알/[시작]의 세부 동작 1/크기를 '50' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"rotate_absolute",
|
|
||||||
"270"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/알/[시작]의 세부 동작 2/방향을 '270°' 로 정하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].type",
|
|
||||||
"$[0][3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/알/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][0].type",
|
|
||||||
"answer": "show",
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/알/[반복]의 세부 동작 1/모양 보이기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][1].type",
|
|
||||||
"$[0][3].statements[0][1].params[0].params[1].params[0]",
|
|
||||||
"$[0][3].statements[0][1].params[0].params[3].params[0]",
|
|
||||||
"$[0][3].statements[0][1].params[1].params[1].params[0]",
|
|
||||||
"$[0][3].statements[0][1].params[1].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"55",
|
|
||||||
"160",
|
|
||||||
"5",
|
|
||||||
"10"
|
|
||||||
],
|
|
||||||
"points": 2.2,
|
|
||||||
"desc": "문제 2/알/[반복]의 세부 동작 2/x: '55 부터 160 사이의 무작위 수' y: '5 부터 10 사이의 무작위 수' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][2].type",
|
|
||||||
"$[0][3].statements[0][2].params[0].params[0]",
|
|
||||||
"$[0][3].statements[0][2].params[1].params[1].params[0]",
|
|
||||||
"$[0][3].statements[0][2].params[1].params[3].params[0]",
|
|
||||||
"$[0][3].statements[0][2].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_xy_time",
|
|
||||||
"2",
|
|
||||||
"-200",
|
|
||||||
"200",
|
|
||||||
"-140"
|
|
||||||
],
|
|
||||||
"points": 2.2,
|
|
||||||
"desc": "문제 2/알/[반복]의 세부 동작 3/'2' 초 동안 x: '-200 부터 200 사이의 무작위 수' y: '-140' 만큼 움직이기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][3].type",
|
|
||||||
"$[0][3].statements[0][3].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/알/만일/만일 '바위' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][3].statements[0][0].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"공룡알이 깨졌다!",
|
|
||||||
"0.2"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/알/[만일]의 세부 동작 1/'공룡알이 깨졌다!' 를 '0.2' 초 동안 '말하기'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][3].statements[0][1].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/알/[만일]의 세부 동작 2/모양 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].params",
|
|
||||||
"answer": [
|
|
||||||
null,
|
|
||||||
"32"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/알/스페이스/'스페이스' 키를 눌렀을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/알/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][0].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/알/만일/만일 '공룡' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][1].statements[0][0].statements[0][0].type",
|
|
||||||
"answer": "locate",
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/알/[만일]의 세부 동작 1/'공룡' 위치로 이동하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][0].statements[0][1].type",
|
|
||||||
"$[1][1].statements[0][0].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"-20"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/알/[만일]의 세부 동작 2/x 좌표를 '-20' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 126
|
|
||||||
},
|
|
||||||
"5-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'바위')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/바위/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].type",
|
|
||||||
"$[0][1].params[0].params[0]",
|
|
||||||
"$[0][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"130",
|
|
||||||
"-120"
|
|
||||||
],
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/바위/[시작]의 세부 동작 1/x: '130' y: '-120' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].params[0].params[0]",
|
|
||||||
"answer": "150",
|
|
||||||
"points": 2.14,
|
|
||||||
"desc": "문제 2/바위/[시작]의 세부 동작 2/크기를 '150' 으로 정하기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 141
|
|
||||||
}
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,627 +0,0 @@
|
|||||||
{
|
|
||||||
"1-1": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='동물원')]",
|
|
||||||
"point": 2,
|
|
||||||
"desc": "문제 1/들판(3)/[배경] 이름 설정/이름을 '동물원'으로 변경하기",
|
|
||||||
"sort": 11
|
|
||||||
},
|
|
||||||
"1-3": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='코끼리')]",
|
|
||||||
"point": 2,
|
|
||||||
"desc": "문제 1/코끼리/[개체] 이름 설정 1/이름 변경 없음",
|
|
||||||
"sort": 13
|
|
||||||
},
|
|
||||||
"1-4": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='사육사')]",
|
|
||||||
"point": 2,
|
|
||||||
"desc": "문제 1/프랑켄슈타인/[개체] 이름 설정 2/이름을 '사육사'로 변경하기",
|
|
||||||
"sort": 14
|
|
||||||
},
|
|
||||||
"1-5": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='울타리')]",
|
|
||||||
"point": 2,
|
|
||||||
"desc": "문제 1/골대(3)/[개체] 이름 설정 3/이름을 '울타리'로 변경하기",
|
|
||||||
"sort": 15
|
|
||||||
},
|
|
||||||
"1-6": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='사자')]",
|
|
||||||
"point": 2,
|
|
||||||
"desc": "문제 1/사자/[개체] 이름 설정 4/이름 변경 없음",
|
|
||||||
"sort": 16
|
|
||||||
},
|
|
||||||
"2-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'코끼리')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/코끼리/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].type",
|
|
||||||
"$[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"set_scale_size",
|
|
||||||
"80"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/코끼리/[시작]의 세부 동작/크기를 '80' 으로 정하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/코끼리/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].params[0].params[1].params[0]",
|
|
||||||
"$[0][2].statements[0][0].params[0].params[3].params[0]",
|
|
||||||
"$[0][2].statements[0][0].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"-150",
|
|
||||||
"150",
|
|
||||||
"-80"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/코끼리/[반복]의 세부 동작 1/x: '-150 부터 150 사이의 무작위 수' y: '-80' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][1].type",
|
|
||||||
"$[0][2].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.5"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/코끼리/[반복]의 세부 동작 2/'0.5' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sortBlock": [
|
|
||||||
"when_run_button_click"
|
|
||||||
],
|
|
||||||
"sort": 102
|
|
||||||
},
|
|
||||||
"3-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'사육사|프랑켄슈타')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사육사/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].type",
|
|
||||||
"$[0][1].params[0].params[0]",
|
|
||||||
"$[0][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"-50",
|
|
||||||
"80"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사육사/[시작]의 세부 동작 1/x: '-50' y: '80' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"set_scale_size",
|
|
||||||
"70"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사육사/[시작]의 세부 동작 2/크기를 '70' 으로 정하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].type",
|
|
||||||
"$[0][3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사육사/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사육사/만일 1/만일 '사자' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][0].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"20"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사육사/[만일 1]의 세부 동작/x 좌표를 '20' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][1].type",
|
|
||||||
"$[0][3].statements[0][1].params[0].type",
|
|
||||||
"$[0][3].statements[0][1].params[0].params[0].type",
|
|
||||||
"$[0][3].statements[0][1].params[0].params[1]",
|
|
||||||
"$[0][3].statements[0][1].params[0].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"boolean_basic_operator",
|
|
||||||
"coordinate_object",
|
|
||||||
"LESS",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사육사/만일 2/만일 '사자 의 x 좌푯값' < '사육사 의 x 좌푯값' 이라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][1].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"-2"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사육사/[만일 2]의 세부 동작/x 좌표를 '-2' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][2].type",
|
|
||||||
"$[0][3].statements[0][2].params[0].type",
|
|
||||||
"$[0][3].statements[0][2].params[0].params[0].type",
|
|
||||||
"$[0][3].statements[0][2].params[0].params[1]",
|
|
||||||
"$[0][3].statements[0][2].params[0].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"boolean_basic_operator",
|
|
||||||
"coordinate_object",
|
|
||||||
"GREATER",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사육사/만일 3/만일 '사자 의 x 좌푯값' > '사육사 의 x 좌푯값' 이라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][2].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][2].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사육사/[만일 3]의 세부 동작/x 좌표를 '2' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][3].type",
|
|
||||||
"$[0][3].statements[0][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.2"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사육사/[반복]의 세부 동작/'0.2' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sortBlock": [
|
|
||||||
"when_run_button_click"
|
|
||||||
],
|
|
||||||
"sort": 107
|
|
||||||
},
|
|
||||||
"4-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'울타리|골대')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/울타리/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].type",
|
|
||||||
"$[0][1].params[0].params[0]",
|
|
||||||
"$[0][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"20",
|
|
||||||
"-200"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/울타리/[시작]의 세부 동작 1/x: '20' y: '-200' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"rotate_absolute",
|
|
||||||
"90"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/울타리/[시작]의 세부 동작 2/방향을 '90°' 로 정하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].type",
|
|
||||||
"$[0][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"set_scale_size",
|
|
||||||
"330"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/울타리/[시작]의 세부 동작 3/크기를 '330' 으로 정하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].type",
|
|
||||||
"$[0][4].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/울타리/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][0].type",
|
|
||||||
"$[0][4].statements[0][0].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/울타리/만일/만일 '사자' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][4].statements[0][0].statements[0][0].params[0].params",
|
|
||||||
"answer": [
|
|
||||||
"사자가 탈출했다!"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/울타리/[만일]의 세부 동작 1/'사자가 탈출했다!' 를 '말하기'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][0].statements[0][1].type",
|
|
||||||
"$[0][4].statements[0][0].statements[0][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"stop_object",
|
|
||||||
"all"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/울타리/[만일]의 세부 동작 2/'모든' 코드 멈추기",
|
|
||||||
"type": "list"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sortBlock": [
|
|
||||||
"when_run_button_click"
|
|
||||||
],
|
|
||||||
"sort": 118
|
|
||||||
},
|
|
||||||
"5-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'사자')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사자/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][1].type",
|
|
||||||
"$[0][1].params[0].params[0]",
|
|
||||||
"$[0][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"100",
|
|
||||||
"80"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사자/[시작]의 세부 동작 1/x: '100' y: '80' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"set_scale_size",
|
|
||||||
"80"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사자/[시작]의 세부 동작 2/크기를 '80' 으로 정하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].type",
|
|
||||||
"$[0][3].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_to_some_shape",
|
|
||||||
"get_pictures"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사자/[시작]의 세부 동작 3/'사자_4' 모양으로 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].type",
|
|
||||||
"$[0][4].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사자/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][0].type",
|
|
||||||
"$[0][4].statements[0][0].params[0].type",
|
|
||||||
"$[0][4].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"38"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사자/만일 1/만일 '위쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][0].statements[0][0].type",
|
|
||||||
"$[0][4].statements[0][0].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"5"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사자/[만일 1]의 세부 동작/y 좌표를 '5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][1].type",
|
|
||||||
"$[0][4].statements[0][1].params[0].type",
|
|
||||||
"$[0][4].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"40"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사자/만일 2/만일 '아래쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][1].statements[0][0].type",
|
|
||||||
"$[0][4].statements[0][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"-5"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사자/[만일 2]의 세부 동작/y 좌표를 '-5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][2].type",
|
|
||||||
"$[0][4].statements[0][2].params[0].type",
|
|
||||||
"$[0][4].statements[0][2].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"37"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사자/만일 3/만일 '왼쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][2].statements[0][0].type",
|
|
||||||
"$[0][4].statements[0][2].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"-5"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사자/[만일 3]의 세부 동작/x 좌표를 '-5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][3].type",
|
|
||||||
"$[0][4].statements[0][3].params[0].type",
|
|
||||||
"$[0][4].statements[0][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"39"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사자/만일 4/만일 '오른쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][3].statements[0][0].type",
|
|
||||||
"$[0][4].statements[0][3].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"5"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사자/[만일 4]의 세부 동작/x 좌표를 '5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][4].type",
|
|
||||||
"$[0][4].statements[0][4].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사자/만일 5/만일 '사육사' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][4].statements[0][0].type",
|
|
||||||
"$[0][4].statements[0][4].statements[0][0].params[0].params[0]",
|
|
||||||
"$[0][4].statements[0][4].statements[0][0].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"100",
|
|
||||||
"80"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사자/[만일 5]의 세부 동작 1/'x: '100' y: '80' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][4].statements[0][4].statements[0][1].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"다시 돌아가야겠군!",
|
|
||||||
"0.5"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사자/[만일 5]의 세부 동작 2/'다시 돌아가야겠군!' 을 '0.5' 초 동안 '말하기'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][5].type",
|
|
||||||
"$[0][4].statements[0][5].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사자/만일 6/만일 '코끼리' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][4].statements[0][5].statements[0][0].type",
|
|
||||||
"$[0][4].statements[0][5].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"30"
|
|
||||||
],
|
|
||||||
"point": 2.22,
|
|
||||||
"desc": "문제 2/사자/[만일 6]의 세부 동작 1/y 좌표를 '30' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][4].statements[0][5].statements[0][1].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"길이 막혔다!",
|
|
||||||
"0.5"
|
|
||||||
],
|
|
||||||
"point": 2.09,
|
|
||||||
"desc": "문제 2/사자/[만일 6]의 세부 동작 2/'길이 막혔다!' 를 '0.5' 초 동안 '말하기'"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sortBlock": [
|
|
||||||
"when_run_button_click"
|
|
||||||
],
|
|
||||||
"sort": 126
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -71,37 +71,21 @@
|
|||||||
"$[0][1].params[0].params[0]",
|
"$[0][1].params[0].params[0]",
|
||||||
"$[0][1].params[1].params[0]"
|
"$[0][1].params[1].params[0]"
|
||||||
],
|
],
|
||||||
"answer": [
|
"answer": ["locate_xy", "-90", "-40"],
|
||||||
"locate_xy",
|
|
||||||
"-90",
|
|
||||||
"-40"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/렌치/[시작]의 세부 동작 1/x: '-90' y: '-40' 위치로 이동하기",
|
"desc": "문제 2/렌치/[시작]의 세부 동작 1/x: '-90' y: '-40' 위치로 이동하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": [
|
"ele": ["$[0][2].type", "$[0][2].params[0].params[0]"],
|
||||||
"$[0][2].type",
|
"answer": ["rotate_absolute", "180"],
|
||||||
"$[0][2].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"rotate_absolute",
|
|
||||||
"180"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/렌치/[시작]의 세부 동작 2/방향을 '180°' 로 정하기",
|
"desc": "문제 2/렌치/[시작]의 세부 동작 2/방향을 '180°' 로 정하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": [
|
"ele": ["$[0][3].type", "$[0][3].params[0].params[0]"],
|
||||||
"$[0][3].type",
|
"answer": ["set_scale_size", "110"],
|
||||||
"$[0][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"set_scale_size",
|
|
||||||
"110"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/렌치/[시작]의 세부 동작 3/크기를 '110' 으로 정하기",
|
"desc": "문제 2/렌치/[시작]의 세부 동작 3/크기를 '110' 으로 정하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
@@ -118,11 +102,7 @@
|
|||||||
"$[1][1].params[0].params[0]",
|
"$[1][1].params[0].params[0]",
|
||||||
"$[1][1].params[1].params[0]"
|
"$[1][1].params[1].params[0]"
|
||||||
],
|
],
|
||||||
"answer": [
|
"answer": ["locate_xy", "25", "10"],
|
||||||
"locate_xy",
|
|
||||||
"25",
|
|
||||||
"10"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/렌치/[오브젝트]의 세부 동작 1/x: '25' y: '10' 위치로 이동하기",
|
"desc": "문제 2/렌치/[오브젝트]의 세부 동작 1/x: '25' y: '10' 위치로 이동하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
@@ -148,10 +128,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[1][2].statements[0][0].params[*].params",
|
"ele": "$[1][2].statements[0][0].params[*].params",
|
||||||
"answer": [
|
"answer": ["로봇이 수리되었습니다.", "1"],
|
||||||
"로봇이 수리되었습니다.",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/렌치/[만일]의 세부 동작 1/'로봇이 수리되었습니다.' 를 '1' 초 동안 '말하기'"
|
"desc": "문제 2/렌치/[만일]의 세부 동작 1/'로봇이 수리되었습니다.' 를 '1' 초 동안 '말하기'"
|
||||||
},
|
},
|
||||||
@@ -163,10 +140,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[1][2].statements[1][0].params[*].params",
|
"ele": "$[1][2].statements[1][0].params[*].params",
|
||||||
"answer": [
|
"answer": ["고장 원인을 다시 확인하세요.", "2"],
|
||||||
"고장 원인을 다시 확인하세요.",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/렌치/[아니면]의 세부 동작/'고장 원인을 다시 확인하세요.' 를 '2' 초 동안 '말하기'"
|
"desc": "문제 2/렌치/[아니면]의 세부 동작/'고장 원인을 다시 확인하세요.' 를 '2' 초 동안 '말하기'"
|
||||||
},
|
},
|
||||||
@@ -176,20 +150,13 @@
|
|||||||
"$[1][3].params[0].params[0]",
|
"$[1][3].params[0].params[0]",
|
||||||
"$[1][3].params[1].params[0]"
|
"$[1][3].params[1].params[0]"
|
||||||
],
|
],
|
||||||
"answer": [
|
"answer": ["locate_xy", "-90", "-40"],
|
||||||
"locate_xy",
|
|
||||||
"-90",
|
|
||||||
"-40"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/렌치/[오브젝트]의 세부 동작 2/x: '-90' y: '-40' 위치로 이동하기",
|
"desc": "문제 2/렌치/[오브젝트]의 세부 동작 2/x: '-90' y: '-40' 위치로 이동하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sortBlock": [
|
"sortBlock": ["when_run_button_click", "when_object_click"],
|
||||||
"when_run_button_click",
|
|
||||||
"when_object_click"
|
|
||||||
],
|
|
||||||
"sort": 105
|
"sort": 105
|
||||||
},
|
},
|
||||||
"14-0": {
|
"14-0": {
|
||||||
@@ -222,24 +189,14 @@
|
|||||||
"$[0][1].params[0].params[0]",
|
"$[0][1].params[0].params[0]",
|
||||||
"$[0][1].params[1].params[0]"
|
"$[0][1].params[1].params[0]"
|
||||||
],
|
],
|
||||||
"answer": [
|
"answer": ["locate_xy", "95", "-30"],
|
||||||
"locate_xy",
|
|
||||||
"95",
|
|
||||||
"-30"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇/[시작]의 세부 동작 1/x: '95' y: '-30' 위치로 이동하기",
|
"desc": "문제 2/로봇/[시작]의 세부 동작 1/x: '95' y: '-30' 위치로 이동하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": [
|
"ele": ["$[0][2].type", "$[0][2].params[0].params[0]"],
|
||||||
"$[0][2].type",
|
"answer": ["set_scale_size", "120"],
|
||||||
"$[0][2].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"set_scale_size",
|
|
||||||
"120"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇/[시작]의 세부 동작 2/크기를 '120' 으로 정하기",
|
"desc": "문제 2/로봇/[시작]의 세부 동작 2/크기를 '120' 으로 정하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
@@ -251,27 +208,18 @@
|
|||||||
"desc": "문제 2/로봇/수리 완료/'수리 완료' 신호를 받았을 때"
|
"desc": "문제 2/로봇/수리 완료/'수리 완료' 신호를 받았을 때"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[1][2].params[*].params",
|
"ele": ["$[1][1].type", "$[1][1].params[1].params[0]"],
|
||||||
"answer": [
|
"answer": ["change_variable", "1"],
|
||||||
"수리되었습니다.",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
|
||||||
"desc": "문제 2/로봇/[수리 완료]의 세부 동작 2/'수리되었습니다.' 를 '1' 초 동안 '말하기'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇/[수리 완료]의 세부 동작 1/'수리된 로봇'에 '1' 만큼 더하기",
|
"desc": "문제 2/로봇/[수리 완료]의 세부 동작 1/'수리된 로봇'에 '1' 만큼 더하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[1][2].params[*].params",
|
||||||
|
"answer": ["수리되었습니다.", "1"],
|
||||||
|
"point": 1.29,
|
||||||
|
"desc": "문제 2/로봇/[수리 완료]의 세부 동작 2/'수리되었습니다.' 를 '1' 초 동안 '말하기'"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"ele": [
|
"ele": [
|
||||||
"$[1][3].type",
|
"$[1][3].type",
|
||||||
@@ -296,20 +244,14 @@
|
|||||||
"$[1][3].statements[0][0].type",
|
"$[1][3].statements[0][0].type",
|
||||||
"$[1][3].statements[0][0].params[0]"
|
"$[1][3].statements[0][0].params[0]"
|
||||||
],
|
],
|
||||||
"answer": [
|
"answer": ["set_visible_answer", "HIDE"],
|
||||||
"set_visible_answer",
|
|
||||||
"HIDE"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇/[만일]의 세부 동작 1/대답 '숨기기'",
|
"desc": "문제 2/로봇/[만일]의 세부 동작 1/대답 '숨기기'",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[1][3].statements[0][1].params[*].params",
|
"ele": "$[1][3].statements[0][1].params[*].params",
|
||||||
"answer": [
|
"answer": ["모두 수리했습니다.", "1"],
|
||||||
"모두 수리했습니다.",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇/[만일]의 세부 동작 2/'모두 수리했습니다.' 를 '1' 초 동안 '말하기'"
|
"desc": "문제 2/로봇/[만일]의 세부 동작 2/'모두 수리했습니다.' 를 '1' 초 동안 '말하기'"
|
||||||
},
|
},
|
||||||
@@ -332,14 +274,8 @@
|
|||||||
"desc": "문제 2/로봇/로봇 이동/'로봇 이동' 신호를 받았을 때"
|
"desc": "문제 2/로봇/로봇 이동/'로봇 이동' 신호를 받았을 때"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": [
|
"ele": ["$[2][1].type", "$[2][1].params[0].params[0]"],
|
||||||
"$[2][1].type",
|
"answer": ["move_x", "120"],
|
||||||
"$[2][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"120"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇/[로봇 이동]의 세부 동작 1/x 좌표를 '120' 만큼 바꾸기",
|
"desc": "문제 2/로봇/[로봇 이동]의 세부 동작 1/x 좌표를 '120' 만큼 바꾸기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
@@ -351,14 +287,8 @@
|
|||||||
"desc": "문제 2/로봇/[로봇 이동]의 세부 동작 2/모양 숨기기"
|
"desc": "문제 2/로봇/[로봇 이동]의 세부 동작 2/모양 숨기기"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": [
|
"ele": ["$[2][3].type", "$[2][3].params[0].params[0]"],
|
||||||
"$[2][3].type",
|
"answer": ["wait_second", "0.2"],
|
||||||
"$[2][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.2"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇/[로봇 이동]의 세부 동작 3/'0.2' 초 기다리기",
|
"desc": "문제 2/로봇/[로봇 이동]의 세부 동작 3/'0.2' 초 기다리기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
@@ -369,24 +299,14 @@
|
|||||||
"$[2][4].params[0].params[0]",
|
"$[2][4].params[0].params[0]",
|
||||||
"$[2][4].params[1].params[0]"
|
"$[2][4].params[1].params[0]"
|
||||||
],
|
],
|
||||||
"answer": [
|
"answer": ["locate_xy", "95", "-30"],
|
||||||
"locate_xy",
|
|
||||||
"95",
|
|
||||||
"-30"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇/[로봇 이동]의 세부 동작 4/x: '95' y: '-30' 위치로 이동하기",
|
"desc": "문제 2/로봇/[로봇 이동]의 세부 동작 4/x: '95' y: '-30' 위치로 이동하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": [
|
"ele": ["$[2][5].type", "$[2][5].params[0].params[0]"],
|
||||||
"$[2][5].type",
|
"answer": ["wait_second", "0.2"],
|
||||||
"$[2][5].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.2"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇/[로봇 이동]의 세부 동작 5/'0.2' 초 기다리기",
|
"desc": "문제 2/로봇/[로봇 이동]의 세부 동작 5/'0.2' 초 기다리기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
@@ -423,11 +343,7 @@
|
|||||||
"$[0][1].params[0].params[0]",
|
"$[0][1].params[0].params[0]",
|
||||||
"$[0][1].params[1].params[0]"
|
"$[0][1].params[1].params[0]"
|
||||||
],
|
],
|
||||||
"answer": [
|
"answer": ["locate_xy", "180", "10"],
|
||||||
"locate_xy",
|
|
||||||
"180",
|
|
||||||
"10"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/망치/[시작]의 세부 동작/x: '180' y: '10' 위치로 이동하기",
|
"desc": "문제 2/망치/[시작]의 세부 동작/x: '180' y: '10' 위치로 이동하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
@@ -439,45 +355,27 @@
|
|||||||
"desc": "문제 2/망치/오브젝트/오브젝트를 클릭했을 때"
|
"desc": "문제 2/망치/오브젝트/오브젝트를 클릭했을 때"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": [
|
"ele": ["$[1][1].type", "$[1][1].params[0].params[0]"],
|
||||||
"$[1][1].type",
|
"answer": ["rotate_absolute", "320"],
|
||||||
"$[1][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"rotate_absolute",
|
|
||||||
"320"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/망치/[오브젝트]의 세부 동작 1/방향을 '320°' 로 정하기",
|
"desc": "문제 2/망치/[오브젝트]의 세부 동작 1/방향을 '320°' 로 정하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[1][2].params[*].params",
|
"ele": "$[1][2].params[*].params",
|
||||||
"answer": [
|
"answer": ["더 고장났어요!", "2"],
|
||||||
"더 고장났어요!",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/망치/[오브젝트]의 세부 동작 2/'더 고장났어요!' 를 '2' 초 동안 '말하기'"
|
"desc": "문제 2/망치/[오브젝트]의 세부 동작 2/'더 고장났어요!' 를 '2' 초 동안 '말하기'"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": [
|
"ele": ["$[1][3].type", "$[1][3].params[0].params[0]"],
|
||||||
"$[1][3].type",
|
"answer": ["rotate_absolute", "0"],
|
||||||
"$[1][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"rotate_absolute",
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/망치/[오브젝트]의 세부 동작 3/방향을 '0°' 로 정하기",
|
"desc": "문제 2/망치/[오브젝트]의 세부 동작 3/방향을 '0°' 로 정하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sortBlock": [
|
"sortBlock": ["when_run_button_click", "when_object_click"],
|
||||||
"when_run_button_click",
|
|
||||||
"when_object_click"
|
|
||||||
],
|
|
||||||
"sort": 135
|
"sort": 135
|
||||||
},
|
},
|
||||||
"6-0": {
|
"6-0": {
|
||||||
@@ -497,24 +395,14 @@
|
|||||||
"$[0][1].params[0].params[0]",
|
"$[0][1].params[0].params[0]",
|
||||||
"$[0][1].params[1].params[0]"
|
"$[0][1].params[1].params[0]"
|
||||||
],
|
],
|
||||||
"answer": [
|
"answer": ["locate_xy", "10", "15"],
|
||||||
"locate_xy",
|
|
||||||
"10",
|
|
||||||
"15"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇 팔/[시작]의 세부 동작 1/x: '10' y: '15' 위치로 이동하기",
|
"desc": "문제 2/로봇 팔/[시작]의 세부 동작 1/x: '10' y: '15' 위치로 이동하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": [
|
"ele": ["$[0][2].type", "$[0][2].params[0].params[0]"],
|
||||||
"$[0][2].type",
|
"answer": ["rotate_absolute", "180"],
|
||||||
"$[0][2].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"rotate_absolute",
|
|
||||||
"180"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇 팔/[시작]의 세부 동작 2/방향을 '180°' 로 정하기",
|
"desc": "문제 2/로봇 팔/[시작]의 세부 동작 2/방향을 '180°' 로 정하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
@@ -526,12 +414,7 @@
|
|||||||
"$[0][3].params[0].params[1]",
|
"$[0][3].params[0].params[1]",
|
||||||
"$[0][3].params[0].params[2].params[0]"
|
"$[0][3].params[0].params[2].params[0]"
|
||||||
],
|
],
|
||||||
"answer": [
|
"answer": ["repeat_while_true", null, "EQUAL", "2"],
|
||||||
"repeat_while_true",
|
|
||||||
null,
|
|
||||||
"EQUAL",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇 팔/반복/'수리된 로봇 값' = '2' 이 될 때까지' 반복하기",
|
"desc": "문제 2/로봇 팔/반복/'수리된 로봇 값' = '2' 이 될 때까지' 반복하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
@@ -541,10 +424,7 @@
|
|||||||
"$[0][3].statements[0][0].type",
|
"$[0][3].statements[0][0].type",
|
||||||
"$[0][3].statements[0][0].params[0].params[0]"
|
"$[0][3].statements[0][0].params[0].params[0]"
|
||||||
],
|
],
|
||||||
"answer": [
|
"answer": ["wait_second", "1"],
|
||||||
"wait_second",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇 팔/[반복]의 세부 동작 1/1' 초 기다리기",
|
"desc": "문제 2/로봇 팔/[반복]의 세부 동작 1/1' 초 기다리기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
@@ -554,10 +434,7 @@
|
|||||||
"$[0][3].statements[0][1].type",
|
"$[0][3].statements[0][1].type",
|
||||||
"$[0][3].statements[0][1].params[0].params[0]"
|
"$[0][3].statements[0][1].params[0].params[0]"
|
||||||
],
|
],
|
||||||
"answer": [
|
"answer": ["ask_and_wait", "어디가 고장났나요?"],
|
||||||
"ask_and_wait",
|
|
||||||
"어디가 고장났나요?"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇 팔/[반복]의 세부 동작 2/'어디가 고장났나요?' 를 묻고 대답 기다리기",
|
"desc": "문제 2/로봇 팔/[반복]의 세부 동작 2/'어디가 고장났나요?' 를 묻고 대답 기다리기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
@@ -594,29 +471,20 @@
|
|||||||
"$[0][3].statements[0][2].statements[0][0].type",
|
"$[0][3].statements[0][2].statements[0][0].type",
|
||||||
"$[0][3].statements[0][2].statements[0][0].params[1].params[0]"
|
"$[0][3].statements[0][2].statements[0][0].params[1].params[0]"
|
||||||
],
|
],
|
||||||
"answer": [
|
"answer": ["set_variable", null],
|
||||||
"set_variable",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇 팔/[만일]의 세부 동작 1/'고장 원인' 을 '대답' 으로 정하기",
|
"desc": "문제 2/로봇 팔/[만일]의 세부 동작 1/'고장 원인' 을 '대답' 으로 정하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[0][3].statements[0][2].statements[0][1].params[*].params",
|
"ele": "$[0][3].statements[0][2].statements[0][1].params[*].params",
|
||||||
"answer": [
|
"answer": ["도구를 선택하세요.", "2"],
|
||||||
"도구를 선택하세요.",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇 팔/[만일]의 세부 동작 2/'도구를 선택하세요' 를 '2' 초 동안 '말하기'"
|
"desc": "문제 2/로봇 팔/[만일]의 세부 동작 2/'도구를 선택하세요' 를 '2' 초 동안 '말하기'"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[0][3].statements[0][2].statements[1][0].params[*].params",
|
"ele": "$[0][3].statements[0][2].statements[1][0].params[*].params",
|
||||||
"answer": [
|
"answer": ["나사 조임, 부품 고장 중 무엇입니까?", "2"],
|
||||||
"나사 조임, 부품 고장 중 무엇입니까?",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇 팔/[아니면]의 세부 동작 1/'나사 조임, 부품 고장 중 무엇입니까?' 를 '2' 초 동안 말하기"
|
"desc": "문제 2/로봇 팔/[아니면]의 세부 동작 1/'나사 조임, 부품 고장 중 무엇입니까?' 를 '2' 초 동안 말하기"
|
||||||
},
|
},
|
||||||
@@ -625,10 +493,7 @@
|
|||||||
"$[0][3].statements[0][3].type",
|
"$[0][3].statements[0][3].type",
|
||||||
"$[0][3].statements[0][3].params[0].params[0]"
|
"$[0][3].statements[0][3].params[0].params[0]"
|
||||||
],
|
],
|
||||||
"answer": [
|
"answer": ["wait_second", "2"],
|
||||||
"wait_second",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇 팔/[아니면]의 세부 동작 2/'2' 초 기다리기",
|
"desc": "문제 2/로봇 팔/[아니면]의 세부 동작 2/'2' 초 기다리기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
@@ -640,14 +505,8 @@
|
|||||||
"desc": "문제 2/로봇 팔/오브젝트/오브젝트를 클릭했을 때"
|
"desc": "문제 2/로봇 팔/오브젝트/오브젝트를 클릭했을 때"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": [
|
"ele": ["$[1][1].type", "$[1][1].params[0].params[0]"],
|
||||||
"$[1][1].type",
|
"answer": ["rotate_absolute", "130"],
|
||||||
"$[1][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"rotate_absolute",
|
|
||||||
"130"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇 팔/[오브젝트]의 세부 동작 1/방향을 '130°' 로 정하기",
|
"desc": "문제 2/로봇 팔/[오브젝트]의 세부 동작 1/방향을 '130°' 로 정하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
@@ -673,10 +532,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[1][2].statements[0][0].params[*].params",
|
"ele": "$[1][2].statements[0][0].params[*].params",
|
||||||
"answer": [
|
"answer": ["로봇이 수리되었습니다.", "1"],
|
||||||
"로봇이 수리되었습니다.",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇 팔/[만일]의 세부 동작 1/'로봇이 수리되었습니다.' 를 '1' 초 동안 '말하기'"
|
"desc": "문제 2/로봇 팔/[만일]의 세부 동작 1/'로봇이 수리되었습니다.' 를 '1' 초 동안 '말하기'"
|
||||||
},
|
},
|
||||||
@@ -688,10 +544,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[1][2].statements[1][0].params[*].params",
|
"ele": "$[1][2].statements[1][0].params[*].params",
|
||||||
"answer": [
|
"answer": ["고장 원인을 확인하세요.", "2"],
|
||||||
"고장 원인을 확인하세요.",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇 팔/[아니면]의 세부 동작/'고장 원인을 다시 확인하세요' 를 '2' 초 동안 '말하기'"
|
"desc": "문제 2/로봇 팔/[아니면]의 세부 동작/'고장 원인을 다시 확인하세요' 를 '2' 초 동안 '말하기'"
|
||||||
},
|
},
|
||||||
@@ -701,33 +554,20 @@
|
|||||||
"$[1][3].params[0].params[0]",
|
"$[1][3].params[0].params[0]",
|
||||||
"$[1][3].params[1].params[0]"
|
"$[1][3].params[1].params[0]"
|
||||||
],
|
],
|
||||||
"answer": [
|
"answer": ["locate_xy", "10", "15"],
|
||||||
"locate_xy",
|
|
||||||
"10",
|
|
||||||
"15"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇 팔/[오브젝트]의 세부 동작 2/x: '10' y: '15' 위치로 이동하기",
|
"desc": "문제 2/로봇 팔/[오브젝트]의 세부 동작 2/x: '10' y: '15' 위치로 이동하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": [
|
"ele": ["$[1][4].type", "$[1][4].params[0].params[0]"],
|
||||||
"$[1][4].type",
|
"answer": ["rotate_absolute", "180"],
|
||||||
"$[1][4].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"rotate_absolute",
|
|
||||||
"180"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇 팔/[오브젝트]의 세부 동작 3/방향을 '180°' 로 정하기",
|
"desc": "문제 2/로봇 팔/[오브젝트]의 세부 동작 3/방향을 '180°' 로 정하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sortBlock": [
|
"sortBlock": ["when_run_button_click", "when_object_click"],
|
||||||
"when_run_button_click",
|
|
||||||
"when_object_click"
|
|
||||||
],
|
|
||||||
"sort": 141
|
"sort": 141
|
||||||
},
|
},
|
||||||
"7-0": {
|
"7-0": {
|
||||||
@@ -758,11 +598,7 @@
|
|||||||
"$[0][3].params[0].params[0]",
|
"$[0][3].params[0].params[0]",
|
||||||
"$[0][3].params[1]"
|
"$[0][3].params[1]"
|
||||||
],
|
],
|
||||||
"answer": [
|
"answer": ["dialog", "모든 로봇 수리 완료!", "speak"],
|
||||||
"dialog",
|
|
||||||
"모든 로봇 수리 완료!",
|
|
||||||
"speak"
|
|
||||||
],
|
|
||||||
"point": 1.29,
|
"point": 1.29,
|
||||||
"desc": "문제 2/로봇방/[장면 2]의 세부 동작 3/'모든 로봇 수리 완료!' 를 '말하기'",
|
"desc": "문제 2/로봇방/[장면 2]의 세부 동작 3/'모든 로봇 수리 완료!' 를 '말하기'",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
@@ -779,11 +615,7 @@
|
|||||||
"$[1][1].params[0]",
|
"$[1][1].params[0]",
|
||||||
"$[1][1].params[1].params[0]"
|
"$[1][1].params[1].params[0]"
|
||||||
],
|
],
|
||||||
"answer": [
|
"answer": ["add_effect_amount", "color", "45"],
|
||||||
"add_effect_amount",
|
|
||||||
"color",
|
|
||||||
"45"
|
|
||||||
],
|
|
||||||
"point": 2,
|
"point": 2,
|
||||||
"desc": "문제 3/로봇방/[오브젝트]의 세부 동작 1/'색깔' 효과를 '45' 만큼 주기",
|
"desc": "문제 3/로봇방/[오브젝트]의 세부 동작 1/'색깔' 효과를 '45' 만큼 주기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
@@ -794,24 +626,14 @@
|
|||||||
"$[1][2].params[0].params[0]",
|
"$[1][2].params[0].params[0]",
|
||||||
"$[1][2].params[1]"
|
"$[1][2].params[1]"
|
||||||
],
|
],
|
||||||
"answer": [
|
"answer": ["dialog", "처음부터 다시 실행합니다.", "speak"],
|
||||||
"dialog",
|
|
||||||
"처음부터 다시 실행합니다.",
|
|
||||||
"speak"
|
|
||||||
],
|
|
||||||
"point": 2,
|
"point": 2,
|
||||||
"desc": "문제 3/로봇방/[오브젝트]의 세부 동작 2/'처음부터 다시 실행합니다.' 를 '말하기'",
|
"desc": "문제 3/로봇방/[오브젝트]의 세부 동작 2/'처음부터 다시 실행합니다.' 를 '말하기'",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": [
|
"ele": ["$[1][3].type", "$[1][3].params[0].params[0]"],
|
||||||
"$[1][3].type",
|
"answer": ["wait_second", "2"],
|
||||||
"$[1][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"point": 2,
|
"point": 2,
|
||||||
"desc": "문제 3/로봇방/[오브젝트]의 세부 동작 3/'2' 초 기다리기",
|
"desc": "문제 3/로봇방/[오브젝트]의 세부 동작 3/'2' 초 기다리기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
@@ -823,10 +645,7 @@
|
|||||||
"desc": "문제 3/로봇방/[오브젝트]의 세부 동작 4/처음부터 다시 실행하기"
|
"desc": "문제 3/로봇방/[오브젝트]의 세부 동작 4/처음부터 다시 실행하기"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sortBlock": [
|
"sortBlock": ["when_scene_start", "when_object_click"],
|
||||||
"when_scene_start",
|
|
||||||
"when_object_click"
|
|
||||||
],
|
|
||||||
"sort": 160
|
"sort": 160
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
697
correct/2602_4_CAS_2_A.json
Normal file
697
correct/2602_4_CAS_2_A.json
Normal file
@@ -0,0 +1,697 @@
|
|||||||
|
{
|
||||||
|
"1-1": {
|
||||||
|
"type": "scene",
|
||||||
|
"ele": "$..objects[?(@.name=='우주')]",
|
||||||
|
"point": 1.7,
|
||||||
|
"desc": "문제 1/장면 1/[배경] 이름 설정 1/이름을 '우주'로 변경하기",
|
||||||
|
"sort": 11
|
||||||
|
},
|
||||||
|
"1-2": {
|
||||||
|
"type": "scene",
|
||||||
|
"ele": "$.[objects,scenes][?(@.name=='장면 2')]",
|
||||||
|
"point": 1.7,
|
||||||
|
"desc": "문제 1/장면 2/[배경] 이름 설정 2/이름 변경 없음",
|
||||||
|
"sort": 12
|
||||||
|
},
|
||||||
|
"1-3": {
|
||||||
|
"type": "scene",
|
||||||
|
"ele": "$..objects[?(@.name=='우주비행사')]",
|
||||||
|
"point": 1.7,
|
||||||
|
"desc": "문제 1/우주인(4)/[개체] 이름 설정 1/이름을 '우주비행사'로 변경하기",
|
||||||
|
"sort": 13
|
||||||
|
},
|
||||||
|
"1-4": {
|
||||||
|
"type": "scene",
|
||||||
|
"ele": "$..objects[?(@.name=='혜성')]",
|
||||||
|
"point": 1.7,
|
||||||
|
"desc": "문제 1/별똥별(1)/[개체] 이름 설정 2/이름을 '혜성'으로 변경하기",
|
||||||
|
"sort": 14
|
||||||
|
},
|
||||||
|
"1-5": {
|
||||||
|
"type": "scene",
|
||||||
|
"ele": "$..objects[?(@.name=='로켓')]",
|
||||||
|
"point": 1.7,
|
||||||
|
"desc": "문제 1/로켓/[개체] 이름 설정 3/이름 변경 없음",
|
||||||
|
"sort": 15
|
||||||
|
},
|
||||||
|
"1-6": {
|
||||||
|
"type": "scene",
|
||||||
|
"ele": "$..objects[?(@.name=='낙하산')]",
|
||||||
|
"point": 1.7,
|
||||||
|
"desc": "문제 1/열기구(2)/[개체] 이름 설정 4/이름을 '낙하산'으로 변경하기",
|
||||||
|
"sort": 16
|
||||||
|
},
|
||||||
|
"1-0": {
|
||||||
|
"ele": "$..variables[?(@.name=='구조자')]",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/변수/'구조자' 변수 만들기 (변수 기본값은 '0', '모든 오브젝트에 사용' 설정)",
|
||||||
|
"type": "scene",
|
||||||
|
"sort": 101
|
||||||
|
},
|
||||||
|
"2-0": {
|
||||||
|
"type": "script",
|
||||||
|
"ele": "$.objects[?(@.name=~'우주비행사|우주인')].script",
|
||||||
|
"blocks": [
|
||||||
|
{
|
||||||
|
"ele": "$[0][0].type",
|
||||||
|
"answer": "when_run_button_click",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/시작/시작하기 버튼을 클릭했을 때"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][1].type",
|
||||||
|
"$[0][1].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"set_scale_size",
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/[시작]의 세부 동작 1/크기를 '70' 으로 정하기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].type",
|
||||||
|
"$[0][2].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"repeat_inf",
|
||||||
|
null
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/반복/계속 반복하기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[0][2].statements[0][0].type",
|
||||||
|
"answer": "hide",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/[반복]의 세부 동작 1/모양 숨기기"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].statements[0][1].type",
|
||||||
|
"$[0][2].statements[0][1].params[0].params[1].params[0]",
|
||||||
|
"$[0][2].statements[0][1].params[0].params[3].params[0]",
|
||||||
|
"$[0][2].statements[0][1].params[1].params[1].params[0]",
|
||||||
|
"$[0][2].statements[0][1].params[1].params[3].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"locate_xy",
|
||||||
|
"-210",
|
||||||
|
"210",
|
||||||
|
"-120",
|
||||||
|
"120"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/[반복]의 세부 동작 2/x: '-210 부터 210 사이의 무작위 수' y: '-120 부터 120 사이의 무작위 수' 위치로 이동하기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].statements[0][2].type",
|
||||||
|
"$[0][2].statements[0][2].params[0].type",
|
||||||
|
"$[0][2].statements[0][2].params[0].params[1].params[0]",
|
||||||
|
"$[0][2].statements[0][2].params[0].params[3].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"wait_second",
|
||||||
|
"calc_rand",
|
||||||
|
"0",
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/[반복]의 세부 동작 3/'0 부터 3 사이의 무작위 수' 초 기다리기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[0][2].statements[0][3].type",
|
||||||
|
"answer": "show",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/[반복]의 세부 동작 4/모양 보이기"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].statements[0][4].type",
|
||||||
|
"$[0][2].statements[0][4].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"wait_second",
|
||||||
|
"1.5"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/[반복]의 세부 동작 5/'1.5' 초 기다리기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].statements[0][5].type",
|
||||||
|
"$[0][2].statements[0][5].params[0].type"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"_if",
|
||||||
|
"reach_something"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/만일/만일 '로켓' 에 닿았는가? 라면",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].statements[0][5].statements[0][0].type",
|
||||||
|
"$[0][2].statements[0][5].statements[0][0].params[1].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"change_variable",
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/[만일]의 세부 동작/'구조자' 에 '1' 만큼 더하기",
|
||||||
|
"type": "list"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sortBlock": [
|
||||||
|
"when_run_button_click"
|
||||||
|
],
|
||||||
|
"sort": 102
|
||||||
|
},
|
||||||
|
"3-0": {
|
||||||
|
"type": "script",
|
||||||
|
"ele": "$.objects[?(@.name=~'혜성|별똥별')].script",
|
||||||
|
"blocks": [
|
||||||
|
{
|
||||||
|
"ele": "$[0][0].type",
|
||||||
|
"answer": "when_run_button_click",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/혜성/시작/시작하기 버튼을 클릭했을 때"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][1].type",
|
||||||
|
"$[0][1].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"set_scale_size",
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/혜성/[시작]의 세부 동작 1/크기를 '60' 으로 정하기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].type",
|
||||||
|
"$[0][2].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"repeat_inf",
|
||||||
|
null
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/혜성/반복/계속 반복하기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[0][2].statements[0][0].type",
|
||||||
|
"answer": "hide",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/혜성/[반복]의 세부 동작 1/모양 숨기기"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].statements[0][1].type",
|
||||||
|
"$[0][2].statements[0][1].params[0].params[1].params[0]",
|
||||||
|
"$[0][2].statements[0][1].params[0].params[3].params[0]",
|
||||||
|
"$[0][2].statements[0][1].params[1].params[1].params[0]",
|
||||||
|
"$[0][2].statements[0][1].params[1].params[3].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"locate_xy",
|
||||||
|
"-210",
|
||||||
|
"210",
|
||||||
|
"-120",
|
||||||
|
"120"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/혜성/[반복]의 세부 동작 2/x: '-210 부터 210 사이의 무작위 수' y: '-120 부터 120 사이의 무작위 수' 위치로 이동하기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].statements[0][2].type",
|
||||||
|
"$[0][2].statements[0][2].params[0].type",
|
||||||
|
"$[0][2].statements[0][2].params[0].params[1].params[0]",
|
||||||
|
"$[0][2].statements[0][2].params[0].params[3].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"wait_second",
|
||||||
|
"calc_rand",
|
||||||
|
"0",
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/혜성/[반복]의 세부 동작 3/'0 부터 3 사이의 무작위 수' 초 기다리기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[0][2].statements[0][3].type",
|
||||||
|
"answer": "show",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/혜성/[반복]의 세부 동작 4/모양 보이기"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].statements[0][4].type",
|
||||||
|
"$[0][2].statements[0][4].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"wait_second",
|
||||||
|
"1.5"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/혜성/[반복]의 세부 동작 4/'1.5' 초 기다리기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].statements[0][5].type",
|
||||||
|
"$[0][2].statements[0][5].params[0].type"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"_if",
|
||||||
|
"reach_something"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/혜성/만일/만일 '로켓' 에 닿았는가? 라면",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].statements[0][5].statements[0][0].type",
|
||||||
|
"$[0][2].statements[0][5].statements[0][0].params[1].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"change_variable",
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/혜성/[만일]의 세부 동작 1/'구조자' 에 '-1' 만큼 더하기",
|
||||||
|
"type": "list"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sortBlock": [
|
||||||
|
"when_run_button_click"
|
||||||
|
],
|
||||||
|
"sort": 113
|
||||||
|
},
|
||||||
|
"22-0": {
|
||||||
|
"ele": "$.messages[?(@.name=='탈출')]",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/로켓/신호/'탈출' 신호 만들기",
|
||||||
|
"type": "scene",
|
||||||
|
"sort": 122
|
||||||
|
},
|
||||||
|
"4-0": {
|
||||||
|
"type": "script",
|
||||||
|
"ele": "$.objects[?(@.name=~'로켓')].script",
|
||||||
|
"blocks": [
|
||||||
|
{
|
||||||
|
"ele": "$[0][0].type",
|
||||||
|
"answer": "when_run_button_click",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/로켓/시작/시작하기 버튼을 클릭했을 때"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][1].type",
|
||||||
|
"$[0][1].params[0].params[0]",
|
||||||
|
"$[0][1].params[1].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"locate_xy",
|
||||||
|
"10",
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/로켓/[시작]의 세부 동작 1/x: '10' y: '10' 위치로 이동하기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].type",
|
||||||
|
"$[0][2].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"set_scale_size",
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/로켓/[시작]의 세부 동작 2/크기를 '60' 으로 정하기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][3].type",
|
||||||
|
"$[0][3].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"repeat_inf",
|
||||||
|
null
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/로켓/반복/계속 반복하기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][3].statements[0][0].type",
|
||||||
|
"$[0][3].statements[0][0].params[0].type",
|
||||||
|
"$[0][3].statements[0][0].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"_if",
|
||||||
|
"is_press_some_key",
|
||||||
|
"37"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/로켓/만일 1/만일 '왼쪽 화살표' 키가 눌러져 있는가? 라면",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][3].statements[0][0].statements[0][0].type",
|
||||||
|
"$[0][3].statements[0][0].statements[0][0].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"move_x",
|
||||||
|
"-5"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/로켓/[만일 1]의 세부 동작/x 좌표를 '-5' 만큼 바꾸기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][3].statements[0][1].type",
|
||||||
|
"$[0][3].statements[0][1].params[0].type",
|
||||||
|
"$[0][3].statements[0][1].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"_if",
|
||||||
|
"is_press_some_key",
|
||||||
|
"39"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/로켓/만일 2/만일 '오른쪽 화살표' 키가 눌러져 있는가? 라면",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][3].statements[0][1].statements[0][0].type",
|
||||||
|
"$[0][3].statements[0][1].statements[0][0].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"move_x",
|
||||||
|
"5"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/로켓/[만일 2]의 세부 동작/x 좌표를 '5' 만큼 바꾸기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][3].statements[0][2].type",
|
||||||
|
"$[0][3].statements[0][2].params[0].type",
|
||||||
|
"$[0][3].statements[0][2].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"_if",
|
||||||
|
"is_press_some_key",
|
||||||
|
"38"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/로켓/만일 3/만일 '위쪽 화살표' 키가 눌러져 있는가? 라면",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][3].statements[0][2].statements[0][0].type",
|
||||||
|
"$[0][3].statements[0][2].statements[0][0].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"move_y",
|
||||||
|
"5"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/로켓/[만일 3]의 세부 동작/y 좌표를 '5' 만큼 바꾸기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][3].statements[0][3].type",
|
||||||
|
"$[0][3].statements[0][3].params[0].type",
|
||||||
|
"$[0][3].statements[0][3].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"_if",
|
||||||
|
"is_press_some_key",
|
||||||
|
"40"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/로켓/만일 4/만일 '아래쪽 화살표' 키가 눌러져 있는가? 라면",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][3].statements[0][3].statements[0][0].type",
|
||||||
|
"$[0][3].statements[0][3].statements[0][0].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"move_y",
|
||||||
|
"-5"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/로켓/[만일 4]의 세부 동작/y 좌표를 '-5' 만큼 바꾸기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][3].statements[0][4].type",
|
||||||
|
"$[0][3].statements[0][4].params[0].type",
|
||||||
|
"$[0][3].statements[0][4].params[0].params[0].type",
|
||||||
|
"$[0][3].statements[0][4].params[0].params[1]",
|
||||||
|
"$[0][3].statements[0][4].params[0].params[2].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"_if",
|
||||||
|
"boolean_basic_operator",
|
||||||
|
"get_variable",
|
||||||
|
"EQUAL",
|
||||||
|
"5"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/로켓/만일 5/만일 '구조자' 값 = '5' 이라면",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[0][3].statements[0][4].statements[0][0].type",
|
||||||
|
"answer": "hide",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/로켓/[만일 5]의 세부 동작 1/모양 숨기기"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[0][3].statements[0][4].statements[0][1].type",
|
||||||
|
"answer": "message_cast",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/로켓/[만일 5]의 세부 동작 2/'탈출' 신호 보내기"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sortBlock": [
|
||||||
|
"when_run_button_click"
|
||||||
|
],
|
||||||
|
"sort": 123
|
||||||
|
},
|
||||||
|
"5-0": {
|
||||||
|
"type": "script",
|
||||||
|
"ele": "$.objects[?(@.name=~'낙하산|열기구')].script",
|
||||||
|
"blocks": [
|
||||||
|
{
|
||||||
|
"ele": "$[0][0].type",
|
||||||
|
"answer": "when_run_button_click",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/낙하산/시작/시작하기 버튼을 클릭했을 때"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[0][1].type",
|
||||||
|
"answer": "hide",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/낙하산/[시작]의 세부 동작/모양 숨기기"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[1][0].type",
|
||||||
|
"answer": "when_message_cast",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/낙하산/신호/'탈출' 신호를 받았을 때"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[1][1].type",
|
||||||
|
"answer": "locate",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/낙하산/[신호]의 세부 동작 1/'로켓' 위치로 이동하기"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[1][2].type",
|
||||||
|
"answer": "show",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/낙하산/[신호]의 세부 동작 2/모양 보이기"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[1][3].type",
|
||||||
|
"$[1][3].params[0].params[0]",
|
||||||
|
"$[1][3].params[1]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"dialog",
|
||||||
|
"구출완료!",
|
||||||
|
"speak"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/낙하산/[신호]의 세부 동작 3/'구출완료!' 를 '말하기'",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[1][4].type",
|
||||||
|
"$[1][4].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"stop_object",
|
||||||
|
"other_objects"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/낙하산/[신호]의 세부 동작 4/'다른 오브젝트의' 코드 멈추기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[1][5].type",
|
||||||
|
"$[1][5].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"wait_second",
|
||||||
|
"2"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/낙하산/[신호]의 세부 동작 5/'2' 초 기다리기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[1][6].type",
|
||||||
|
"answer": "start_neighbor_scene",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/낙하산/[신호]의 세부 동작 6/'다음' 장면 시작하기"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sortBlock": [
|
||||||
|
"when_run_button_click",
|
||||||
|
"when_message_cast"
|
||||||
|
],
|
||||||
|
"sort": 139
|
||||||
|
},
|
||||||
|
"6-0": {
|
||||||
|
"type": "script",
|
||||||
|
"ele": "$.objects[?(@.name=~'공항')].script",
|
||||||
|
"blocks": [
|
||||||
|
{
|
||||||
|
"ele": "$[0][0].type",
|
||||||
|
"answer": "when_scene_start",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/공항/장면 2/장면이 시작되었을 때"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[0][1].type",
|
||||||
|
"answer": "hide_variable",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/공항/[장면 2]의 세부 동작 1/변수 '구조자' 숨기기"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].type",
|
||||||
|
"$[0][2].params[0].params[0]",
|
||||||
|
"$[0][2].params[1]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"dialog",
|
||||||
|
"미션 성공!",
|
||||||
|
"speak"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/공항/[장면 2]의 세부 동작 2/'미션 성공!' 을 '말하기'",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[1][0].type",
|
||||||
|
"answer": "when_object_click",
|
||||||
|
"point": 2,
|
||||||
|
"desc": "문제 3/공항/오브젝트/오브젝트를 클릭했을 때"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[1][1].type",
|
||||||
|
"$[1][1].params[0]",
|
||||||
|
"$[1][1].params[1].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"add_effect_amount",
|
||||||
|
"color",
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"point": 2,
|
||||||
|
"desc": "문제 3/공항/[오브젝트]의 세부 동작 1/'색깔' 효과를 '35' 만큼 주기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[1][2].type",
|
||||||
|
"$[1][2].params[0].params[0]",
|
||||||
|
"$[1][2].params[1]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"dialog",
|
||||||
|
"처음부터 다시 실행합니다!",
|
||||||
|
"speak"
|
||||||
|
],
|
||||||
|
"point": 2,
|
||||||
|
"desc": "문제 3/공항/[오브젝트]의 세부 동작 2/'처음부터 다시 실행합니다!' 를 '말하기'",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[1][3].type",
|
||||||
|
"$[1][3].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"wait_second",
|
||||||
|
"2"
|
||||||
|
],
|
||||||
|
"point": 2,
|
||||||
|
"desc": "문제 3/공항/[오브젝트]의 세부 동작 3/'2' 초 기다리기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[1][4].type",
|
||||||
|
"answer": "restart_project",
|
||||||
|
"point": 2,
|
||||||
|
"desc": "문제 3/공항/[오브젝트]의 세부 동작 4/처음부터 다시 실행하기"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sortBlock": [
|
||||||
|
"when_scene_start",
|
||||||
|
"when_object_click"
|
||||||
|
],
|
||||||
|
"sort": 148
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,32 +2,37 @@
|
|||||||
"1-1": {
|
"1-1": {
|
||||||
"type": "scene",
|
"type": "scene",
|
||||||
"ele": "$..objects[?(@.name=='실험실')]",
|
"ele": "$..objects[?(@.name=='실험실')]",
|
||||||
"points": 2,
|
"point": 2,
|
||||||
"desc": "문제 1/교실 뒤(3)/[배경] 이름 설정/이름을 '실험실'으로 변경하기"
|
"desc": "문제 1/교실 뒤(3)/[배경] 이름 설정/이름을 '실험실'으로 변경하기",
|
||||||
|
"sort": 11
|
||||||
},
|
},
|
||||||
"1-2": {
|
"1-3": {
|
||||||
"type": "scene",
|
"type": "scene",
|
||||||
"ele": "$..objects[?(@.name=='새로운 약')]",
|
"ele": "$..objects[?(@.name=='새로운 약')]",
|
||||||
"points": 2,
|
"point": 2,
|
||||||
"desc": "문제 1/물약(빨강)/[개체] 이름 설정 1/이름을 '새로운 약'으로 변경하기"
|
"desc": "문제 1/물약(빨강)/[개체] 이름 설정 1/이름을 '새로운 약'으로 변경하기",
|
||||||
|
"sort": 13
|
||||||
},
|
},
|
||||||
"1-4": {
|
"1-4": {
|
||||||
"type": "scene",
|
"type": "scene",
|
||||||
"ele": "$..objects[?(@.name=='불')]",
|
"ele": "$..objects[?(@.name=='불')]",
|
||||||
"points": 2,
|
"point": 2,
|
||||||
"desc": "문제 1/불(2)/[개체] 이름 설정 2/이름을 '불'로 변경하기"
|
"desc": "문제 1/불(2)/[개체] 이름 설정 2/이름을 '불'로 변경하기",
|
||||||
|
"sort": 14
|
||||||
},
|
},
|
||||||
"1-5": {
|
"1-5": {
|
||||||
"type": "scene",
|
"type": "scene",
|
||||||
"ele": "$..objects[?(@.name=='마법사')]",
|
"ele": "$..objects[?(@.name=='마법사')]",
|
||||||
"points": 2,
|
"point": 2,
|
||||||
"desc": "문제 1/꼬마 마법사/[개체] 이름 설정 3/이름을 '마법사'로 변경하기"
|
"desc": "문제 1/꼬마 마법사/[개체] 이름 설정 3/이름을 '마법사'로 변경하기",
|
||||||
|
"sort": 15
|
||||||
},
|
},
|
||||||
"1-6": {
|
"1-6": {
|
||||||
"type": "scene",
|
"type": "scene",
|
||||||
"ele": "$..objects[?(@.name=='마법의 약')]",
|
"ele": "$..objects[?(@.name=='마법의 약')]",
|
||||||
"points": 2,
|
"point": 2,
|
||||||
"desc": "문제 1/마법의 약/[개체] 이름 설정 4/이름 변경 없음"
|
"desc": "문제 1/마법의 약/[개체] 이름 설정 4/이름 변경 없음",
|
||||||
|
"sort": 16
|
||||||
},
|
},
|
||||||
"2-0": {
|
"2-0": {
|
||||||
"type": "script",
|
"type": "script",
|
||||||
@@ -36,7 +41,7 @@
|
|||||||
{
|
{
|
||||||
"ele": "$[0][0].type",
|
"ele": "$[0][0].type",
|
||||||
"answer": "when_run_button_click",
|
"answer": "when_run_button_click",
|
||||||
"points": 2.43,
|
"point": 2.43,
|
||||||
"desc": "문제 2/새로운 약/시작/시작하기 버튼을 클릭했을 때"
|
"desc": "문제 2/새로운 약/시작/시작하기 버튼을 클릭했을 때"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -45,37 +50,59 @@
|
|||||||
"$[0][1].params[0].params[0]",
|
"$[0][1].params[0].params[0]",
|
||||||
"$[0][1].params[1].params[0]"
|
"$[0][1].params[1].params[0]"
|
||||||
],
|
],
|
||||||
"answer": ["locate_xy", "50", "5"],
|
"answer": [
|
||||||
"points": 2.43,
|
"locate_xy",
|
||||||
|
"50",
|
||||||
|
"5"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/새로운 약/[시작]의 세부 동작 1/x: '50' y: '5' 위치로 이동하기",
|
"desc": "문제 2/새로운 약/[시작]의 세부 동작 1/x: '50' y: '5' 위치로 이동하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[0][2].params[0].params[0]",
|
"ele": [
|
||||||
"answer": "60",
|
"$[0][2].type",
|
||||||
"points": 2.43,
|
"$[0][2].params[0].params[0]"
|
||||||
"desc": "문제 2/새로운 약/[시작]의 세부 동작 2/크기를 '60' 으로 정하기"
|
],
|
||||||
|
"answer": [
|
||||||
|
"set_scale_size",
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
|
"desc": "문제 2/새로운 약/[시작]의 세부 동작 2/크기를 '60' 으로 정하기",
|
||||||
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[1][0].type",
|
"ele": "$[1][0].type",
|
||||||
"answer": "when_object_click",
|
"answer": "when_object_click",
|
||||||
"points": 2.43,
|
"point": 2.43,
|
||||||
"desc": "문제 2/새로운 약/오브젝트/오브젝트를 클릭했을 때"
|
"desc": "문제 2/새로운 약/오브젝트/오브젝트를 클릭했을 때"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": ["$[1][1].type", "$[1][1].params[0]"],
|
"ele": [
|
||||||
"answer": ["repeat_inf", null],
|
"$[1][1].type",
|
||||||
"points": 2.43,
|
"$[1][1].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"repeat_inf",
|
||||||
|
null
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/새로운 약/반복/계속 반복하기",
|
"desc": "문제 2/새로운 약/반복/계속 반복하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[1][1].statements[0][0].type",
|
"ele": "$[1][1].statements[0][0].type",
|
||||||
"answer": "locate",
|
"answer": "locate",
|
||||||
"points": 2.43,
|
"point": 2.43,
|
||||||
"desc": "문제 2/새로운 약/[반복]의 세부 동작/'마우스 포인터' 위치로 이동하기"
|
"desc": "문제 2/새로운 약/[반복]의 세부 동작/'마우스 포인터' 위치로 이동하기"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"sortBlock": [
|
||||||
|
"when_run_button_click",
|
||||||
|
"when_object_click"
|
||||||
|
],
|
||||||
|
"sort": 102
|
||||||
},
|
},
|
||||||
"3-0": {
|
"3-0": {
|
||||||
"type": "script",
|
"type": "script",
|
||||||
@@ -84,7 +111,7 @@
|
|||||||
{
|
{
|
||||||
"ele": "$[0][0].type",
|
"ele": "$[0][0].type",
|
||||||
"answer": "when_run_button_click",
|
"answer": "when_run_button_click",
|
||||||
"points": 2.43,
|
"point": 2.43,
|
||||||
"desc": "문제 2/불/시작/시작하기 버튼을 클릭했을 때"
|
"desc": "문제 2/불/시작/시작하기 버튼을 클릭했을 때"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -93,21 +120,38 @@
|
|||||||
"$[0][1].params[0].params[0]",
|
"$[0][1].params[0].params[0]",
|
||||||
"$[0][1].params[1].params[0]"
|
"$[0][1].params[1].params[0]"
|
||||||
],
|
],
|
||||||
"answer": ["locate_xy", "-150", "-30"],
|
"answer": [
|
||||||
"points": 2.43,
|
"locate_xy",
|
||||||
|
"-150",
|
||||||
|
"-30"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/불/[시작]의 세부 동작 1/x: '-150' y: '-30' 위치로 이동하기",
|
"desc": "문제 2/불/[시작]의 세부 동작 1/x: '-150' y: '-30' 위치로 이동하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[0][2].params[0].params[0]",
|
"ele": [
|
||||||
"answer": "90",
|
"$[0][2].type",
|
||||||
"points": 2.43,
|
"$[0][2].params[0].params[0]"
|
||||||
"desc": "문제 2/불/[시작]의 세부 동작 2/크기를 '90' 으로 정하기"
|
],
|
||||||
|
"answer": [
|
||||||
|
"set_scale_size",
|
||||||
|
"90"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
|
"desc": "문제 2/불/[시작]의 세부 동작 2/크기를 '90' 으로 정하기",
|
||||||
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": ["$[0][3].type", "$[0][3].params[0]"],
|
"ele": [
|
||||||
"answer": ["repeat_inf", null],
|
"$[0][3].type",
|
||||||
"points": 2.43,
|
"$[0][3].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"repeat_inf",
|
||||||
|
null
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/불/반복/계속 반복하기",
|
"desc": "문제 2/불/반복/계속 반복하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
@@ -119,15 +163,21 @@
|
|||||||
"$[0][3].statements[0][0].params[1].params[1].params[0]",
|
"$[0][3].statements[0][0].params[1].params[1].params[0]",
|
||||||
"$[0][3].statements[0][0].params[1].params[3].params[0]"
|
"$[0][3].statements[0][0].params[1].params[3].params[0]"
|
||||||
],
|
],
|
||||||
"answer": ["locate_xy", "-150", "0", "-10", "40"],
|
"answer": [
|
||||||
"points": 2.43,
|
"locate_xy",
|
||||||
|
"-150",
|
||||||
|
"0",
|
||||||
|
"-10",
|
||||||
|
"40"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/불/[반복]의 세부 동작 1/x: '-150 부터 0 사이의 무작위 수' y: '-10 부터 40 사이의 무작위 수' 위치로 이동하기",
|
"desc": "문제 2/불/[반복]의 세부 동작 1/x: '-150 부터 0 사이의 무작위 수' y: '-10 부터 40 사이의 무작위 수' 위치로 이동하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[0][3].statements[0][1].type",
|
"ele": "$[0][3].statements[0][1].type",
|
||||||
"answer": "hide",
|
"answer": "hide",
|
||||||
"points": 2.43,
|
"point": 2.43,
|
||||||
"desc": "문제 2/불/[반복]의 세부 동작 2/모양 숨기기"
|
"desc": "문제 2/불/[반복]의 세부 동작 2/모양 숨기기"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -137,15 +187,20 @@
|
|||||||
"$[0][3].statements[0][2].params[0].params[1].params[0]",
|
"$[0][3].statements[0][2].params[0].params[1].params[0]",
|
||||||
"$[0][3].statements[0][2].params[0].params[3].params[0]"
|
"$[0][3].statements[0][2].params[0].params[3].params[0]"
|
||||||
],
|
],
|
||||||
"answer": ["wait_second", "calc_rand", "1", "2"],
|
"answer": [
|
||||||
"points": 2.43,
|
"wait_second",
|
||||||
|
"calc_rand",
|
||||||
|
"1",
|
||||||
|
"2"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/불/[반복]의 세부 동작 3/'1 부터 2 사이의 무작위 수' 초 기다리기",
|
"desc": "문제 2/불/[반복]의 세부 동작 3/'1 부터 2 사이의 무작위 수' 초 기다리기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[0][3].statements[0][3].type",
|
"ele": "$[0][3].statements[0][3].type",
|
||||||
"answer": "show",
|
"answer": "show",
|
||||||
"points": 2.43,
|
"point": 2.43,
|
||||||
"desc": "문제 2/불/[반복]의 세부 동작 4/모양 보이기"
|
"desc": "문제 2/불/[반복]의 세부 동작 4/모양 보이기"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -153,8 +208,11 @@
|
|||||||
"$[0][3].statements[0][4].type",
|
"$[0][3].statements[0][4].type",
|
||||||
"$[0][3].statements[0][4].params[0].params[0]"
|
"$[0][3].statements[0][4].params[0].params[0]"
|
||||||
],
|
],
|
||||||
"answer": ["wait_second", "0.5"],
|
"answer": [
|
||||||
"points": 2.43,
|
"wait_second",
|
||||||
|
"0.5"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/불/[반복]의 세부 동작 5/'0.5' 초 기다리기",
|
"desc": "문제 2/불/[반복]의 세부 동작 5/'0.5' 초 기다리기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
@@ -163,16 +221,26 @@
|
|||||||
"$[0][3].statements[0][5].type",
|
"$[0][3].statements[0][5].type",
|
||||||
"$[0][3].statements[0][5].params[0].type"
|
"$[0][3].statements[0][5].params[0].type"
|
||||||
],
|
],
|
||||||
"answer": ["_if", "reach_something"],
|
"answer": [
|
||||||
"points": 2.43,
|
"_if",
|
||||||
|
"reach_something"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/불/만일/만일 '새로운 약' 에 닿았는가? 라면",
|
"desc": "문제 2/불/만일/만일 '새로운 약' 에 닿았는가? 라면",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[0][3].statements[0][5].statements[0][0].params[0].params[0]",
|
"ele": [
|
||||||
"answer": "300",
|
"$[0][3].statements[0][5].statements[0][0].type",
|
||||||
"points": 2.43,
|
"$[0][3].statements[0][5].statements[0][0].params[0].params[0]"
|
||||||
"desc": "문제 2/불/[만일]의 세부 동작 1/크기를 '300' 으로 정하기"
|
],
|
||||||
|
"answer": [
|
||||||
|
"set_scale_size",
|
||||||
|
"300"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
|
"desc": "문제 2/불/[만일]의 세부 동작 1/크기를 '300' 으로 정하기",
|
||||||
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": [
|
"ele": [
|
||||||
@@ -180,8 +248,12 @@
|
|||||||
"$[0][3].statements[0][5].statements[0][1].params[0].params[0]",
|
"$[0][3].statements[0][5].statements[0][1].params[0].params[0]",
|
||||||
"$[0][3].statements[0][5].statements[0][1].params[1]"
|
"$[0][3].statements[0][5].statements[0][1].params[1]"
|
||||||
],
|
],
|
||||||
"answer": ["dialog", "마법 실패", "speak"],
|
"answer": [
|
||||||
"points": 2.43,
|
"dialog",
|
||||||
|
"마법 실패",
|
||||||
|
"speak"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/불/[만일]의 세부 동작 2/'마법 실패' 를 '말하기'",
|
"desc": "문제 2/불/[만일]의 세부 동작 2/'마법 실패' 를 '말하기'",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
@@ -190,12 +262,19 @@
|
|||||||
"$[0][3].statements[0][5].statements[0][2].type",
|
"$[0][3].statements[0][5].statements[0][2].type",
|
||||||
"$[0][3].statements[0][5].statements[0][2].params[0]"
|
"$[0][3].statements[0][5].statements[0][2].params[0]"
|
||||||
],
|
],
|
||||||
"answer": ["stop_object", "all"],
|
"answer": [
|
||||||
"points": 2.43,
|
"stop_object",
|
||||||
|
"all"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/불/[만일]의 세부 동작 3/'모든' 코드 멈추기",
|
"desc": "문제 2/불/[만일]의 세부 동작 3/'모든' 코드 멈추기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"sortBlock": [
|
||||||
|
"when_run_button_click"
|
||||||
|
],
|
||||||
|
"sort": 108
|
||||||
},
|
},
|
||||||
"4-0": {
|
"4-0": {
|
||||||
"type": "script",
|
"type": "script",
|
||||||
@@ -204,7 +283,7 @@
|
|||||||
{
|
{
|
||||||
"ele": "$[0][0].type",
|
"ele": "$[0][0].type",
|
||||||
"answer": "when_run_button_click",
|
"answer": "when_run_button_click",
|
||||||
"points": 2.43,
|
"point": 2.43,
|
||||||
"desc": "문제 2/마법사/시작/시작하기 버튼을 클릭했을 때"
|
"desc": "문제 2/마법사/시작/시작하기 버튼을 클릭했을 때"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -213,24 +292,42 @@
|
|||||||
"$[0][1].params[0].params[0]",
|
"$[0][1].params[0].params[0]",
|
||||||
"$[0][1].params[1].params[0]"
|
"$[0][1].params[1].params[0]"
|
||||||
],
|
],
|
||||||
"answer": ["locate_xy", "135", "-20"],
|
"answer": [
|
||||||
"points": 2.43,
|
"locate_xy",
|
||||||
|
"135",
|
||||||
|
"-20"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/마법사/[시작]의 세부 동작 1/x: '135' y: '-20' 위치로 이동하기",
|
"desc": "문제 2/마법사/[시작]의 세부 동작 1/x: '135' y: '-20' 위치로 이동하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[0][2].params[0].params[0]",
|
"ele": [
|
||||||
"answer": "180",
|
"$[0][2].type",
|
||||||
"points": 2.43,
|
"$[0][2].params[0].params[0]"
|
||||||
"desc": "문제 2/마법사/[시작]의 세부 동작 2/크기를 '180' 으로 정하기"
|
],
|
||||||
|
"answer": [
|
||||||
|
"set_scale_size",
|
||||||
|
"180"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
|
"desc": "문제 2/마법사/[시작]의 세부 동작 2/크기를 '180' 으로 정하기",
|
||||||
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[0][3].params[*].params",
|
"ele": "$[0][3].params[*].params",
|
||||||
"answer": ["마법 실험을 해봐야지!", "2"],
|
"answer": [
|
||||||
"points": 2.43,
|
"마법 실험을 해봐야지!",
|
||||||
|
"2"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/마법사/[시작]의 세부 동작 3/'마법 실험을 해봐야지!' 를 '2' 초 동안 '말하기'"
|
"desc": "문제 2/마법사/[시작]의 세부 동작 3/'마법 실험을 해봐야지!' 를 '2' 초 동안 '말하기'"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"sortBlock": [
|
||||||
|
"when_run_button_click"
|
||||||
|
],
|
||||||
|
"sort": 121
|
||||||
},
|
},
|
||||||
"5-0": {
|
"5-0": {
|
||||||
"type": "script",
|
"type": "script",
|
||||||
@@ -239,7 +336,7 @@
|
|||||||
{
|
{
|
||||||
"ele": "$[0][0].type",
|
"ele": "$[0][0].type",
|
||||||
"answer": "when_run_button_click",
|
"answer": "when_run_button_click",
|
||||||
"points": 2.43,
|
"point": 2.43,
|
||||||
"desc": "문제 2/마법의 약/시작/시작하기 버튼을 클릭했을 때"
|
"desc": "문제 2/마법의 약/시작/시작하기 버튼을 클릭했을 때"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -248,28 +345,45 @@
|
|||||||
"$[0][1].params[0].params[0]",
|
"$[0][1].params[0].params[0]",
|
||||||
"$[0][1].params[1].params[0]"
|
"$[0][1].params[1].params[0]"
|
||||||
],
|
],
|
||||||
"answer": ["locate_xy", "-40", "10"],
|
"answer": [
|
||||||
"points": 2.43,
|
"locate_xy",
|
||||||
|
"-40",
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/마법의 약/[시작]의 세부 동작 1/x: '-40' y: '10' 위치로 이동하기",
|
"desc": "문제 2/마법의 약/[시작]의 세부 동작 1/x: '-40' y: '10' 위치로 이동하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[0][2].params[0].params[0]",
|
"ele": [
|
||||||
"answer": "50",
|
"$[0][2].type",
|
||||||
"points": 2.43,
|
"$[0][2].params[0].params[0]"
|
||||||
"desc": "문제 2/마법의 약/[시작]의 세부 동작 2/크기를 '50' 으로 정하기"
|
],
|
||||||
|
"answer": [
|
||||||
|
"set_scale_size",
|
||||||
|
"50"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
|
"desc": "문제 2/마법의 약/[시작]의 세부 동작 2/크기를 '50' 으로 정하기",
|
||||||
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": ["$[0][3].type", "$[0][3].params[0]"],
|
"ele": [
|
||||||
"answer": ["repeat_inf", null],
|
"$[0][3].type",
|
||||||
"points": 2.43,
|
"$[0][3].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"repeat_inf",
|
||||||
|
null
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/마법의 약/반복/계속 반복하기",
|
"desc": "문제 2/마법의 약/반복/계속 반복하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[0][3].statements[0][0].type",
|
"ele": "$[0][3].statements[0][0].type",
|
||||||
"answer": "hide",
|
"answer": "hide",
|
||||||
"points": 2.43,
|
"point": 2.43,
|
||||||
"desc": "문제 2/마법의 약/[반복]의 세부 동작 1/모양 숨기기"
|
"desc": "문제 2/마법의 약/[반복]의 세부 동작 1/모양 숨기기"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -278,8 +392,12 @@
|
|||||||
"$[0][3].statements[0][1].params[0].params[1].params[0]",
|
"$[0][3].statements[0][1].params[0].params[1].params[0]",
|
||||||
"$[0][3].statements[0][1].params[0].params[3].params[0]"
|
"$[0][3].statements[0][1].params[0].params[3].params[0]"
|
||||||
],
|
],
|
||||||
"answer": ["locate_x", "-160", "60"],
|
"answer": [
|
||||||
"points": 2.43,
|
"locate_x",
|
||||||
|
"-160",
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/마법의 약/[반복]의 세부 동작 2/x: '-160 부터 60 사이의 무작위 수' 위치로 이동하기",
|
"desc": "문제 2/마법의 약/[반복]의 세부 동작 2/x: '-160 부터 60 사이의 무작위 수' 위치로 이동하기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
@@ -288,15 +406,18 @@
|
|||||||
"$[0][3].statements[0][2].type",
|
"$[0][3].statements[0][2].type",
|
||||||
"$[0][3].statements[0][2].params[0].params[0]"
|
"$[0][3].statements[0][2].params[0].params[0]"
|
||||||
],
|
],
|
||||||
"answer": ["wait_second", "2"],
|
"answer": [
|
||||||
"points": 2.43,
|
"wait_second",
|
||||||
|
"2"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/마법의 약/[반복]의 세부 동작 3/ '2' 초 기다리기",
|
"desc": "문제 2/마법의 약/[반복]의 세부 동작 3/ '2' 초 기다리기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[0][3].statements[0][3].type",
|
"ele": "$[0][3].statements[0][3].type",
|
||||||
"answer": "show",
|
"answer": "show",
|
||||||
"points": 2.43,
|
"point": 2.43,
|
||||||
"desc": "문제 2/마법의 약/[반복]의 세부 동작 4/모양 보이기"
|
"desc": "문제 2/마법의 약/[반복]의 세부 동작 4/모양 보이기"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -304,8 +425,11 @@
|
|||||||
"$[0][3].statements[0][4].type",
|
"$[0][3].statements[0][4].type",
|
||||||
"$[0][3].statements[0][4].params[0].params[0]"
|
"$[0][3].statements[0][4].params[0].params[0]"
|
||||||
],
|
],
|
||||||
"answer": ["wait_second", "0.5"],
|
"answer": [
|
||||||
"points": 2.43,
|
"wait_second",
|
||||||
|
"0.5"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/마법의 약/[반복]의 세부 동작 5/'0.5' 초 기다리기",
|
"desc": "문제 2/마법의 약/[반복]의 세부 동작 5/'0.5' 초 기다리기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
@@ -314,16 +438,26 @@
|
|||||||
"$[0][3].statements[0][5].type",
|
"$[0][3].statements[0][5].type",
|
||||||
"$[0][3].statements[0][5].params[0].type"
|
"$[0][3].statements[0][5].params[0].type"
|
||||||
],
|
],
|
||||||
"answer": ["_if", "reach_something"],
|
"answer": [
|
||||||
"points": 2.43,
|
"_if",
|
||||||
|
"reach_something"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/마법의 약/만일/만일 '새로운 약' 에 닿았는가? 라면",
|
"desc": "문제 2/마법의 약/만일/만일 '새로운 약' 에 닿았는가? 라면",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": "$[0][3].statements[0][5].statements[0][0].params[0].params[0]",
|
"ele": [
|
||||||
"answer": "100",
|
"$[0][3].statements[0][5].statements[0][0].type",
|
||||||
"points": 2.43,
|
"$[0][3].statements[0][5].statements[0][0].params[0].params[0]"
|
||||||
"desc": "문제 2/마법의 약/[만일]의 세부 동작 1/크기를 '100' 으로 정하기"
|
],
|
||||||
|
"answer": [
|
||||||
|
"set_scale_size",
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
|
"desc": "문제 2/마법의 약/[만일]의 세부 동작 1/크기를 '100' 으로 정하기",
|
||||||
|
"type": "list"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ele": [
|
"ele": [
|
||||||
@@ -331,8 +465,12 @@
|
|||||||
"$[0][3].statements[0][5].statements[0][1].params[0]",
|
"$[0][3].statements[0][5].statements[0][1].params[0]",
|
||||||
"$[0][3].statements[0][5].statements[0][1].params[1].params[0]"
|
"$[0][3].statements[0][5].statements[0][1].params[1].params[0]"
|
||||||
],
|
],
|
||||||
"answer": ["add_effect_amount", "color", "70"],
|
"answer": [
|
||||||
"points": 2.43,
|
"add_effect_amount",
|
||||||
|
"color",
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/마법의 약/[만일]의 세부 동작 2/'색깔' 효과를 '70' 만큼 주기",
|
"desc": "문제 2/마법의 약/[만일]의 세부 동작 2/'색깔' 효과를 '70' 만큼 주기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
@@ -342,8 +480,12 @@
|
|||||||
"$[0][3].statements[0][5].statements[0][2].params[0].params[0]",
|
"$[0][3].statements[0][5].statements[0][2].params[0].params[0]",
|
||||||
"$[0][3].statements[0][5].statements[0][2].params[1]"
|
"$[0][3].statements[0][5].statements[0][2].params[1]"
|
||||||
],
|
],
|
||||||
"answer": ["dialog", "마법 성공", "speak"],
|
"answer": [
|
||||||
"points": 2.43,
|
"dialog",
|
||||||
|
"마법 성공",
|
||||||
|
"speak"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/마법의 약/[만일]의 세부 동작 3/'마법 성공' 을 '말하기'",
|
"desc": "문제 2/마법의 약/[만일]의 세부 동작 3/'마법 성공' 을 '말하기'",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
},
|
},
|
||||||
@@ -352,11 +494,18 @@
|
|||||||
"$[0][3].statements[0][5].statements[0][3].type",
|
"$[0][3].statements[0][5].statements[0][3].type",
|
||||||
"$[0][3].statements[0][5].statements[0][3].params[0]"
|
"$[0][3].statements[0][5].statements[0][3].params[0]"
|
||||||
],
|
],
|
||||||
"answer": ["stop_object", "all"],
|
"answer": [
|
||||||
"points": 2.43,
|
"stop_object",
|
||||||
|
"all"
|
||||||
|
],
|
||||||
|
"point": 2.43,
|
||||||
"desc": "문제 2/마법의 약/[만일]의 세부 동작 4/'모든' 코드 멈추기",
|
"desc": "문제 2/마법의 약/[만일]의 세부 동작 4/'모든' 코드 멈추기",
|
||||||
"type": "list"
|
"type": "list"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"sortBlock": [
|
||||||
|
"when_run_button_click"
|
||||||
|
],
|
||||||
|
"sort": 125
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
697
correct/2602_CAS_2_A.json
Normal file
697
correct/2602_CAS_2_A.json
Normal file
@@ -0,0 +1,697 @@
|
|||||||
|
{
|
||||||
|
"1-1": {
|
||||||
|
"type": "scene",
|
||||||
|
"ele": "$..objects[?(@.name=='우주')]",
|
||||||
|
"point": 1.7,
|
||||||
|
"desc": "문제 1/장면 1/[배경] 이름 설정 1/이름을 '우주'로 변경하기",
|
||||||
|
"sort": 11
|
||||||
|
},
|
||||||
|
"1-2": {
|
||||||
|
"type": "scene",
|
||||||
|
"ele": "$.[objects,scenes][?(@.name=='장면 2')]",
|
||||||
|
"point": 1.7,
|
||||||
|
"desc": "문제 1/장면 2/[배경] 이름 설정 2/이름 변경 없음",
|
||||||
|
"sort": 12
|
||||||
|
},
|
||||||
|
"1-3": {
|
||||||
|
"type": "scene",
|
||||||
|
"ele": "$..objects[?(@.name=='우주비행사')]",
|
||||||
|
"point": 1.7,
|
||||||
|
"desc": "문제 1/우주인(4)/[개체] 이름 설정 1/이름을 '우주비행사'로 변경하기",
|
||||||
|
"sort": 13
|
||||||
|
},
|
||||||
|
"1-4": {
|
||||||
|
"type": "scene",
|
||||||
|
"ele": "$..objects[?(@.name=='별똥별')]",
|
||||||
|
"point": 1.7,
|
||||||
|
"desc": "문제 1/별똥별(1)/[개체] 이름 설정 2/이름을 '별똥별'으로 변경하기",
|
||||||
|
"sort": 14
|
||||||
|
},
|
||||||
|
"1-5": {
|
||||||
|
"type": "scene",
|
||||||
|
"ele": "$..objects[?(@.name=='우주왕복선')]",
|
||||||
|
"point": 1.7,
|
||||||
|
"desc": "문제 1/로켓/[개체] 이름 설정 3/이름을 ‘우주왕복선’으로 변경하기",
|
||||||
|
"sort": 15
|
||||||
|
},
|
||||||
|
"1-6": {
|
||||||
|
"type": "scene",
|
||||||
|
"ele": "$..objects[?(@.name=='낙하산')]",
|
||||||
|
"point": 1.7,
|
||||||
|
"desc": "문제 1/열기구(2)/[개체] 이름 설정 4/이름을 '낙하산'으로 변경하기",
|
||||||
|
"sort": 16
|
||||||
|
},
|
||||||
|
"1-0": {
|
||||||
|
"ele": "$..variables[?(@.name=='구조자')]",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/변수/'구조자' 변수 만들기 (변수 기본값은 '0', '모든 오브젝트에 사용' 설정)",
|
||||||
|
"type": "scene",
|
||||||
|
"sort": 101
|
||||||
|
},
|
||||||
|
"2-0": {
|
||||||
|
"type": "script",
|
||||||
|
"ele": "$.objects[?(@.name=~'우주비행사|우주인')].script",
|
||||||
|
"blocks": [
|
||||||
|
{
|
||||||
|
"ele": "$[0][0].type",
|
||||||
|
"answer": "when_run_button_click",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/시작/시작하기 버튼을 클릭했을 때"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][1].type",
|
||||||
|
"$[0][1].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"set_scale_size",
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/[시작]의 세부 동작 1/크기를 '70' 으로 정하기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].type",
|
||||||
|
"$[0][2].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"repeat_inf",
|
||||||
|
null
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/반복/계속 반복하기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[0][2].statements[0][0].type",
|
||||||
|
"answer": "hide",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/[반복]의 세부 동작 1/모양 숨기기"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].statements[0][1].type",
|
||||||
|
"$[0][2].statements[0][1].params[0].params[1].params[0]",
|
||||||
|
"$[0][2].statements[0][1].params[0].params[3].params[0]",
|
||||||
|
"$[0][2].statements[0][1].params[1].params[1].params[0]",
|
||||||
|
"$[0][2].statements[0][1].params[1].params[3].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"locate_xy",
|
||||||
|
"-210",
|
||||||
|
"210",
|
||||||
|
"-120",
|
||||||
|
"120"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/[반복]의 세부 동작 2/x: '-210 부터 210 사이의 무작위 수' y: '-120 부터 120 사이의 무작위 수' 위치로 이동하기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].statements[0][2].type",
|
||||||
|
"$[0][2].statements[0][2].params[0].type",
|
||||||
|
"$[0][2].statements[0][2].params[0].params[1].params[0]",
|
||||||
|
"$[0][2].statements[0][2].params[0].params[3].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"wait_second",
|
||||||
|
"calc_rand",
|
||||||
|
"0",
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/[반복]의 세부 동작 3/'0 부터 3 사이의 무작위 수' 초 기다리기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[0][2].statements[0][3].type",
|
||||||
|
"answer": "show",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/[반복]의 세부 동작 4/모양 보이기"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].statements[0][4].type",
|
||||||
|
"$[0][2].statements[0][4].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"wait_second",
|
||||||
|
"1.5"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/[반복]의 세부 동작 5/'1.5' 초 기다리기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].statements[0][5].type",
|
||||||
|
"$[0][2].statements[0][5].params[0].type"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"_if",
|
||||||
|
"reach_something"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/만일/만일 '우주왕복선' 에 닿았는가? 라면",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].statements[0][5].statements[0][0].type",
|
||||||
|
"$[0][2].statements[0][5].statements[0][0].params[1].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"change_variable",
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주비행사/[만일]의 세부 동작/'구조자' 에 '1' 만큼 더하기",
|
||||||
|
"type": "list"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sortBlock": [
|
||||||
|
"when_run_button_click"
|
||||||
|
],
|
||||||
|
"sort": 102
|
||||||
|
},
|
||||||
|
"3-0": {
|
||||||
|
"type": "script",
|
||||||
|
"ele": "$.objects[?(@.name=~'별똥별')].script",
|
||||||
|
"blocks": [
|
||||||
|
{
|
||||||
|
"ele": "$[0][0].type",
|
||||||
|
"answer": "when_run_button_click",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/별똥별/시작/시작하기 버튼을 클릭했을 때"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][1].type",
|
||||||
|
"$[0][1].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"set_scale_size",
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/별똥별/[시작]의 세부 동작 1/크기를 '60' 으로 정하기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].type",
|
||||||
|
"$[0][2].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"repeat_inf",
|
||||||
|
null
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/별똥별/반복/계속 반복하기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[0][2].statements[0][0].type",
|
||||||
|
"answer": "hide",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/별똥별/[반복]의 세부 동작 1/모양 숨기기"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].statements[0][1].type",
|
||||||
|
"$[0][2].statements[0][1].params[0].params[1].params[0]",
|
||||||
|
"$[0][2].statements[0][1].params[0].params[3].params[0]",
|
||||||
|
"$[0][2].statements[0][1].params[1].params[1].params[0]",
|
||||||
|
"$[0][2].statements[0][1].params[1].params[3].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"locate_xy",
|
||||||
|
"-210",
|
||||||
|
"210",
|
||||||
|
"-120",
|
||||||
|
"120"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/별똥별/[반복]의 세부 동작 2/x: '-210 부터 210 사이의 무작위 수' y: '-120 부터 120 사이의 무작위 수' 위치로 이동하기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].statements[0][2].type",
|
||||||
|
"$[0][2].statements[0][2].params[0].type",
|
||||||
|
"$[0][2].statements[0][2].params[0].params[1].params[0]",
|
||||||
|
"$[0][2].statements[0][2].params[0].params[3].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"wait_second",
|
||||||
|
"calc_rand",
|
||||||
|
"0",
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/별똥별/[반복]의 세부 동작 3/'0 부터 3 사이의 무작위 수' 초 기다리기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[0][2].statements[0][3].type",
|
||||||
|
"answer": "show",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/별똥별/[반복]의 세부 동작 4/모양 보이기"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].statements[0][4].type",
|
||||||
|
"$[0][2].statements[0][4].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"wait_second",
|
||||||
|
"1.5"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/별똥별/[반복]의 세부 동작 4/'1.5' 초 기다리기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].statements[0][5].type",
|
||||||
|
"$[0][2].statements[0][5].params[0].type"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"_if",
|
||||||
|
"reach_something"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/별똥별/만일/만일 '우주왕복선' 에 닿았는가? 라면",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].statements[0][5].statements[0][0].type",
|
||||||
|
"$[0][2].statements[0][5].statements[0][0].params[1].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"change_variable",
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/별똥별/[만일]의 세부 동작 1/'구조자' 에 '-1' 만큼 더하기",
|
||||||
|
"type": "list"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sortBlock": [
|
||||||
|
"when_run_button_click"
|
||||||
|
],
|
||||||
|
"sort": 113
|
||||||
|
},
|
||||||
|
"22-0": {
|
||||||
|
"ele": "$.messages[?(@.name=='탈출')]",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주왕복선/신호/'탈출' 신호 만들기",
|
||||||
|
"type": "scene",
|
||||||
|
"sort": 122
|
||||||
|
},
|
||||||
|
"4-0": {
|
||||||
|
"type": "script",
|
||||||
|
"ele": "$.objects[?(@.name=~'우주왕복선')].script",
|
||||||
|
"blocks": [
|
||||||
|
{
|
||||||
|
"ele": "$[0][0].type",
|
||||||
|
"answer": "when_run_button_click",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주왕복선/시작/시작하기 버튼을 클릭했을 때"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][1].type",
|
||||||
|
"$[0][1].params[0].params[0]",
|
||||||
|
"$[0][1].params[1].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"locate_xy",
|
||||||
|
"10",
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주왕복선/[시작]의 세부 동작 1/x: '10' y: '10' 위치로 이동하기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].type",
|
||||||
|
"$[0][2].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"set_scale_size",
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주왕복선/[시작]의 세부 동작 2/크기를 '60' 으로 정하기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][3].type",
|
||||||
|
"$[0][3].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"repeat_inf",
|
||||||
|
null
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주왕복선/반복/계속 반복하기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][3].statements[0][0].type",
|
||||||
|
"$[0][3].statements[0][0].params[0].type",
|
||||||
|
"$[0][3].statements[0][0].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"_if",
|
||||||
|
"is_press_some_key",
|
||||||
|
"37"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주왕복선/만일 1/만일 '왼쪽 화살표' 키가 눌러져 있는가? 라면",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][3].statements[0][0].statements[0][0].type",
|
||||||
|
"$[0][3].statements[0][0].statements[0][0].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"move_x",
|
||||||
|
"-6"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주왕복선/[만일 1]의 세부 동작/x 좌표를 '-6' 만큼 바꾸기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][3].statements[0][1].type",
|
||||||
|
"$[0][3].statements[0][1].params[0].type",
|
||||||
|
"$[0][3].statements[0][1].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"_if",
|
||||||
|
"is_press_some_key",
|
||||||
|
"39"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주왕복선/만일 2/만일 '오른쪽 화살표' 키가 눌러져 있는가? 라면",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][3].statements[0][1].statements[0][0].type",
|
||||||
|
"$[0][3].statements[0][1].statements[0][0].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"move_x",
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주왕복선/[만일 2]의 세부 동작/x 좌표를 '6' 만큼 바꾸기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][3].statements[0][2].type",
|
||||||
|
"$[0][3].statements[0][2].params[0].type",
|
||||||
|
"$[0][3].statements[0][2].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"_if",
|
||||||
|
"is_press_some_key",
|
||||||
|
"38"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주왕복선/만일 3/만일 '위쪽 화살표' 키가 눌러져 있는가? 라면",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][3].statements[0][2].statements[0][0].type",
|
||||||
|
"$[0][3].statements[0][2].statements[0][0].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"move_y",
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주왕복선/[만일 3]의 세부 동작/y 좌표를 '6' 만큼 바꾸기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][3].statements[0][3].type",
|
||||||
|
"$[0][3].statements[0][3].params[0].type",
|
||||||
|
"$[0][3].statements[0][3].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"_if",
|
||||||
|
"is_press_some_key",
|
||||||
|
"40"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주왕복선/만일 4/만일 '아래쪽 화살표' 키가 눌러져 있는가? 라면",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][3].statements[0][3].statements[0][0].type",
|
||||||
|
"$[0][3].statements[0][3].statements[0][0].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"move_y",
|
||||||
|
"-6"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주왕복선/[만일 4]의 세부 동작/y 좌표를 '-6' 만큼 바꾸기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][3].statements[0][4].type",
|
||||||
|
"$[0][3].statements[0][4].params[0].type",
|
||||||
|
"$[0][3].statements[0][4].params[0].params[0].type",
|
||||||
|
"$[0][3].statements[0][4].params[0].params[1]",
|
||||||
|
"$[0][3].statements[0][4].params[0].params[2].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"_if",
|
||||||
|
"boolean_basic_operator",
|
||||||
|
"get_variable",
|
||||||
|
"EQUAL",
|
||||||
|
"4"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주왕복선/만일 5/만일 '구조자' 값 = '4' 이라면",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[0][3].statements[0][4].statements[0][0].type",
|
||||||
|
"answer": "hide",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주왕복선/[만일 5]의 세부 동작 1/모양 숨기기"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[0][3].statements[0][4].statements[0][1].type",
|
||||||
|
"answer": "message_cast",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/우주왕복선/[만일 5]의 세부 동작 2/'탈출' 신호 보내기"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sortBlock": [
|
||||||
|
"when_run_button_click"
|
||||||
|
],
|
||||||
|
"sort": 123
|
||||||
|
},
|
||||||
|
"5-0": {
|
||||||
|
"type": "script",
|
||||||
|
"ele": "$.objects[?(@.name=~'낙하산|열기구')].script",
|
||||||
|
"blocks": [
|
||||||
|
{
|
||||||
|
"ele": "$[0][0].type",
|
||||||
|
"answer": "when_run_button_click",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/낙하산/시작/시작하기 버튼을 클릭했을 때"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[0][1].type",
|
||||||
|
"answer": "hide",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/낙하산/[시작]의 세부 동작/모양 숨기기"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[1][0].type",
|
||||||
|
"answer": "when_message_cast",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/낙하산/신호/'탈출' 신호를 받았을 때"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[1][1].type",
|
||||||
|
"answer": "locate",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/낙하산/[신호]의 세부 동작 1/'우주왕복선' 위치로 이동하기"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[1][2].type",
|
||||||
|
"answer": "show",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/낙하산/[신호]의 세부 동작 2/모양 보이기"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[1][3].type",
|
||||||
|
"$[1][3].params[0].params[0]",
|
||||||
|
"$[1][3].params[1]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"dialog",
|
||||||
|
"구출완료!",
|
||||||
|
"speak"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/낙하산/[신호]의 세부 동작 3/'구출완료!' 를 '말하기'",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[1][4].type",
|
||||||
|
"$[1][4].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"stop_object",
|
||||||
|
"other_objects"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/낙하산/[신호]의 세부 동작 4/'다른 오브젝트의' 코드 멈추기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[1][5].type",
|
||||||
|
"$[1][5].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"wait_second",
|
||||||
|
"2"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/낙하산/[신호]의 세부 동작 5/'2' 초 기다리기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[1][6].type",
|
||||||
|
"answer": "start_neighbor_scene",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/낙하산/[신호]의 세부 동작 6/'다음' 장면 시작하기"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sortBlock": [
|
||||||
|
"when_run_button_click",
|
||||||
|
"when_message_cast"
|
||||||
|
],
|
||||||
|
"sort": 139
|
||||||
|
},
|
||||||
|
"6-0": {
|
||||||
|
"type": "script",
|
||||||
|
"ele": "$.objects[?(@.name=~'활주로')].script",
|
||||||
|
"blocks": [
|
||||||
|
{
|
||||||
|
"ele": "$[0][0].type",
|
||||||
|
"answer": "when_scene_start",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/활주로/장면 2/장면이 시작되었을 때"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[0][1].type",
|
||||||
|
"answer": "hide_variable",
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/활주로/[장면 2]의 세부 동작 1/변수 '구조자' 숨기기"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[0][2].type",
|
||||||
|
"$[0][2].params[0].params[0]",
|
||||||
|
"$[0][2].params[1]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"dialog",
|
||||||
|
"미션 성공!",
|
||||||
|
"speak"
|
||||||
|
],
|
||||||
|
"point": 1.63,
|
||||||
|
"desc": "문제 2/활주로/[장면 2]의 세부 동작 2/'미션 성공!' 을 '말하기'",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[1][0].type",
|
||||||
|
"answer": "when_object_click",
|
||||||
|
"point": 2,
|
||||||
|
"desc": "문제 3/활주로/오브젝트/오브젝트를 클릭했을 때"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[1][1].type",
|
||||||
|
"$[1][1].params[0]",
|
||||||
|
"$[1][1].params[1].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"add_effect_amount",
|
||||||
|
"color",
|
||||||
|
"50"
|
||||||
|
],
|
||||||
|
"point": 2,
|
||||||
|
"desc": "문제 3/활주로/[오브젝트]의 세부 동작 1/'색깔' 효과를 '50' 만큼 주기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[1][2].type",
|
||||||
|
"$[1][2].params[0].params[0]",
|
||||||
|
"$[1][2].params[1]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"dialog",
|
||||||
|
"처음부터 다시 실행합니다!",
|
||||||
|
"speak"
|
||||||
|
],
|
||||||
|
"point": 2,
|
||||||
|
"desc": "문제 3/활주로/[오브젝트]의 세부 동작 2/'처음부터 다시 실행합니다!' 를 '말하기'",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": [
|
||||||
|
"$[1][3].type",
|
||||||
|
"$[1][3].params[0].params[0]"
|
||||||
|
],
|
||||||
|
"answer": [
|
||||||
|
"wait_second",
|
||||||
|
"2"
|
||||||
|
],
|
||||||
|
"point": 2,
|
||||||
|
"desc": "문제 3/활주로/[오브젝트]의 세부 동작 3/'2' 초 기다리기",
|
||||||
|
"type": "list"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ele": "$[1][4].type",
|
||||||
|
"answer": "restart_project",
|
||||||
|
"point": 2,
|
||||||
|
"desc": "문제 3/활주로/[오브젝트]의 세부 동작 4/처음부터 다시 실행하기"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sortBlock": [
|
||||||
|
"when_scene_start",
|
||||||
|
"when_object_click"
|
||||||
|
],
|
||||||
|
"sort": 148
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,877 +0,0 @@
|
|||||||
{
|
|
||||||
"1-1": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='우주')]",
|
|
||||||
"points": 1.8,
|
|
||||||
"desc": "장면 1/[배경] 이름 설정 1/이름을 ‘우주’로 변경하기",
|
|
||||||
"sort": 11
|
|
||||||
},
|
|
||||||
"1-2": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='우주정거장')]",
|
|
||||||
"points": 1.8,
|
|
||||||
"desc": "장면 2/[배경] 이름 설정 2/이름 변경 없음",
|
|
||||||
"sort": 12
|
|
||||||
},
|
|
||||||
"1-3": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='에너지원')]",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "물약(빨강)/[개체] 이름 설정 1/이름을 ‘에너지원’으로 변경하기",
|
|
||||||
"sort": 13
|
|
||||||
},
|
|
||||||
"1-4": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='운석')]",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "검은 돌멩이/[개체] 이름 설정 2/이름을 ‘운석’으로 변경하기",
|
|
||||||
"sort": 14
|
|
||||||
},
|
|
||||||
"1-5": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='행성')]",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "행성(5)/[개체] 이름 설정 3/이름을 ‘행성’으로 변경하기",
|
|
||||||
"sort": 15
|
|
||||||
},
|
|
||||||
"1-6": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='우주선')]",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "우주선 탄 엔트리봇/[개체] 이름 설정 4/이름을 ‘우주선’으로 변경하기",
|
|
||||||
"sort": 16
|
|
||||||
},
|
|
||||||
"1-7": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..variables[?(@.name=='연료')]",
|
|
||||||
"points": 1,
|
|
||||||
"desc": "문제 2/에너지원/변수 1/‘연료’변수 만들기 (변수 기본값은 ‘100’, ‘모든 오브젝트에 사용’ 설정하기)",
|
|
||||||
"sort": 101
|
|
||||||
},
|
|
||||||
"1-8": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..variables[?(@.name=='점수')]",
|
|
||||||
"points": 1,
|
|
||||||
"desc": "문제 2/에너지원/변수 2/‘점수’ 변수 만들기 (변수 기본값은 ‘0’, ‘모든 오브젝트에 사용’ 설정하기)",
|
|
||||||
"sort": 102
|
|
||||||
},
|
|
||||||
"2-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'에너지원')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/에너지원/시작/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "50",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/에너지원/[시작]의 세부 동작/크기를 ‘50’ 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/에너지원/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"hide",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/에너지원/[반복]의 세부 동작 1/모양 숨기기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][0].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[만일]의 세부 동작 1/'물고기 수'에 '1' 만큼 더하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][1].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.01"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[만일]의 세부 동작 2/'0.01' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].statements[0][2].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[만일]의 세부 동작 3/모양 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].params[1].params[0]",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"calc_rand",
|
|
||||||
"0.5",
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[만일]의 세부 동작 4/'0.5 부터 3 사이의 무작위 수' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].statements[0][4].type",
|
|
||||||
"answer": "show",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[만일]의 세부 동작 5/모양 보이기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/시작2/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_direction",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[반복]의 세부 동작 1/이동 방향으로 '1 부터 2 사이의 무작위 수' 만큼 움직이기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][1].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[1].params[0]",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"direction_relative",
|
|
||||||
"calc_rand",
|
|
||||||
"-1",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[반복]의 세부 동작 2/이동 방향을 '-1 부터 1 사이의 무작위 수' 만큼 회전하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][1].statements[0][2].type",
|
|
||||||
"answer": "bounce_wall",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[반복]의 세부 동작 3/화면 끝에 닿으면 튕기기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 102,
|
|
||||||
"list": [
|
|
||||||
"set_scale_size",
|
|
||||||
"repeat_inf"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"3-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'노란 물고기|물고')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/시작1/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "30",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[시작1]의 세부 동작 1/크기를 '30' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/만일/만일 '상어' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][0].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[만일]의 세부 동작 1/물고기 수'에 '2' 만큼 더하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][1].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.01"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[만일]의 세부 동작 2/'0.01' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].statements[0][2].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[만일]의 세부 동작 3/모양 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].params[1].params[0]",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"calc_rand",
|
|
||||||
"0.5",
|
|
||||||
"1.5"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[만일]의 세부 동작 4/'0.5' 부터 '1.5' 사이의 무작위 수' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].statements[0][4].type",
|
|
||||||
"answer": "show",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[만일]의 세부 동작 5/모양 보이기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/시작2/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_direction",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[반복]의 세부 동작 1/이동 방향으로 '1 부터 2 사이의 무작위 수' 만큼 움직이기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][1].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[1].params[0]",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"direction_relative",
|
|
||||||
"calc_rand",
|
|
||||||
"-1",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[반복]의 세부 동작 2/이동 방향을 '-1 부터 1 사이의 무작위 수' 만큼 회전하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][1].statements[0][2].type",
|
|
||||||
"answer": "bounce_wall",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[반복]의 세부 동작 3/화면 끝에 닿으면 튕기기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 117,
|
|
||||||
"list": [
|
|
||||||
"set_scale_size",
|
|
||||||
"repeat_inf"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"4-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'쓰레기')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/시작1/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "30",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[시작1]의 세부 동작 1/크기를 '30' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/만일/만일 '상어' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][0].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"-1"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[만일]의 세부 동작 1/물고기 수'에 '-1' 만큼 더하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][1].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.01"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[만일]의 세부 동작 2/'0.01' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].statements[0][2].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[만일]의 세부 동작 3/모양 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].params[1].params[0]",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"calc_rand",
|
|
||||||
"0.5",
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[만일]의 세부 동작 4/'0.5 부터 3 사이의 무작위 수' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].statements[0][4].type",
|
|
||||||
"answer": "show",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[만일]의 세부 동작 5/모양 보이기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/시작2/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_direction",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[반복]의 세부 동작 1/이동 방향으로 '1 부터 2 사이의 무작위 수' 만큼 움직이기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][1].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[1].params[0]",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"direction_relative",
|
|
||||||
"calc_rand",
|
|
||||||
"-1",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[반복]의 세부 동작 2/이동 방향을 '-1 부터 1 사이의 무작위 수' 만큼 회전하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][1].statements[0][2].type",
|
|
||||||
"answer": "bounce_wall",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[반복]의 세부 동작 3/화면 끝에 닿으면 튕기기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 131,
|
|
||||||
"list": [
|
|
||||||
"set_scale_size",
|
|
||||||
"repeat_inf"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"44-0": {
|
|
||||||
"ele": "$.messages[?(@.name=='성공')]",
|
|
||||||
"points": 1,
|
|
||||||
"desc": "문제 2/상어/신호/'성공'신호 만들기",
|
|
||||||
"type": "scene",
|
|
||||||
"sort": 144
|
|
||||||
},
|
|
||||||
"5-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'상어')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/시작1/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "50",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[시작]의 세부 동작 1/크기를 '50' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0].params[0]",
|
|
||||||
"$[0][2].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"-100",
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[시작]의 세부 동작 2/x: '-100' y: '0' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].type",
|
|
||||||
"$[0][3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0].params[0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0].params[1]",
|
|
||||||
"$[0][3].statements[0][0].params[0].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"boolean_basic_operator",
|
|
||||||
"get_variable",
|
|
||||||
"GREATER",
|
|
||||||
"10"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/만일/만일 '물고기 수' 값 > '10' 이라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][0].statements[0][0].type",
|
|
||||||
"answer": "message_cast",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[만일]의 세부 동작 1/성공' 신호보내기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].statements[0][1].type",
|
|
||||||
"$[0][3].statements[0][0].statements[0][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"stop_object",
|
|
||||||
"thisOnly"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[만일]의 세부 동작 2/자신의' 코드 멈추기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/시작2/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][0].params[0].type",
|
|
||||||
"$[1][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"37"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/만일1/만일 '왼쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][0].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][0].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"-5"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[만일1]의 세부 동작 1/x 좌표를 '-5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][1].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"39"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/만일2/만일 '오른쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][1].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"5"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[만일2]의 세부 동작 1/x 좌표를 '5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][2].type",
|
|
||||||
"$[1][1].statements[0][2].params[0].type",
|
|
||||||
"$[1][1].statements[0][2].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"38"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/만일3/만일 '위쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][2].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][2].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"5"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[만일3]의 세부 동작 1/y 좌표를 '5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][3].type",
|
|
||||||
"$[1][1].statements[0][3].params[0].type",
|
|
||||||
"$[1][1].statements[0][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"40"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/만일4/만일 '아래쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][3].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][3].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"-5"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[만일4]의 세부 동작 1/y 좌표를 '-5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[2][0].type",
|
|
||||||
"answer": "when_message_cast",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/신호/'성공' 신호를 받았을 때 "
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[2][1].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"배부르다!",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[신호]의 세부 동작 1/'배부르다!' 를 '1'초 동안 '말하기'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[2][2].type",
|
|
||||||
"answer": "start_neighbor_scene",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[신호]의 세부 동작 2/'다음' 장면 시작하기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 145,
|
|
||||||
"list": [
|
|
||||||
"set_scale_size",
|
|
||||||
"repeat_inf",
|
|
||||||
"dialog_time"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"6-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'바다2|바닷속\\(3\\)1')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_scene_start",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/바다2/장면 2/장면이 시작되었을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].type",
|
|
||||||
"answer": "hide_variable",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/바다2/[장면 2]의 세부 동작 1/변수 '물고기 수' 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0].params[0]",
|
|
||||||
"$[0][2].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"dialog",
|
|
||||||
"미션성공!",
|
|
||||||
"speak"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/바다2/[장면 2]의 세부 동작 2/'미션성공!' 을 '말하기'",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_object_click",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/바다2/오브젝트/오브젝트를 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]",
|
|
||||||
"$[1][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"add_effect_amount",
|
|
||||||
"color",
|
|
||||||
"30"
|
|
||||||
],
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/바다2/[오브젝트]의 세부 동작 1/'색깔' 효과를 '30' 만큼 주기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].type",
|
|
||||||
"$[1][2].params[0].params[0]",
|
|
||||||
"$[1][2].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"dialog",
|
|
||||||
"처음부터 다시 실행!",
|
|
||||||
"speak"
|
|
||||||
],
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/바다2/[오브젝트]의 세부 동작 2/'처음부터 다시 실행!' 을 '말하기'",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][3].type",
|
|
||||||
"$[1][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/바다2/[오브젝트]의 세부 동작 3/'2' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][4].type",
|
|
||||||
"answer": "restart_project",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/바다2/[오브젝트]의 세부 동작 4/처음부터 다시 실행하기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 166,
|
|
||||||
"list": [
|
|
||||||
"hide_variable",
|
|
||||||
"add_effect_amount"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,870 +0,0 @@
|
|||||||
{
|
|
||||||
"1-1": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='바다1')]",
|
|
||||||
"points": 1.8,
|
|
||||||
"desc": "문제 1/장면 1/[배경] 이름 설정 1/이름을 '바다1'로 변경하기",
|
|
||||||
"sort": 11
|
|
||||||
},
|
|
||||||
"1-2": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='바다2')]",
|
|
||||||
"points": 1.8,
|
|
||||||
"desc": "문제 1/장면 2/[배경] 이름 설정 2/이름을 '바다2'로 변경하기",
|
|
||||||
"sort": 12
|
|
||||||
},
|
|
||||||
"1-3": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='빨간 물고기')]",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "문제 1/빨간 물고기/[개체] 이름 설정 1/이름 변경 없음",
|
|
||||||
"sort": 13
|
|
||||||
},
|
|
||||||
"1-4": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='노란 물고기')]",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "문제 1/물고기/[개체] 이름 설정 2/이름을 '노란 물고기'로 변경하기",
|
|
||||||
"sort": 14
|
|
||||||
},
|
|
||||||
"1-5": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='쓰레기')]",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "문제 1/쓰레기/[개체] 이름 설정 3/이름 변경 없음",
|
|
||||||
"sort": 15
|
|
||||||
},
|
|
||||||
"1-6": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..objects[?(@.name=='상어')]",
|
|
||||||
"points": 1.6,
|
|
||||||
"desc": "문제 1/상어(1)/[개체] 이름 설정 4/이름을 '상어'로 변경하기",
|
|
||||||
"sort": 16
|
|
||||||
},
|
|
||||||
"1-7": {
|
|
||||||
"type": "scene",
|
|
||||||
"ele": "$..variables[?(@.name=='물고기 수')]",
|
|
||||||
"points": 1,
|
|
||||||
"desc": "문제 2/빨간 물고기/변수/'물고기 수' 변수 만들기",
|
|
||||||
"sort": 101
|
|
||||||
},
|
|
||||||
"2-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'빨간 물고기')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/시작1/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "30",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[시작1]의 세부 동작 1/크기를 '30' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/만일/만일 '상어' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][0].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[만일]의 세부 동작 1/'물고기 수'에 '1' 만큼 더하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][1].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.01"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[만일]의 세부 동작 2/'0.01' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].statements[0][2].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[만일]의 세부 동작 3/모양 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].params[1].params[0]",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"calc_rand",
|
|
||||||
"0.5",
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[만일]의 세부 동작 4/'0.5 부터 3 사이의 무작위 수' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].statements[0][4].type",
|
|
||||||
"answer": "show",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[만일]의 세부 동작 5/모양 보이기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/시작2/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_direction",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[반복]의 세부 동작 1/이동 방향으로 '1 부터 2 사이의 무작위 수' 만큼 움직이기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][1].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[1].params[0]",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"direction_relative",
|
|
||||||
"calc_rand",
|
|
||||||
"-1",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[반복]의 세부 동작 2/이동 방향을 '-1 부터 1 사이의 무작위 수' 만큼 회전하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][1].statements[0][2].type",
|
|
||||||
"answer": "bounce_wall",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/빨간 물고기/[반복]의 세부 동작 3/화면 끝에 닿으면 튕기기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 102,
|
|
||||||
"list": [
|
|
||||||
"set_scale_size",
|
|
||||||
"repeat_inf"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"3-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'노란 물고기|물고')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/시작1/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "30",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[시작1]의 세부 동작 1/크기를 '30' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/만일/만일 '상어' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][0].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[만일]의 세부 동작 1/물고기 수'에 '2' 만큼 더하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][1].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.01"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[만일]의 세부 동작 2/'0.01' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].statements[0][2].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[만일]의 세부 동작 3/모양 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].params[1].params[0]",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"calc_rand",
|
|
||||||
"0.5",
|
|
||||||
"1.5"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[만일]의 세부 동작 4/'0.5' 부터 '1.5' 사이의 무작위 수' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].statements[0][4].type",
|
|
||||||
"answer": "show",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[만일]의 세부 동작 5/모양 보이기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/시작2/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_direction",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[반복]의 세부 동작 1/이동 방향으로 '1 부터 2 사이의 무작위 수' 만큼 움직이기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][1].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[1].params[0]",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"direction_relative",
|
|
||||||
"calc_rand",
|
|
||||||
"-1",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[반복]의 세부 동작 2/이동 방향을 '-1 부터 1 사이의 무작위 수' 만큼 회전하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][1].statements[0][2].type",
|
|
||||||
"answer": "bounce_wall",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/노란 물고기/[반복]의 세부 동작 3/화면 끝에 닿으면 튕기기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 117,
|
|
||||||
"list": [
|
|
||||||
"set_scale_size",
|
|
||||||
"repeat_inf"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"4-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'쓰레기')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/시작1/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "30",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[시작1]의 세부 동작 1/크기를 '30' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].params[0].type"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"reach_something"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/만일/만일 '상어' 에 닿았는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][0].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][0].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"change_variable",
|
|
||||||
"-1"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[만일]의 세부 동작 1/물고기 수'에 '-1' 만큼 더하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][1].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"0.01"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[만일]의 세부 동작 2/'0.01' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].statements[0][2].type",
|
|
||||||
"answer": "hide",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[만일]의 세부 동작 3/모양 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].type",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].params[1].params[0]",
|
|
||||||
"$[0][2].statements[0][0].statements[0][3].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"calc_rand",
|
|
||||||
"0.5",
|
|
||||||
"3"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[만일]의 세부 동작 4/'0.5 부터 3 사이의 무작위 수' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][2].statements[0][0].statements[0][4].type",
|
|
||||||
"answer": "show",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[만일]의 세부 동작 5/모양 보이기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/시작2/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_direction",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[반복]의 세부 동작 1/이동 방향으로 '1 부터 2 사이의 무작위 수' 만큼 움직이기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][1].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[1].params[0]",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"direction_relative",
|
|
||||||
"calc_rand",
|
|
||||||
"-1",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[반복]의 세부 동작 2/이동 방향을 '-1 부터 1 사이의 무작위 수' 만큼 회전하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][1].statements[0][2].type",
|
|
||||||
"answer": "bounce_wall",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/쓰레기/[반복]의 세부 동작 3/화면 끝에 닿으면 튕기기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 131,
|
|
||||||
"list": [
|
|
||||||
"set_scale_size",
|
|
||||||
"repeat_inf"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"44-0": {
|
|
||||||
"ele": "$.messages[?(@.name=='성공')]",
|
|
||||||
"points": 1,
|
|
||||||
"desc": "문제 2/상어/신호/'성공'신호 만들기",
|
|
||||||
"type": "scene",
|
|
||||||
"sort": 144
|
|
||||||
},
|
|
||||||
"5-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'상어')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/시작1/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].params[0].params[0]",
|
|
||||||
"answer": "50",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[시작]의 세부 동작 1/크기를 '50' 으로 정하기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0].params[0]",
|
|
||||||
"$[0][2].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"locate_xy",
|
|
||||||
"-100",
|
|
||||||
"0"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[시작]의 세부 동작 2/x: '-100' y: '0' 위치로 이동하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].type",
|
|
||||||
"$[0][3].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0].params[0].type",
|
|
||||||
"$[0][3].statements[0][0].params[0].params[1]",
|
|
||||||
"$[0][3].statements[0][0].params[0].params[2].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"boolean_basic_operator",
|
|
||||||
"get_variable",
|
|
||||||
"GREATER",
|
|
||||||
"10"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/만일/만일 '물고기 수' 값 > '10' 이라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][3].statements[0][0].statements[0][0].type",
|
|
||||||
"answer": "message_cast",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[만일]의 세부 동작 1/성공' 신호보내기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][3].statements[0][0].statements[0][1].type",
|
|
||||||
"$[0][3].statements[0][0].statements[0][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"stop_object",
|
|
||||||
"thisOnly"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[만일]의 세부 동작 2/자신의' 코드 멈추기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_run_button_click",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/시작2/시작하기 버튼을 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"repeat_inf",
|
|
||||||
null
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/반복/계속 반복하기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][0].params[0].type",
|
|
||||||
"$[1][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"37"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/만일1/만일 '왼쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][0].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][0].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"-5"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[만일1]의 세부 동작 1/x 좌표를 '-5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][1].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].type",
|
|
||||||
"$[1][1].statements[0][1].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"39"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/만일2/만일 '오른쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][1].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][1].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_x",
|
|
||||||
"5"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[만일2]의 세부 동작 1/x 좌표를 '5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][2].type",
|
|
||||||
"$[1][1].statements[0][2].params[0].type",
|
|
||||||
"$[1][1].statements[0][2].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"38"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/만일3/만일 '위쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][2].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][2].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"5"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[만일3]의 세부 동작 1/y 좌표를 '5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][3].type",
|
|
||||||
"$[1][1].statements[0][3].params[0].type",
|
|
||||||
"$[1][1].statements[0][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"_if",
|
|
||||||
"is_press_some_key",
|
|
||||||
"40"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/만일4/만일 '아래쪽 화살표' 키가 눌러져 있는가? 라면",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].statements[0][3].statements[0][0].type",
|
|
||||||
"$[1][1].statements[0][3].statements[0][0].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"move_y",
|
|
||||||
"-5"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[만일4]의 세부 동작 1/y 좌표를 '-5' 만큼 바꾸기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[2][0].type",
|
|
||||||
"answer": "when_message_cast",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/신호/'성공' 신호를 받았을 때 "
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[2][1].params[*].params",
|
|
||||||
"answer": [
|
|
||||||
"배부르다!",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[신호]의 세부 동작 1/'배부르다!' 를 '1'초 동안 '말하기'"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[2][2].type",
|
|
||||||
"answer": "start_neighbor_scene",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/상어/[신호]의 세부 동작 2/'다음' 장면 시작하기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 145,
|
|
||||||
"list": [
|
|
||||||
"set_scale_size",
|
|
||||||
"repeat_inf",
|
|
||||||
"dialog_time"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"6-0": {
|
|
||||||
"type": "script",
|
|
||||||
"ele": "$.objects[?(@.name=~'바다2|바닷속\\(3\\)1')].script",
|
|
||||||
"blocks": [
|
|
||||||
{
|
|
||||||
"ele": "$[0][0].type",
|
|
||||||
"answer": "when_scene_start",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/바다2/장면 2/장면이 시작되었을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[0][1].type",
|
|
||||||
"answer": "hide_variable",
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/바다2/[장면 2]의 세부 동작 1/변수 '물고기 수' 숨기기"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[0][2].type",
|
|
||||||
"$[0][2].params[0].params[0]",
|
|
||||||
"$[0][2].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"dialog",
|
|
||||||
"미션성공!",
|
|
||||||
"speak"
|
|
||||||
],
|
|
||||||
"points": 1.2,
|
|
||||||
"desc": "문제 2/바다2/[장면 2]의 세부 동작 2/'미션성공!' 을 '말하기'",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][0].type",
|
|
||||||
"answer": "when_object_click",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/바다2/오브젝트/오브젝트를 클릭했을 때"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][1].type",
|
|
||||||
"$[1][1].params[0]",
|
|
||||||
"$[1][1].params[1].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"add_effect_amount",
|
|
||||||
"color",
|
|
||||||
"30"
|
|
||||||
],
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/바다2/[오브젝트]의 세부 동작 1/'색깔' 효과를 '30' 만큼 주기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][2].type",
|
|
||||||
"$[1][2].params[0].params[0]",
|
|
||||||
"$[1][2].params[1]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"dialog",
|
|
||||||
"처음부터 다시 실행!",
|
|
||||||
"speak"
|
|
||||||
],
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/바다2/[오브젝트]의 세부 동작 2/'처음부터 다시 실행!' 을 '말하기'",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": [
|
|
||||||
"$[1][3].type",
|
|
||||||
"$[1][3].params[0].params[0]"
|
|
||||||
],
|
|
||||||
"answer": [
|
|
||||||
"wait_second",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/바다2/[오브젝트]의 세부 동작 3/'2' 초 기다리기",
|
|
||||||
"type": "list"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ele": "$[1][4].type",
|
|
||||||
"answer": "restart_project",
|
|
||||||
"points": 2,
|
|
||||||
"desc": "문제 3/바다2/[오브젝트]의 세부 동작 4/처음부터 다시 실행하기"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sort": 166,
|
|
||||||
"list": [
|
|
||||||
"hide_variable",
|
|
||||||
"add_effect_amount"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,82 +0,0 @@
|
|||||||
import json
|
|
||||||
from jsonpath_ng import parse
|
|
||||||
|
|
||||||
# JSON 데이터
|
|
||||||
json_data = [
|
|
||||||
{
|
|
||||||
"id": "ro4n",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "wait_second",
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"id": "6xf0",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "number",
|
|
||||||
"params": ["1"],
|
|
||||||
"statements": [],
|
|
||||||
"movable": None,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": False,
|
|
||||||
"readOnly": None,
|
|
||||||
"copyable": True,
|
|
||||||
"assemble": True,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
None
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": None,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": False,
|
|
||||||
"readOnly": None,
|
|
||||||
"copyable": True,
|
|
||||||
"assemble": True,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "kkqk",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "wait_second",
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"id": "167c",
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"type": "number",
|
|
||||||
"params": ["1"],
|
|
||||||
"statements": [],
|
|
||||||
"movable": None,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": False,
|
|
||||||
"readOnly": None,
|
|
||||||
"copyable": True,
|
|
||||||
"assemble": True,
|
|
||||||
"extensions": []
|
|
||||||
},
|
|
||||||
None
|
|
||||||
],
|
|
||||||
"statements": [],
|
|
||||||
"movable": None,
|
|
||||||
"deletable": 1,
|
|
||||||
"emphasized": False,
|
|
||||||
"readOnly": None,
|
|
||||||
"copyable": True,
|
|
||||||
"assemble": True,
|
|
||||||
"extensions": []
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
# JSONPath 표현식
|
|
||||||
jsonpath_expr = parse("$[?(@.type=='wait_second')][0]")
|
|
||||||
|
|
||||||
# 첫 번째 "wait_second" 요소 찾기
|
|
||||||
matches = [match.value for match in jsonpath_expr.find(json_data)]
|
|
||||||
|
|
||||||
# 출력
|
|
||||||
if matches:
|
|
||||||
print("첫 번째 wait_second 요소:", json.dumps(matches[0], indent=4, ensure_ascii=False))
|
|
||||||
else:
|
|
||||||
print("❌ 해당 요소를 찾을 수 없습니다.")
|
|
||||||
12
main.py
12
main.py
@@ -7,9 +7,9 @@ import re # 상단에 추가
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import logging
|
import logging
|
||||||
from logging_config import setup_logging # logging 설정을 위한 import
|
from logging_config import setup_logging # logging 설정을 위한 import
|
||||||
import traceback
|
|
||||||
import itertools
|
import itertools
|
||||||
import copy
|
import copy
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
from script_utils import extract_and_format_scripts # 스크립트 추출 함수 import
|
from script_utils import extract_and_format_scripts # 스크립트 추출 함수 import
|
||||||
|
|
||||||
@@ -243,7 +243,7 @@ def process_project(project_data, scoring_data):
|
|||||||
scene_elements = find_element(project_data, element_path)
|
scene_elements = find_element(project_data, element_path)
|
||||||
|
|
||||||
if scene_elements:
|
if scene_elements:
|
||||||
print(f"🟨 Found elements for '{element_path}'")
|
print(f"🟦 Found elements for '{element_path}'")
|
||||||
scene_elements = [convert_to_str(x) for x in scene_elements]
|
scene_elements = [convert_to_str(x) for x in scene_elements]
|
||||||
|
|
||||||
if scene_elements == expected_answer or (expected_answer is None and scene_elements):
|
if scene_elements == expected_answer or (expected_answer is None and scene_elements):
|
||||||
@@ -356,14 +356,18 @@ def main():
|
|||||||
test_mode = False # 일반 채점 모드
|
test_mode = False # 일반 채점 모드
|
||||||
# test_mode = True # 테스트 모드
|
# test_mode = True # 테스트 모드
|
||||||
|
|
||||||
exam_round = "2602_6"
|
exam_round = "2602"
|
||||||
exam_names = ["CAS_2_B"] # 여러 시험명을 리스트로 설정
|
exam_names = ["CAS_2_A"] # 여러 시험명을 리스트로 설정
|
||||||
# exam_names = ["CAS_2_A", "CAS_2_B"] # 여러 시험명을 리스트로 설정
|
# exam_names = ["CAS_2_A", "CAS_2_B"] # 여러 시험명을 리스트로 설정
|
||||||
excel_list = []
|
excel_list = []
|
||||||
|
|
||||||
for exam_name in exam_names:
|
for exam_name in exam_names:
|
||||||
scoring_json_path = f'./correct/{exam_round}_{exam_name}.json'
|
scoring_json_path = f'./correct/{exam_round}_{exam_name}.json'
|
||||||
project_json_path = f'./output/{"00_test" if test_mode else exam_round+"_"+exam_name}/'
|
project_json_path = f'./output/{"00_test" if test_mode else exam_round+"_"+exam_name}/'
|
||||||
|
|
||||||
|
# dir_path = Path("score_result") / f'{exam_round}_{exam_name}'
|
||||||
|
# dir_path.mkdir(parents=True, exist_ok=True)
|
||||||
|
# excel_path = dir_path / f'{timestamp}_{exam_round}_{exam_name}_{"TEST" if test_mode else "채점결과"}.xlsx'
|
||||||
excel_path = f'{timestamp}_{exam_round}_{exam_name}_{"TEST" if test_mode else "채점결과"}.xlsx'
|
excel_path = f'{timestamp}_{exam_round}_{exam_name}_{"TEST" if test_mode else "채점결과"}.xlsx'
|
||||||
|
|
||||||
scoring_data = read_json(scoring_json_path)
|
scoring_data = read_json(scoring_json_path)
|
||||||
|
|||||||
BIN
results.xlsx
BIN
results.xlsx
Binary file not shown.
51
scorer.py
51
scorer.py
@@ -1,51 +0,0 @@
|
|||||||
import json
|
|
||||||
|
|
||||||
def load_json(file_path):
|
|
||||||
with open(file_path, 'r', encoding='utf-8') as file:
|
|
||||||
return json.load(file)
|
|
||||||
|
|
||||||
def compare_params(params1, params2):
|
|
||||||
if len(params1) != len(params2):
|
|
||||||
return False
|
|
||||||
for p1, p2 in zip(params1, params2):
|
|
||||||
if p1 != p2:
|
|
||||||
return False
|
|
||||||
return True
|
|
||||||
|
|
||||||
def calculate_points(project_data, scoring_data):
|
|
||||||
total_points = 0
|
|
||||||
for key, criteria in scoring_data.items():
|
|
||||||
ele = criteria['ele']
|
|
||||||
arg = criteria['arg']
|
|
||||||
value = criteria['value']
|
|
||||||
|
|
||||||
|
|
||||||
if ele == "scenes":
|
|
||||||
for scene in project_data['scenes']:
|
|
||||||
if scene.get(arg) == value:
|
|
||||||
points = criteria['points']
|
|
||||||
total_points += points
|
|
||||||
break
|
|
||||||
elif ele == "objects":
|
|
||||||
for obj in project_data['objects']:
|
|
||||||
if obj.get(arg) == value:
|
|
||||||
if 'script' in criteria:
|
|
||||||
for script_criteria in criteria['script']:
|
|
||||||
for script in json.loads(obj['script']):
|
|
||||||
if script['type'] == script_criteria['type']:
|
|
||||||
if 'params' in script_criteria:
|
|
||||||
if compare_params(script['params'], script_criteria['params']):
|
|
||||||
total_points += script_criteria['points']
|
|
||||||
else:
|
|
||||||
total_points += script_criteria['points']
|
|
||||||
return total_points
|
|
||||||
|
|
||||||
def main():
|
|
||||||
project_data = load_json(r'D:\project\Entry\Entry-Scoring\sample\제2506회 코딩활용능력 2급 A형 정답\temp\project.json')
|
|
||||||
scoring_data = load_json('scoring.json')
|
|
||||||
|
|
||||||
total_points = calculate_points(project_data, scoring_data)
|
|
||||||
print(f"Total Points: {total_points}")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
1
temp.csv
1
temp.csv
@@ -1 +0,0 @@
|
|||||||
'cas-000039-정승혁', 0, 0, 1.77, 1.77, 0, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 0, 0, 0, 0, 0, 0, 0, 1.77, 1.77, 0, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 1.77, 58.41000000000004
|
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
시험자료/2602/제2602회 코딩활용능력 2급 A형 문제.hwp
Normal file
BIN
시험자료/2602/제2602회 코딩활용능력 2급 A형 문제.hwp
Normal file
Binary file not shown.
BIN
시험자료/2602/제2602회 코딩활용능력 2급 A형 정답.ent
Normal file
BIN
시험자료/2602/제2602회 코딩활용능력 2급 A형 정답.ent
Normal file
Binary file not shown.
BIN
시험자료/2602/제2602회 코딩활용능력 2급 A형 채점기준표.xlsx
Normal file
BIN
시험자료/2602/제2602회 코딩활용능력 2급 A형 채점기준표.xlsx
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user