2503회 채점 중 로직 추가
This commit is contained in:
669
2502 CAT 2급 A형.json
Normal file
669
2502 CAT 2급 A형.json
Normal file
@@ -0,0 +1,669 @@
|
||||
{
|
||||
"1-1": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='들길')]",
|
||||
"points": 1.7,
|
||||
"desc": "배경 이름 변경"
|
||||
},
|
||||
"1-2": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='하늘')]",
|
||||
"points": 1.7,
|
||||
"desc": "배경 이름 변경"
|
||||
},
|
||||
"1-3": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='나무')]",
|
||||
"points": 1.7,
|
||||
"desc": "물체 이름 변경"
|
||||
},
|
||||
"1-4": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='돌')]",
|
||||
"points": 1.7,
|
||||
"desc": "물체 이름 변경"
|
||||
},
|
||||
"1-5": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='행인')]",
|
||||
"points": 1.7,
|
||||
"desc": "물체 이름 변경"
|
||||
},
|
||||
"1-6": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='마라토너')]",
|
||||
"points": 1.7,
|
||||
"desc": "물체 이름 변경"
|
||||
},
|
||||
"2": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?(@.name=~'나무|나무(10)')].script",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[0][0].type",
|
||||
"answer": "when_run_button_click",
|
||||
"points": 1.6,
|
||||
"desc": "시작하기 버튼을 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][1].type",
|
||||
"points": 1.6,
|
||||
"answer": "hide",
|
||||
"desc": "숨기기"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][2].type",
|
||||
"$[0][2].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"repeat_inf",
|
||||
null
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "무한 반복"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][2].statements[0][0].type",
|
||||
"$[0][2].statements[0][0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"create_clone",
|
||||
"self"
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "clone self"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][2].statements[0][1].type",
|
||||
"$[0][2].statements[0][1].params[0].type",
|
||||
"$[0][2].statements[0][1].params[0].params[1].params[0]",
|
||||
"$[0][2].statements[0][1].params[0].params[3].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"wait_second",
|
||||
"calc_rand",
|
||||
"1",
|
||||
"3"
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "wait random 1 betwwen 3 sec"
|
||||
},
|
||||
{
|
||||
"ele": "$[1][0].type",
|
||||
"points": 1.6,
|
||||
"answer": "when_clone_start",
|
||||
"desc": "cloen start"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[1][1].type",
|
||||
"$[1][1].params[0].params[0]",
|
||||
"$[1][1].params[1].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"locate_xy",
|
||||
"240",
|
||||
"-20"
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "변수가 1보다 클때까지 반복"
|
||||
},
|
||||
{
|
||||
"ele": "$[1][2].type",
|
||||
"points": 1.6,
|
||||
"answer": "show",
|
||||
"desc": "show"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[1][3].type",
|
||||
"$[1][3].params[0].params[0].params[3]",
|
||||
"$[1][3].params[0].params[1]",
|
||||
"$[1][3].params[0].params[2].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"repeat_while_true",
|
||||
"x",
|
||||
"LESS",
|
||||
"-240"
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "while object x pos less then -240"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[1][3].statements[0][0].type",
|
||||
"$[1][3].statements[0][0].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"move_x",
|
||||
"-3"
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "move x pos -3"
|
||||
},
|
||||
{
|
||||
"ele": "$[1][4].type",
|
||||
"points": 1.6,
|
||||
"answer": "delete_clone",
|
||||
"desc": "delete clone"
|
||||
}
|
||||
]
|
||||
},
|
||||
"3": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?(@.name=~'돌|바위(1)')].script",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[0][0].type",
|
||||
"answer": "when_run_button_click",
|
||||
"points": 1.6,
|
||||
"desc": "시작하기 버튼을 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][1].params[0].params[0]",
|
||||
"answer": "30",
|
||||
"points": 1.6,
|
||||
"desc": "크기 지정"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][2].type",
|
||||
"points": 1.6,
|
||||
"answer": "hide",
|
||||
"desc": "숨기기"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][3].type",
|
||||
"$[0][3].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"repeat_inf",
|
||||
null
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "무한 반복"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][3].statements[0][0].type",
|
||||
"$[0][3].statements[0][0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"create_clone",
|
||||
"self"
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "clone self"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][3].statements[0][1].type",
|
||||
"$[0][3].statements[0][1].params[0].type",
|
||||
"$[0][3].statements[0][1].params[0].params[1].params[0]",
|
||||
"$[0][3].statements[0][1].params[0].params[3].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"wait_second",
|
||||
"calc_rand",
|
||||
"1.5",
|
||||
"3"
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "wait random 1.5 betwwen 3 sec"
|
||||
},
|
||||
{
|
||||
"ele": "$[1][0].type",
|
||||
"points": 1.6,
|
||||
"answer": "when_clone_start",
|
||||
"desc": "cloen start"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[1][1].type",
|
||||
"$[1][1].params[0].params[0]",
|
||||
"$[1][1].params[1].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"locate_xy",
|
||||
"240",
|
||||
"-105"
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "move location x:240, y:-105"
|
||||
},
|
||||
{
|
||||
"ele": "$[1][2].type",
|
||||
"points": 1.6,
|
||||
"answer": "show",
|
||||
"desc": "show"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[1][3].type",
|
||||
"$[1][3].params[0].params[0].params[3]",
|
||||
"$[1][3].params[0].params[1]",
|
||||
"$[1][3].params[0].params[2].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"repeat_while_true",
|
||||
"x",
|
||||
"LESS",
|
||||
"-240"
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "while object x pos less then -240"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[1][3].statements[0][0].type",
|
||||
"$[1][3].statements[0][0].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"move_x",
|
||||
"-3"
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "move x pos -3"
|
||||
},
|
||||
{
|
||||
"ele": "$[1][4].type",
|
||||
"points": 1.6,
|
||||
"answer": "delete_clone",
|
||||
"desc": "delete clone"
|
||||
}
|
||||
]
|
||||
},
|
||||
"4": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?(@.name=~'행인|가을 자전거를 타는 모습')].script",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[0][0].type",
|
||||
"answer": "when_run_button_click",
|
||||
"points": 1.6,
|
||||
"desc": "시작하기 버튼을 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][1].type",
|
||||
"$[0][1].params[0].params[0]",
|
||||
"$[0][1].params[1].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"locate_xy",
|
||||
"240",
|
||||
"-30"
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "move location x:240, y:-30"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][2].type",
|
||||
"$[0][2].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"repeat_inf",
|
||||
null
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "무한 반복"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][2].statements[0][0].type",
|
||||
"$[0][2].statements[0][0].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"move_direction",
|
||||
"-1"
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "무한 반복"
|
||||
}
|
||||
]
|
||||
},
|
||||
"28": {
|
||||
"type": "scene",
|
||||
"ele": "$.messages[?(@.name=='넘어짐')]",
|
||||
"points": 1.6,
|
||||
"desc": "시그널 작성 여부"
|
||||
},
|
||||
"5": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?(@.name=~'마라토너|축구선수')].script",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[0][0].type",
|
||||
"answer": "when_run_button_click",
|
||||
"points": 1.6,
|
||||
"desc": "시작하기 버튼을 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][1].type",
|
||||
"points": 1.6,
|
||||
"answer": "flip_y",
|
||||
"desc": "y axis flip"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][2].type",
|
||||
"$[0][2].params[0].params[0]",
|
||||
"$[0][2].params[1].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"locate_xy",
|
||||
"-150",
|
||||
"-70"
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "move location x:240, y:-30"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][3].type",
|
||||
"$[0][3].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"repeat_inf",
|
||||
null
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "무한 반복"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][3].statements[0][0].params[0]",
|
||||
"points": 1.6,
|
||||
"answer": "next",
|
||||
"desc": "change to next shape check value"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][3].statements[0][1].type",
|
||||
"$[0][3].statements[0][1].params[0].params[0]"
|
||||
],
|
||||
"points": 1.6,
|
||||
"answer": [
|
||||
"wait_second",
|
||||
"0.1"
|
||||
],
|
||||
"desc": "wait 0.1 second"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][3].statements[0][2].type",
|
||||
"$[0][3].statements[0][2].params[0].type",
|
||||
"$[0][3].statements[0][2].params[0].params[0]"
|
||||
],
|
||||
"points": 1.6,
|
||||
"answer": [
|
||||
"_if",
|
||||
"is_press_some_key",
|
||||
"32"
|
||||
],
|
||||
"desc": "if press space key"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][3].statements[0][2].statements[0][0].type",
|
||||
"$[0][3].statements[0][2].statements[0][0].params[0].params[0]"
|
||||
],
|
||||
"points": 1.6,
|
||||
"answer": [
|
||||
"repeat_basic",
|
||||
"20"
|
||||
],
|
||||
"desc": "while 20"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][3].statements[0][2].statements[0][0].statements[0][0].type",
|
||||
"$[0][3].statements[0][2].statements[0][0].statements[0][0].params[0].params[0]"
|
||||
],
|
||||
"points": 1.6,
|
||||
"answer": [
|
||||
"move_y",
|
||||
"5"
|
||||
],
|
||||
"desc": "y pos move 5"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][3].statements[0][2].statements[0][1].type",
|
||||
"$[0][3].statements[0][2].statements[0][1].params[0].params[0]"
|
||||
],
|
||||
"points": 1.6,
|
||||
"answer": [
|
||||
"repeat_basic",
|
||||
"20"
|
||||
],
|
||||
"desc": "while 20"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][3].statements[0][2].statements[0][1].statements[0][0].type",
|
||||
"$[0][3].statements[0][2].statements[0][1].statements[0][0].params[0].params[0]"
|
||||
],
|
||||
"points": 1.6,
|
||||
"answer": [
|
||||
"move_y",
|
||||
"-5"
|
||||
],
|
||||
"desc": "y pos move -5"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][3].statements[0][3].type",
|
||||
"$[0][3].statements[0][3].params[0].type"
|
||||
],
|
||||
"points": 1.6,
|
||||
"answer": [
|
||||
"_if",
|
||||
"reach_something"
|
||||
],
|
||||
"desc": "if reach object"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][3].statements[0][3].statements[0][0].type",
|
||||
"points": 1.6,
|
||||
"answer": "message_cast",
|
||||
"desc": "신호 보내기"
|
||||
},
|
||||
{
|
||||
"ele": "$[1][0].type",
|
||||
"answer": "when_message_cast",
|
||||
"points": 1.6,
|
||||
"desc": "신호를 받았을 때"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[1][1].type",
|
||||
"$[1][1].params[0].type",
|
||||
"$[1][1].params[0].params[0]"
|
||||
],
|
||||
"points": 1.6,
|
||||
"answer": [
|
||||
"rotate_relative",
|
||||
"angle",
|
||||
"40"
|
||||
],
|
||||
"desc": "rotate angle 40"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[1][2].type",
|
||||
"$[1][2].params[0].params[0]",
|
||||
"$[1][2].params[1].params[0]",
|
||||
"$[1][2].params[2].params[0]"
|
||||
],
|
||||
"points": 1.6,
|
||||
"answer": [
|
||||
"locate_xy_time",
|
||||
"0.2",
|
||||
"-140",
|
||||
"-100"
|
||||
],
|
||||
"desc": "locate x: -140, y:-100 during 0.2 sec "
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[1][3].type",
|
||||
"$[1][3].params[0].params[0]",
|
||||
"$[1][3].params[1]"
|
||||
],
|
||||
"answer": [
|
||||
"dialog",
|
||||
"아야!",
|
||||
"speak"
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "아야! speak"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[1][4].type",
|
||||
"$[1][4].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"stop_object",
|
||||
"otherThread"
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "object other code stop"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[1][5].type",
|
||||
"$[1][5].params[0].params[0]"
|
||||
],
|
||||
"points": 1.6,
|
||||
"answer": [
|
||||
"wait_second",
|
||||
"1"
|
||||
],
|
||||
"desc": "wait 1 second"
|
||||
},
|
||||
{
|
||||
"ele": "$[1][6].type",
|
||||
"answer": "start_neighbor_scene",
|
||||
"points": 1.6,
|
||||
"desc": "next scene start"
|
||||
}
|
||||
]
|
||||
},
|
||||
"6": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?(@.name=~'하늘|날씨')].script",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[0][0].type",
|
||||
"answer": "when_scene_start",
|
||||
"points": 1.6,
|
||||
"desc": "scene start"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][1].type",
|
||||
"$[0][1].params[0].params[0]",
|
||||
"$[0][1].params[1]"
|
||||
],
|
||||
"answer": [
|
||||
"dialog",
|
||||
"아쉽지만 잘했어!",
|
||||
"speak"
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "말하기"
|
||||
},
|
||||
{
|
||||
"ele": "$[1][0].type",
|
||||
"answer": "when_object_click",
|
||||
"points": 1.6,
|
||||
"desc": "오브젝트 클릭 시"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[1][1].type",
|
||||
"$[1][1].params[0]",
|
||||
"$[1][1].params[1].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"add_effect_amount",
|
||||
"brightness",
|
||||
"55"
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "add brightness 55 effect"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[1][2].type",
|
||||
"$[1][2].params[0].params[0]",
|
||||
"$[1][2].params[1]"
|
||||
],
|
||||
"answer": [
|
||||
"dialog",
|
||||
"처음부터 다시 실행합니다.",
|
||||
"speak"
|
||||
],
|
||||
"points": 1.6,
|
||||
"desc": "말하기"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[1][3].type",
|
||||
"$[1][3].params[0].params[0]"
|
||||
],
|
||||
"points": 1.6,
|
||||
"answer": [
|
||||
"wait_second",
|
||||
"2"
|
||||
],
|
||||
"desc": "wait 2 second"
|
||||
},
|
||||
{
|
||||
"ele": "$[1][4].type",
|
||||
"answer": "restart_project",
|
||||
"points": 1.6,
|
||||
"desc": "restart"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
370
2502회 CAT 3급 B형 수시2.json
Normal file
370
2502회 CAT 3급 B형 수시2.json
Normal file
@@ -0,0 +1,370 @@
|
||||
{
|
||||
"1-1": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='꽃밭')]",
|
||||
"points": 2,
|
||||
"desc": "배경 이름 변경"
|
||||
},
|
||||
"1-3": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='당근')]",
|
||||
"points": 2,
|
||||
"desc": "물체 이름 변경"
|
||||
},
|
||||
"1-4": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='하트')]",
|
||||
"points": 2,
|
||||
"desc": "물체 이름 변경"
|
||||
},
|
||||
"1-5": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='토끼')]",
|
||||
"points": 2,
|
||||
"desc": "물체 이름 변경"
|
||||
},
|
||||
"1-6": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='상자')]",
|
||||
"points": 2,
|
||||
"desc": "물체 이름 변경"
|
||||
},
|
||||
"2": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?(@.name=='당근')].script",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[0][0].type",
|
||||
"answer": "when_run_button_click",
|
||||
"points": 2.57,
|
||||
"desc": "시작하기 버튼을 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][1].params[0].params[0]",
|
||||
"points": 2.57,
|
||||
"answer": "45",
|
||||
"desc": "크기 지정"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][2]['params']",
|
||||
"points": 2.57,
|
||||
"answer": [
|
||||
"FORWARD",
|
||||
null
|
||||
],
|
||||
"desc": "물체 앞으로 보내기"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][3].type",
|
||||
"points": 2.57,
|
||||
"answer": "hide",
|
||||
"desc": "숨기기"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][4].params[0]",
|
||||
"answer": null,
|
||||
"points": 2.57,
|
||||
"desc": "반복하기 (계속)"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][4].statements[0][?@.type=='locate_xy'].params[*].params",
|
||||
"answer": [
|
||||
"0",
|
||||
"-100"
|
||||
],
|
||||
"points": 2.57,
|
||||
"desc": "x:0, y:-100 으로 이동"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][4].statements[0][1].type",
|
||||
"points": 2.57,
|
||||
"answer": "show",
|
||||
"desc": "모양보이기"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][4].statements[0][2].params[0].params[0]",
|
||||
"answer": "32",
|
||||
"points": 2.57,
|
||||
"desc": "스페이스(32) 를 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][4].statements[0][2].statements[0][0].params[0].params[0]",
|
||||
"answer": "0.2",
|
||||
"points": 2.57,
|
||||
"desc": "0.2초 기다리기"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][4].statements[0][2].statements[0][1].params[0].params[0]",
|
||||
"$[0][4].statements[0][2].statements[0][1].params[1]"
|
||||
],
|
||||
"answer": [
|
||||
"0.5",
|
||||
"mouse"
|
||||
],
|
||||
"points": 2.57,
|
||||
"desc": "0.5초 동안 마우스 좌표 위치로 이동"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][4].statements[0][3].type",
|
||||
"$[0][4].statements[0][3].params[0].type"
|
||||
],
|
||||
"answer": [
|
||||
"_if",
|
||||
"reach_something"
|
||||
],
|
||||
"points": 2.57,
|
||||
"desc": "if reach something"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][4].statements[0][3].statements[0][0].params[*].params",
|
||||
"answer": [
|
||||
"냠냠!",
|
||||
"0.5"
|
||||
],
|
||||
"points": 2.57,
|
||||
"desc": "dialog_time 냠냠!을 0.5초"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][4].statements[0][4].type",
|
||||
"$[0][4].statements[0][4].params[0].type",
|
||||
"$[0][4].statements[0][4].params[0].params[1]"
|
||||
],
|
||||
"answer": [
|
||||
"_if",
|
||||
"reach_something",
|
||||
"wall"
|
||||
],
|
||||
"points": 2.57,
|
||||
"desc": "if reach something wall"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][4].statements[0][4].statements[0][0].type",
|
||||
"$[0][4].statements[0][4].statements[0][0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"stop_object",
|
||||
"all"
|
||||
],
|
||||
"points": 2.57,
|
||||
"desc": "모든 오브젝트 정지"
|
||||
}
|
||||
]
|
||||
},
|
||||
"3": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?name=~'하트'].script",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[0][0].type",
|
||||
"answer": "when_run_button_click",
|
||||
"points": 2.57,
|
||||
"desc": "시작하기 버튼을 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][1].params[0].params[0]",
|
||||
"answer": "50",
|
||||
"points": 2.57,
|
||||
"desc": "크기 지정"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][2].params[0]",
|
||||
"answer": "FRONT",
|
||||
"points": 2.57,
|
||||
"desc": "맨 앞으로 보내기"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][3].params[0]",
|
||||
"answer": null,
|
||||
"points": 2.57,
|
||||
"desc": "반복하기 (계속)"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][3].statements[0][0].type",
|
||||
"$[0][3].statements[0][0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"locate",
|
||||
"mouse"
|
||||
],
|
||||
"points": 2.57,
|
||||
"desc": "마우스 위치로 이동"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][3].statements[0][1].type",
|
||||
"$[0][3].statements[0][1].params[0]",
|
||||
"$[0][3].statements[0][1].params[1].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"add_effect_amount",
|
||||
"color",
|
||||
"0.5"
|
||||
],
|
||||
"points": 2.57,
|
||||
"desc": "Add Color effect 0.5 duration"
|
||||
}
|
||||
]
|
||||
},
|
||||
"4": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?(@.name=='토끼')].script",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[0][0].type",
|
||||
"answer": "when_run_button_click",
|
||||
"points": 2.57,
|
||||
"desc": "시작하기 버튼을 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][1].params[0].params[0]",
|
||||
"answer": "90",
|
||||
"points": 2.57,
|
||||
"desc": "크기 지정"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][2].params[*].params",
|
||||
"answer": [
|
||||
"0",
|
||||
"60"
|
||||
],
|
||||
"points": 2.57,
|
||||
"desc": "x:0, y:60 으로 이동"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][3].params[0]",
|
||||
"answer": null,
|
||||
"points": 2.57,
|
||||
"desc": "계속 반복하기"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][3].statements[0][0].params[0].params[0]",
|
||||
"$[0][3].statements[0][0].params[1].params[*].params[0]",
|
||||
"$[0][3].statements[0][0].params[2].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"2",
|
||||
"-200",
|
||||
"200",
|
||||
"60"
|
||||
],
|
||||
"points": 2.57,
|
||||
"desc": "2초 동안 무작위로 x:-200~200, y:60"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][3].statements[0][1].type",
|
||||
"$[0][3].statements[0][1].params[0].type"
|
||||
],
|
||||
"answer": [
|
||||
"_if",
|
||||
"reach_something"
|
||||
],
|
||||
"points": 2.57,
|
||||
"desc": "if reach something"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][3].statements[0][1].statements[0][0].params[0].params[0]",
|
||||
"answer": "10",
|
||||
"points": 2.57,
|
||||
"desc": "크기 지정"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][3].statements[0][1].statements[0][1].type",
|
||||
"$[0][3].statements[0][1].statements[0][1].params[0].params[0].type",
|
||||
"$[0][3].statements[0][1].statements[0][1].params[0].params[0].params[3]",
|
||||
"$[0][3].statements[0][1].statements[0][1].params[0].params[1]",
|
||||
"$[0][3].statements[0][1].statements[0][1].params[0].params[2].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"_if",
|
||||
"coordinate_object",
|
||||
"size",
|
||||
"EQUAL",
|
||||
"120"
|
||||
],
|
||||
"points": 2.57,
|
||||
"desc": "비교 오브젝트의 크기가 120과 같을 때"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][3].statements[0][1].statements[0][1].statements[0][0].params[*].params",
|
||||
"answer": [
|
||||
"미션 성공!",
|
||||
"2"
|
||||
],
|
||||
"points": 2.57,
|
||||
"desc": "dialog_time 미션 성공!을 2초"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[0][3].statements[0][1].statements[0][1].statements[0][1].type",
|
||||
"$[0][3].statements[0][1].statements[0][1].statements[0][1].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"stop_object",
|
||||
"all"
|
||||
],
|
||||
"points": 2.57,
|
||||
"desc": "모든 오브젝트 정지"
|
||||
}
|
||||
]
|
||||
},
|
||||
"5": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?name=~'상자'].script",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[0][0].type",
|
||||
"answer": "when_run_button_click",
|
||||
"points": 2.57,
|
||||
"desc": "시작하기 버튼을 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][1].params[0]",
|
||||
"points": 2.57,
|
||||
"answer": "FORWARD",
|
||||
"desc": "물체 앞으로 보내기"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][2].params[*].params",
|
||||
"answer": [
|
||||
"0",
|
||||
"-100"
|
||||
],
|
||||
"points": 2.57,
|
||||
"desc": "x:0, y:-100 으로 이동"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][3].params[0].params[0]",
|
||||
"points": 2.57,
|
||||
"answer": "90",
|
||||
"desc": "크기 지정"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][4].params[*].params",
|
||||
"answer": [
|
||||
"시작!",
|
||||
"0.5"
|
||||
],
|
||||
"points": 2.57,
|
||||
"desc": "dialog_time 시작!을 0.5초"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
BIN
2502회 코딩활용능력 2급 수시4.xlsx
Normal file
BIN
2502회 코딩활용능력 2급 수시4.xlsx
Normal file
Binary file not shown.
382
2503 CAT 3급 A형.json
Normal file
382
2503 CAT 3급 A형.json
Normal file
@@ -0,0 +1,382 @@
|
||||
{
|
||||
"1-1": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='약도')]",
|
||||
"points": 2,
|
||||
"desc": "배경 이름 변경"
|
||||
},
|
||||
"1-3": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='놀이동산')]",
|
||||
"points": 2,
|
||||
"desc": "물체 이름 변경"
|
||||
},
|
||||
"1-4": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='백화점')]",
|
||||
"points": 2,
|
||||
"desc": "물체 이름 변경"
|
||||
},
|
||||
"1-5": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='우리집')]",
|
||||
"points": 2,
|
||||
"desc": "물체 이름 변경"
|
||||
},
|
||||
"1-6": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='어린이')]",
|
||||
"points": 2,
|
||||
"desc": "물체 이름 변경"
|
||||
},
|
||||
"2": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?(@.name=~'놀이동산')].script",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[0][0].type",
|
||||
"answer": "when_run_button_click",
|
||||
"points": 2.43,
|
||||
"desc": "시작하기 버튼을 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][1].params[0].params[0]",
|
||||
"points": 2.43,
|
||||
"answer": "90",
|
||||
"desc": "크기 지정"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][2].params[*].params",
|
||||
"answer": [
|
||||
"-25",
|
||||
"60"
|
||||
],
|
||||
"points": 2.43,
|
||||
"desc": "x:-25, y:60 으로 이동"
|
||||
},
|
||||
{
|
||||
"ele": "$[1][0].params",
|
||||
"points": 2.43,
|
||||
"answer": [
|
||||
null,
|
||||
"49"
|
||||
],
|
||||
"desc": "키보드 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[1][1].type",
|
||||
"$[1][1].params[0]",
|
||||
"$[1][1].params[1].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"add_effect_amount",
|
||||
"color",
|
||||
"30"
|
||||
],
|
||||
"points": 2.43,
|
||||
"desc": "Add Color effect 30 duration"
|
||||
},
|
||||
{
|
||||
"ele": "$[1][2].params[*].params",
|
||||
"answer": [
|
||||
"여기는 놀이동산!",
|
||||
"1"
|
||||
],
|
||||
"points": 2.43,
|
||||
"desc": "dialog_time 여기는 놀이동산 1초 "
|
||||
},
|
||||
{
|
||||
"ele": "$[1][3].type",
|
||||
"answer": "erase_all_effects",
|
||||
"points": 2.43,
|
||||
"desc": "효과 모두 삭제하기"
|
||||
}
|
||||
]
|
||||
},
|
||||
"3": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?(@.name=~'백화점|건물')].script",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[0][0].type",
|
||||
"answer": "when_run_button_click",
|
||||
"points": 2.43,
|
||||
"desc": "시작하기 버튼을 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][1].params[0].params[0]",
|
||||
"points": 2.43,
|
||||
"answer": "50",
|
||||
"desc": "크기 지정"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][2].params[*].params",
|
||||
"answer": [
|
||||
"180",
|
||||
"50"
|
||||
],
|
||||
"points": 2.43,
|
||||
"desc": "x:-25, y:60 으로 이동"
|
||||
},
|
||||
{
|
||||
"ele": "$[1][0].params",
|
||||
"points": 2.43,
|
||||
"answer": [
|
||||
null,
|
||||
"50"
|
||||
],
|
||||
"desc": "키보드 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[1][1].type",
|
||||
"$[1][1].params[0]",
|
||||
"$[1][1].params[1].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"add_effect_amount",
|
||||
"color",
|
||||
"40"
|
||||
],
|
||||
"points": 2.43,
|
||||
"desc": "Add Color effect 30 duration"
|
||||
},
|
||||
{
|
||||
"ele": "$[1][2].params[*].params",
|
||||
"answer": [
|
||||
"여기는 백화점!",
|
||||
"1"
|
||||
],
|
||||
"points": 2.43,
|
||||
"desc": "dialog_time 여기는 놀이동산 1초 "
|
||||
},
|
||||
{
|
||||
"ele": "$[1][3].type",
|
||||
"answer": "erase_all_effects",
|
||||
"points": 2.43,
|
||||
"desc": "효과 모두 삭제하기"
|
||||
}
|
||||
]
|
||||
},
|
||||
"4": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?(@.name=~'우리집|예쁜집')].script",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[0][0].type",
|
||||
"answer": "when_run_button_click",
|
||||
"points": 2.43,
|
||||
"desc": "시작하기 버튼을 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][1].params[0].params[0]",
|
||||
"points": 2.43,
|
||||
"answer": "60",
|
||||
"desc": "크기 지정"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][2].params[*].params",
|
||||
"answer": [
|
||||
"-190",
|
||||
"-90"
|
||||
],
|
||||
"points": 2.43,
|
||||
"desc": "x:-25, y:60 으로 이동"
|
||||
},
|
||||
{
|
||||
"ele": "$[1][0].params",
|
||||
"points": 2.43,
|
||||
"answer": [
|
||||
null,
|
||||
"51"
|
||||
],
|
||||
"desc": "키보드 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[1][1].type",
|
||||
"$[1][1].params[0]",
|
||||
"$[1][1].params[1].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"add_effect_amount",
|
||||
"color",
|
||||
"35"
|
||||
],
|
||||
"points": 2.43,
|
||||
"desc": "Add Color effect 30 duration"
|
||||
},
|
||||
{
|
||||
"ele": "$[1][2].type",
|
||||
"answer": "erase_all_effects",
|
||||
"points": 2.43,
|
||||
"desc": "효과 모두 삭제하기"
|
||||
}
|
||||
]
|
||||
},
|
||||
"5": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?name=~'어린이'].script",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[0][0].type",
|
||||
"answer": "when_run_button_click",
|
||||
"points": 2.43,
|
||||
"desc": "시작하기 버튼을 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][1].params[0].params[0]",
|
||||
"points": 2.57,
|
||||
"answer": "30",
|
||||
"desc": "크기 지정"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][2].params[*].params",
|
||||
"answer": [
|
||||
"-100",
|
||||
"-100"
|
||||
],
|
||||
"points": 2.43,
|
||||
"desc": "x:-25, y:60 으로 이동"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][3].params[*].params",
|
||||
"answer": [
|
||||
"야호! 출발!",
|
||||
"1"
|
||||
],
|
||||
"points": 2.43,
|
||||
"desc": "dialog_time 여기는 놀이동산 1초 "
|
||||
},
|
||||
{
|
||||
"ele": "$[1][0].params",
|
||||
"points": 2.43,
|
||||
"answer": [
|
||||
null,
|
||||
"49"
|
||||
],
|
||||
"desc": "키보드 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[1][1].type",
|
||||
"$[1][1].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"locate_object_time",
|
||||
"2"
|
||||
],
|
||||
"points": 2.43,
|
||||
"desc": "Locate Object 2 sec"
|
||||
},
|
||||
{
|
||||
"ele": "$[1][2].type",
|
||||
"points": 2.43,
|
||||
"answer": "hide",
|
||||
"desc": "숨기기"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[1][3].type",
|
||||
"$[1][3].params[0].params[0]"
|
||||
],
|
||||
"points": 2.43,
|
||||
"answer": [
|
||||
"wait_second",
|
||||
"1"
|
||||
],
|
||||
"desc": "wait second"
|
||||
},
|
||||
{
|
||||
"ele": "$[1][4].type",
|
||||
"points": 2.43,
|
||||
"answer": "show",
|
||||
"desc": "보이기"
|
||||
},
|
||||
{
|
||||
"ele": "$[2][0].params",
|
||||
"points": 2.43,
|
||||
"answer": [
|
||||
null,
|
||||
"50"
|
||||
],
|
||||
"desc": "키보드 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[2][1].type",
|
||||
"$[2][1].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"locate_object_time",
|
||||
"2"
|
||||
],
|
||||
"points": 2.43,
|
||||
"desc": "Locate Object 2 sec"
|
||||
},
|
||||
{
|
||||
"ele": "$[2][2].type",
|
||||
"points": 2.43,
|
||||
"answer": "hide",
|
||||
"desc": "숨기기"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[2][3].type",
|
||||
"$[2][3].params[0].params[0]"
|
||||
],
|
||||
"points": 2.43,
|
||||
"answer": [
|
||||
"wait_second",
|
||||
"1"
|
||||
],
|
||||
"desc": "wait second"
|
||||
},
|
||||
{
|
||||
"ele": "$[2][4].type",
|
||||
"points": 2.43,
|
||||
"answer": "show",
|
||||
"desc": "보이기"
|
||||
},
|
||||
{
|
||||
"ele": "$[3][0].params",
|
||||
"points": 2.43,
|
||||
"answer": [
|
||||
null,
|
||||
"51"
|
||||
],
|
||||
"desc": "키보드 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"ele": [
|
||||
"$[3][1].type",
|
||||
"$[3][1].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"locate_object_time",
|
||||
"2"
|
||||
],
|
||||
"points": 2.43,
|
||||
"desc": "Locate Object 2 sec"
|
||||
},
|
||||
{
|
||||
"ele": "$[3][2].params[*].params",
|
||||
"answer": [
|
||||
"다녀왔습니다!",
|
||||
"1"
|
||||
],
|
||||
"points": 2.43,
|
||||
"desc": "dialog_time 여기는 놀이동산 1초 "
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
1127
2503CAT3A.log
Normal file
1127
2503CAT3A.log
Normal file
File diff suppressed because it is too large
Load Diff
14
README.md
14
README.md
@@ -1,4 +1,16 @@
|
||||
# Entry 채점 프로그램
|
||||
|
||||
### main.py
|
||||
scoring.json 기준표 작성
|
||||
scoring.json 기준표 작성 (샘플 파일)
|
||||
|
||||
1. 채점용 답안 파일 복사 후 .ent 파일 .zip 으로 변경
|
||||
2. 변경된 압축 파일 디렉토리 포함해서 압축 해제
|
||||
|
||||
> 채점 디렉토리 구조의 예
|
||||
> 2502 CAT 3급 수시2/학생명/temp/project.json 채점
|
||||
>
|
||||
|
||||
|
||||
### copyFiles.py
|
||||
특정 디렉토리의 .ent 파일을 타겟 디렉토리로 복사
|
||||
복사 시 copy_ent_files 함수 확인
|
||||
@@ -42,8 +42,8 @@ def copy_ent_files(source_root, target_root):
|
||||
print(f"Copied {source_file_path} to {target_file_path}")
|
||||
|
||||
# 사용법
|
||||
source_directory = r"/Users/waterdrw/Downloads/제2502회 코딩활용능력 2급 수시4_답안파일" # 원본 디렉토리 경로
|
||||
target_directory = r"./output/"
|
||||
source_directory = r"/Users/waterdrw/Downloads/제2503회 코딩활용능력 3급 정기검정 답안파일" # 원본 디렉토리 경로
|
||||
target_directory = r"./output/2503 CAT 3급 A형"
|
||||
target_directory_a = r"./output/A" # '1교시'의 타겟 경로
|
||||
target_directory_b = r"./output/B" # '2교시'의 타겟 경로
|
||||
target_directory_c = r"./output/C" # '3교시'의 타겟 경로
|
||||
|
||||
79
main-김세연.log
Normal file
79
main-김세연.log
Normal file
@@ -0,0 +1,79 @@
|
||||
|
||||
Processing: output/2502 CAT 2급 A형/cas-000549-김세연/temp/project.json
|
||||
example: 1-1
|
||||
Element '$..objects[?(@.name=='들길')]' not found
|
||||
example: 1-2
|
||||
Element '$..objects[?(@.name=='하늘')]' not found
|
||||
example: 1-3
|
||||
Element '$..objects[?(@.name=='나무')]' not found
|
||||
example: 1-4
|
||||
Element '$..objects[?(@.name=='돌')]' not found
|
||||
example: 1-5
|
||||
Element '$..objects[?(@.name=='행인')]' not found
|
||||
example: 1-6
|
||||
Element '$..objects[?(@.name=='마라토너')]' not found
|
||||
example: 2
|
||||
2-1: when_run_button_click == when_run_button_click
|
||||
2-2: hide == hide
|
||||
2-3: ['repeat_inf', 'None'] == ['repeat_inf', 'None']
|
||||
2-4: ['create_clone', 'self'] == ['create_clone', 'self']
|
||||
2-5: ['wait_second', 'calc_rand', '1', '3'] == ['wait_second', 'calc_rand', '1', '3']
|
||||
2-6: when_clone_start == when_clone_start
|
||||
2-7: ['locate_xy', '240', '-20'] == ['locate_xy', '240', '-20']
|
||||
2-8: show == show
|
||||
2-9: ['repeat_while_true', 'x', 'LESS', '-240'] == ['repeat_while_true', 'x', 'LESS', '-240']
|
||||
2-10: ['move_x', '-3'] == ['move_x', '-3']
|
||||
2-11: delete_clone == delete_clone
|
||||
example: 3
|
||||
3-1: Script Not exist
|
||||
3-1: Script Not exist
|
||||
3-1: Script Not exist
|
||||
3-1: Script Not exist
|
||||
3-1: Script Not exist
|
||||
3-1: Script Not exist
|
||||
3-1: Script Not exist
|
||||
3-1: Script Not exist
|
||||
3-1: Script Not exist
|
||||
3-1: Script Not exist
|
||||
3-1: Script Not exist
|
||||
3-1: Script Not exist
|
||||
example: 4
|
||||
4-1: when_run_button_click == when_run_button_click
|
||||
4-2: ['locate_xy', '240', '-30'] == ['locate_xy', '240', '-30']
|
||||
4-3: ['repeat_inf', 'None'] == ['repeat_inf', 'None']
|
||||
4-4: ['move_direction', '-1'] == ['move_direction', '-1']
|
||||
example: 28
|
||||
elements found for $.messages[?(@.name=='넘어짐')]
|
||||
$.messages[?(@.name=='넘어짐')] found
|
||||
example: 5
|
||||
5-1: when_run_button_click == when_run_button_click
|
||||
5-2: flip_y == flip_y
|
||||
5-3: ['locate_xy', '-150', '-70'] == ['locate_xy', '-150', '-70']
|
||||
5-4: ['repeat_inf', 'None'] == ['repeat_inf', 'None']
|
||||
5-5: next == next
|
||||
5-6: ['wait_second', '0.1'] == ['wait_second', '0.1']
|
||||
5-7: ['_if', 'is_press_some_key', '32'] == ['_if', 'is_press_some_key', '32']
|
||||
5-8: ['repeat_basic', '20'] == ['repeat_basic', '20']
|
||||
5-9: ['move_y', '5'] == ['move_y', '5']
|
||||
5-10: ['repeat_basic', '20'] == ['repeat_basic', '20']
|
||||
5-11: ['move_y', '-5'] == ['move_y', '-5']
|
||||
5-12: ['_if', 'reach_something'] == ['_if', 'reach_something']
|
||||
5-13: message_cast == message_cast
|
||||
5-14: when_message_cast == when_message_cast
|
||||
5-15: ['rotate_relative', 'angle', '40'] == ['rotate_relative', 'angle', '40']
|
||||
5-16: ['locate_xy_time', '0.2', '-140', '-100'] == ['locate_xy_time', '0.2', '-140', '-100']
|
||||
5-17: ['dialog', '아야!', 'speak'] == ['dialog', '아야!', 'speak']
|
||||
5-18: ['stop_object', 'otherThread'] == ['stop_object', 'otherThread']
|
||||
5-19: ['wait_second', '1'] == ['wait_second', '1']
|
||||
5-20: start_neighbor_scene == start_neighbor_scene
|
||||
example: 6
|
||||
6-1: when_scene_start == when_scene_start
|
||||
6-2: ['dialog', '아쉽지만 잘했어!', 'speak'] == ['dialog', '아쉽지만 잘했어!', 'speak']
|
||||
6-3: when_object_click == when_object_click
|
||||
6-4: ['add_effect_amount', 'brightness', '55'] == ['add_effect_amount', 'brightness', '55']
|
||||
6-5: ['dialog', '처음부터 다시 실행합니다.', 'speak'] == ['dialog', '처음부터 다시 실행합니다.', 'speak']
|
||||
6-6: ['wait_second', '2'] == ['wait_second', '2']
|
||||
6-7: restart_project == restart_project
|
||||
Total Points for ['cas-000549-김세연', 0, 0, 0, 0, 0, 0, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, '확인 필요', '확인 필요', '확인 필요', '확인 필요', '확인 필요', '확인 필요', '확인 필요', '확인 필요', '확인 필요', '확인 필요', '확인 필요', '확인 필요', 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 1.6, 68.80000000000001]
|
||||
|
||||
Results saved to output/2502 CAT 2급 A형/cas-000549-김세연/results.xlsx
|
||||
210
main.py
210
main.py
@@ -1,10 +1,14 @@
|
||||
from jsonpath_ng.ext import parse
|
||||
import json
|
||||
from itertools import chain
|
||||
import os
|
||||
import pandas as pd # 추가된 import
|
||||
import unicodedata # 상단에 import 추가
|
||||
import re # 상단에 추가
|
||||
|
||||
# 파일 경로 설정
|
||||
project_json_path = './sample/제2502회 코딩활용능력 2급 B형 정답/project.json'
|
||||
scoring_json_path = './scoring.json'
|
||||
project_json_path = 'output/2503 CAT 3급 A형'
|
||||
scoring_json_path = './2503 CAT 3급 A형.json'
|
||||
|
||||
# JSON 파일 읽기
|
||||
def read_json(file_path):
|
||||
@@ -36,21 +40,101 @@ def find_list_element(data, jsonpath_expr_list):
|
||||
|
||||
return result
|
||||
|
||||
# 스크립트 채점 진행 전 스크립트 블럭 순서가 when_run_button_click 1번째, when_clone_start 2번째 배열에 없으면
|
||||
# 리스트 순서 스왑해서 각각 0, 1번 순서로 배치될 수 있도록 함
|
||||
# when_scene_start 1번째, when_message_cast 2번째 동일한 순서로 리스트 순서 스왑해서 정렬
|
||||
def swap_script(origin):
|
||||
"""스크립트 블록 순서 정렬 함수"""
|
||||
if not origin or len(origin) == 0:
|
||||
return origin
|
||||
|
||||
# 스크립트 블록 분류를 위한 임시 저장소
|
||||
run_button_block = None
|
||||
key_press_blocks = []
|
||||
clone_start_block = None
|
||||
message_cast_block = None
|
||||
other_blocks = []
|
||||
|
||||
# 각 블록을 타입별로 분류
|
||||
for i, block in enumerate(origin):
|
||||
if not block or len(block) == 0:
|
||||
continue
|
||||
|
||||
# main 함수
|
||||
def main():
|
||||
project_data = read_json(project_json_path)
|
||||
scoring_data = read_json(scoring_json_path)
|
||||
block_type = block[0].get("type")
|
||||
|
||||
# 기존 로직: run_button과 scene_start 처리
|
||||
if (block_type == "when_run_button_click" or block_type == "when_scene_start") and i > 0:
|
||||
print(f"swap script run button or scene start")
|
||||
swap = origin[0]
|
||||
origin[0] = origin[i]
|
||||
origin[i] = swap
|
||||
|
||||
# 기존 로직: clone_start와 message_cast 처리
|
||||
elif (block_type == "when_clone_start" or block_type == "when_message_cast") and i > 0:
|
||||
print(f"swap script clone start or msg cast")
|
||||
swap = origin[1]
|
||||
origin[1] = origin[i]
|
||||
origin[i] = swap
|
||||
|
||||
# 새로운 로직: 키 이벤트 처리
|
||||
if block_type == "when_run_button_click":
|
||||
run_button_block = block
|
||||
elif block_type == "when_some_key_pressed":
|
||||
# params[1]에서 키 값 확인 (49, 50, 51) 아스키코드 값이므로 필요하면 추가 가능
|
||||
key_value = block[0].get("params")[1]
|
||||
if key_value in ["49", "50", "51"]:
|
||||
key_press_blocks.append((key_value, block))
|
||||
elif block_type == "when_clone_start":
|
||||
clone_start_block = block
|
||||
elif block_type == "when_message_cast":
|
||||
message_cast_block = block
|
||||
else:
|
||||
other_blocks.append(block)
|
||||
|
||||
# 결과 배열 재구성
|
||||
result = []
|
||||
|
||||
# 1. when_run_button_click 블록을 첫 번째로 추가
|
||||
if run_button_block:
|
||||
result.append(run_button_block)
|
||||
|
||||
# 2. when_some_key_pressed 블록들을 키 값 순서대로 정렬하여 추가
|
||||
key_press_blocks.sort(key=lambda x: int(x[0]) if x[0] else 0)
|
||||
result.extend([block for _, block in key_press_blocks])
|
||||
|
||||
# 3. clone_start와 message_cast 블록 추가
|
||||
if clone_start_block:
|
||||
result.append(clone_start_block)
|
||||
if message_cast_block:
|
||||
result.append(message_cast_block)
|
||||
|
||||
# 4. 나머지 블록 추가
|
||||
result.extend(other_blocks)
|
||||
|
||||
# 결과가 비어있으면 원본 반환
|
||||
return result if result else origin
|
||||
|
||||
def clean_string(text):
|
||||
"""문자열 끝의 . 또는 ! 제거"""
|
||||
if isinstance(text, str):
|
||||
# 문자열 끝의 . 또는 ! 제거
|
||||
return re.sub(r'', '', text.strip())
|
||||
return text
|
||||
|
||||
def convert_to_str(value):
|
||||
"""값을 문자열로 변환"""
|
||||
if isinstance(value, (list, tuple)):
|
||||
return [convert_to_str(v) for v in value]
|
||||
return str(value)
|
||||
|
||||
def process_project(project_data, scoring_data):
|
||||
total_points = 0
|
||||
points = []
|
||||
|
||||
for key, value in scoring_data.items():
|
||||
ele = value.get('ele')
|
||||
type = value.get('type')
|
||||
blocks = value.get('blocks')
|
||||
# 정답
|
||||
answer = value.get('answer')
|
||||
|
||||
print(f"example: {key}")
|
||||
@@ -58,15 +142,22 @@ def main():
|
||||
exists = find_element(project_data, ele)
|
||||
if exists:
|
||||
print(f"elements found for {ele}")
|
||||
# scene type의 경우 문자열 변환
|
||||
exists = [convert_to_str(x) for x in exists]
|
||||
if exists == answer:
|
||||
total_points += value.get('points')
|
||||
points.append(value.get('points'))
|
||||
|
||||
elif exists and answer == None:
|
||||
total_points += value.get('points')
|
||||
points.append(value.get('points'))
|
||||
print(f"{ele} found ");
|
||||
else :
|
||||
else:
|
||||
points.append(0)
|
||||
print(f"{exists} not found");
|
||||
else:
|
||||
print(f"Element '{ele}' exists in project.json: {exists}")
|
||||
print(f"Element '{ele}' not found")
|
||||
points.append(0)
|
||||
|
||||
if type == "script":
|
||||
exists = find_script_element(project_data, ele)
|
||||
@@ -75,49 +166,118 @@ def main():
|
||||
temp = None
|
||||
else:
|
||||
temp = json.loads(exists)
|
||||
temp = swap_script(temp)
|
||||
|
||||
innerKey= 1;
|
||||
innerKey = 1
|
||||
for block in blocks:
|
||||
innerType = block.get('type')
|
||||
|
||||
if temp == None:
|
||||
print(f"{key}-{innerKey}: Script Not exist")
|
||||
innerKey = innerKey + 1
|
||||
points.append("확인 필요")
|
||||
continue
|
||||
|
||||
if innerType == "list":
|
||||
elif innerType == "list":
|
||||
block_exists = find_list_element(temp, block.get('ele'))
|
||||
|
||||
else:
|
||||
block_exists = find_element(temp, block.get('ele'))
|
||||
|
||||
# 정답
|
||||
answer = block.get('answer', None)
|
||||
|
||||
if isinstance(answer, list):
|
||||
flat_matches = list(chain.from_iterable(block_exists))
|
||||
|
||||
if block_exists and isinstance(answer, list):
|
||||
# 리스트의 모든 요소를 문자열로 변환
|
||||
flat_matches = [convert_to_str(x) for x in list(chain.from_iterable(block_exists))]
|
||||
else:
|
||||
flat_matches = block_exists[0]
|
||||
if not block_exists:
|
||||
flat_matches = None
|
||||
else:
|
||||
# 단일 값을 문자열로 변환
|
||||
flat_matches = convert_to_str(block_exists[0])
|
||||
|
||||
|
||||
# 블록에 따라 params 값이나 statements 값이 있는 경우 처리 추가 필요
|
||||
if block_exists:
|
||||
if answer is not None and answer != flat_matches:
|
||||
print(f"{key}-{innerKey}: {answer} != {flat_matches}")
|
||||
elif answer is not None and answer == flat_matches:
|
||||
print(f"{key}-{innerKey}: {answer} == {flat_matches}")
|
||||
# answer도 문자열로 변환하여 비교
|
||||
str_answer = convert_to_str(answer) if answer is not None else None
|
||||
if answer is not None and str_answer != flat_matches:
|
||||
print(f"{key}-{innerKey}: {str_answer} != {flat_matches}")
|
||||
points.append(0)
|
||||
elif answer is not None and str_answer == flat_matches:
|
||||
print(f"{key}-{innerKey}: {str_answer} == {flat_matches}")
|
||||
total_points += block.get('points')
|
||||
points.append(block.get('points'))
|
||||
elif answer is None and block_exists:
|
||||
total_points += block.get('points')
|
||||
points.append(block.get('points'))
|
||||
print(f"{key}-{innerKey}: exist ele: {block_exists}")
|
||||
else:
|
||||
print(f"No elements found for {block.get('ele')}")
|
||||
points.append(0)
|
||||
|
||||
innerKey = innerKey + 1
|
||||
|
||||
print(f"Total Points: {total_points}")
|
||||
points.append(total_points)
|
||||
return points
|
||||
|
||||
def normalize_path(path):
|
||||
"""한글 경로명을 NFC 방식으로 정규화"""
|
||||
return unicodedata.normalize('NFC', path)
|
||||
|
||||
def main():
|
||||
scoring_data = read_json(scoring_json_path)
|
||||
student_score_list = []
|
||||
|
||||
# 컬럼명 생성
|
||||
columns = ['학생명']
|
||||
idx = 1
|
||||
for key in scoring_data.keys():
|
||||
if scoring_data[key].get('type') == 'scene':
|
||||
columns.append(f'{idx}')
|
||||
idx = idx + 1
|
||||
elif scoring_data[key].get('type') == 'script':
|
||||
for i in range(len(scoring_data[key].get('blocks', []))):
|
||||
columns.append(f'{idx}')
|
||||
idx = idx + 1
|
||||
|
||||
columns.append('총점')
|
||||
|
||||
# os.walk 결과를 리스트로 변환하고 정렬
|
||||
walk_results = []
|
||||
for root, dirs, files in os.walk(project_json_path):
|
||||
# 디렉토리명 정규화
|
||||
normalized_root = normalize_path(root)
|
||||
normalized_dirs = [normalize_path(d) for d in dirs]
|
||||
normalized_files = [normalize_path(f) for f in files]
|
||||
|
||||
normalized_dirs.sort() # 정규화된 디렉토리 정렬
|
||||
walk_results.append((normalized_root, normalized_dirs, normalized_files))
|
||||
|
||||
# 정렬된 결과를 바탕으로 처리
|
||||
for root, dirs, files in sorted(walk_results):
|
||||
for file in sorted(files): # 파일도 정렬
|
||||
if file == 'project.json':
|
||||
full_path = os.path.join(root, file)
|
||||
print(f"\nProcessing: {full_path}")
|
||||
try:
|
||||
# 디렉토리 패스 내에 학생 이름만 뽑아서 엑셀 컬럼 명으로 추가
|
||||
# output/cas-000040-이지원/temp/project.json
|
||||
student_id = normalize_path(full_path.split('/')[2])
|
||||
project_data = read_json(full_path)
|
||||
points = process_project(project_data, scoring_data)
|
||||
points.insert(0, student_id)
|
||||
student_score_list.append(points)
|
||||
print(f"Total Points for {points}")
|
||||
except Exception as e:
|
||||
print(f"Error processing {full_path}: {str(e)}")
|
||||
continue
|
||||
|
||||
# DataFrame 생성 및 엑셀 저장
|
||||
df = pd.DataFrame(student_score_list, columns=columns).transpose()
|
||||
df.columns = df.iloc[0]
|
||||
df = df[1:]
|
||||
|
||||
excel_path = project_json_path + '/' + 'results.xlsx'
|
||||
|
||||
df.to_excel(excel_path, index=False)
|
||||
print(f"\nResults saved to {excel_path}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
BIN
results.xlsx
Normal file
BIN
results.xlsx
Normal file
Binary file not shown.
283
scoring.json
283
scoring.json
@@ -1,29 +1,39 @@
|
||||
{
|
||||
"1-1": {
|
||||
"type": "scene",
|
||||
"ele": "$.scenes[0].name",
|
||||
"answer": "꽃밭",
|
||||
"points": 1.77,
|
||||
"desc": "장면 1 이름 변경"
|
||||
"ele": "$..objects[?(@.name=='꽃밭')]",
|
||||
"points": 1.7,
|
||||
"desc": "배경 이름 변경"
|
||||
},
|
||||
"1-2": {
|
||||
"type": "scene",
|
||||
"ele": "$.scenes[1].name",
|
||||
"answer": "숲속",
|
||||
"points": 1.77,
|
||||
"desc": "장면 2 이름 변경"
|
||||
"ele": "$..objects[?(@.name=='숲속')]",
|
||||
"points": 1.7,
|
||||
"desc": "배경 이름 변경"
|
||||
},
|
||||
"1-3": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='당근')]",
|
||||
"points": 1.77,
|
||||
"desc": "장면 2 이름 변경"
|
||||
"points": 1.7,
|
||||
"desc": "물체 이름 변경"
|
||||
},
|
||||
"1-4": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='하트')]",
|
||||
"points": 1.77,
|
||||
"desc": "장면 2 이름 변경"
|
||||
"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",
|
||||
@@ -89,7 +99,7 @@
|
||||
"1"
|
||||
],
|
||||
"points": 1.77,
|
||||
"desc": "x:0, y:-100 으로 이동"
|
||||
"desc": "변수가 1보다 클때까지 반복"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][3].statements[0][?@.type=='locate_xy'].params[*].params",
|
||||
@@ -169,18 +179,13 @@
|
||||
"ele": "$[0][5].type",
|
||||
"answer": "hide",
|
||||
"points": 1.77,
|
||||
"desc": "신호 보내기"
|
||||
"desc": "숨기기"
|
||||
}
|
||||
]
|
||||
},
|
||||
"3": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?(@.name=='하트')].script",
|
||||
"blocks": []
|
||||
},
|
||||
"5": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?(@.name=='상자')].script",
|
||||
"ele": "$.objects[?name=~'하트'].script",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[0][0].type",
|
||||
@@ -189,7 +194,171 @@
|
||||
"desc": "시작하기 버튼을 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"ele": "$[*][?(@.type=='change_object_index')].params[0]",
|
||||
"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": "물체 앞으로 보내기"
|
||||
@@ -231,5 +400,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": "처음부터 다시 시작하기"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
821
scripts.json
821
scripts.json
@@ -1,9 +1,9 @@
|
||||
[
|
||||
[
|
||||
{
|
||||
"id": "om8f",
|
||||
"id": "vlyg",
|
||||
"x": 50,
|
||||
"y": 70,
|
||||
"y": 30,
|
||||
"type": "when_run_button_click",
|
||||
"params": [
|
||||
null
|
||||
@@ -18,18 +18,18 @@
|
||||
"extensions": []
|
||||
},
|
||||
{
|
||||
"id": "y31p",
|
||||
"id": "wqvc",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "set_scale_size",
|
||||
"params": [
|
||||
{
|
||||
"id": "vohi",
|
||||
"id": "7qfb",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "number",
|
||||
"params": [
|
||||
"45"
|
||||
"30"
|
||||
],
|
||||
"statements": [],
|
||||
"movable": null,
|
||||
@@ -52,71 +52,35 @@
|
||||
"extensions": []
|
||||
},
|
||||
{
|
||||
"id": "ybwv",
|
||||
"id": "kmdb",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "change_object_index",
|
||||
"params": [
|
||||
"FORWARD",
|
||||
null
|
||||
],
|
||||
"statements": [],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
},
|
||||
{
|
||||
"id": "g6zh",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "repeat_while_true",
|
||||
"type": "locate_xy",
|
||||
"params": [
|
||||
{
|
||||
"id": "t4xt",
|
||||
"id": "yry5",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "boolean_basic_operator",
|
||||
"type": "number",
|
||||
"params": [
|
||||
{
|
||||
"id": "fe87",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "get_variable",
|
||||
"params": [
|
||||
"ofvf",
|
||||
null
|
||||
],
|
||||
"statements": [],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
},
|
||||
"LESS",
|
||||
{
|
||||
"id": "7eqj",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "text",
|
||||
"params": [
|
||||
"1"
|
||||
],
|
||||
"statements": [],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
}
|
||||
"-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,
|
||||
@@ -127,347 +91,6 @@
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
},
|
||||
"until",
|
||||
null
|
||||
],
|
||||
"statements": [
|
||||
[
|
||||
{
|
||||
"id": "6dad",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "locate_xy",
|
||||
"params": [
|
||||
{
|
||||
"id": "bj58",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "number",
|
||||
"params": [
|
||||
"0"
|
||||
],
|
||||
"statements": [],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
},
|
||||
{
|
||||
"id": "oeup",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "number",
|
||||
"params": [
|
||||
"-120"
|
||||
],
|
||||
"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": "bdne",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "_if",
|
||||
"params": [
|
||||
{
|
||||
"id": "kzo7",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "is_press_some_key",
|
||||
"params": [
|
||||
"32",
|
||||
null
|
||||
],
|
||||
"statements": [],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
},
|
||||
null
|
||||
],
|
||||
"statements": [
|
||||
[
|
||||
{
|
||||
"id": "skya",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "wait_second",
|
||||
"params": [
|
||||
{
|
||||
"id": "lw8x",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "number",
|
||||
"params": [
|
||||
"0.2"
|
||||
],
|
||||
"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": "cwhq",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "change_variable",
|
||||
"params": [
|
||||
"ofvf",
|
||||
{
|
||||
"id": "zzzs",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "text",
|
||||
"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": "fi2n",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "locate_object_time",
|
||||
"params": [
|
||||
{
|
||||
"id": "kwih",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "number",
|
||||
"params": [
|
||||
"0.5"
|
||||
],
|
||||
"statements": [],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
},
|
||||
"mouse",
|
||||
null
|
||||
],
|
||||
"statements": [],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
}
|
||||
]
|
||||
],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
},
|
||||
{
|
||||
"id": "w10m",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "_if",
|
||||
"params": [
|
||||
{
|
||||
"id": "3mja",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "reach_something",
|
||||
"params": [
|
||||
null,
|
||||
"1dcp",
|
||||
null
|
||||
],
|
||||
"statements": [],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
},
|
||||
null
|
||||
],
|
||||
"statements": [
|
||||
[
|
||||
{
|
||||
"id": "1o2h",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "change_variable",
|
||||
"params": [
|
||||
"cyzm",
|
||||
{
|
||||
"id": "v14q",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "text",
|
||||
"params": [
|
||||
"10"
|
||||
],
|
||||
"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": "f6lo",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "dialog_time",
|
||||
"params": [
|
||||
{
|
||||
"id": "sydb",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "text",
|
||||
"params": [
|
||||
"성공!"
|
||||
],
|
||||
"statements": [],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
},
|
||||
{
|
||||
"id": "qxvc",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "number",
|
||||
"params": [
|
||||
"0.5"
|
||||
],
|
||||
"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": []
|
||||
}
|
||||
]
|
||||
],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
}
|
||||
]
|
||||
],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
},
|
||||
{
|
||||
"id": "b4zg",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "message_cast",
|
||||
"params": [
|
||||
"4tjs",
|
||||
null
|
||||
],
|
||||
"statements": [],
|
||||
@@ -480,7 +103,114 @@
|
||||
"extensions": []
|
||||
},
|
||||
{
|
||||
"id": "937f",
|
||||
"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",
|
||||
@@ -495,6 +225,287 @@
|
||||
"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
temp.csv
Normal file
1
temp.csv
Normal file
@@ -0,0 +1 @@
|
||||
'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
|
||||
|
Reference in New Issue
Block a user