엔트리 채점 기능 수정 및 채점표 작성
This commit is contained in:
90
2401B.json
Normal file
90
2401B.json
Normal file
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"1-1": {
|
||||
"type": "scene",
|
||||
"ele": "$.scenes[0].name",
|
||||
"answer": "꽃밭",
|
||||
"points": 1.7,
|
||||
"desc": "장면 1 이름 변경"
|
||||
},
|
||||
"1-2": {
|
||||
"type": "scene",
|
||||
"ele": "$.scenes[1].name",
|
||||
"answer": "숲속",
|
||||
"points": 1.7,
|
||||
"desc": "장면 2 이름 변경"
|
||||
},
|
||||
"1-3": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='당근')]",
|
||||
"points": 1.7,
|
||||
"desc": "장면 2 이름 변경"
|
||||
},
|
||||
"1-4": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='하트')]",
|
||||
"points": 1.7,
|
||||
"desc": "장면 2 이름 변경"
|
||||
},
|
||||
"2": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?(@.name=='미어캣')].script[*]",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[*][?(@.type=='when_run_button_click')]",
|
||||
"points": 1.33,
|
||||
"desc": "시작하기 버튼을 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"ele": "$[*][?(@.type=='hide')]",
|
||||
"points": 1.33,
|
||||
"desc": "모양 숨기기 블럭"
|
||||
},
|
||||
{
|
||||
"ele": "$[*][?(@.type=='set_scale_size')].params[0].params[0]",
|
||||
"answer": "60",
|
||||
"points": 1.33,
|
||||
"desc": "크기 60으로 설정"
|
||||
},
|
||||
{
|
||||
"ele": "$[*][?(@.type=='repeat_inf')]",
|
||||
"points": 1.33,
|
||||
"desc": "반복하기"
|
||||
},
|
||||
{
|
||||
"ele": "$[*][?(@.type=='repeat_inf')].statements[0][0].params[*].params[?(@.type=='number')].params",
|
||||
"answer": [
|
||||
"-200",
|
||||
"200",
|
||||
"-100",
|
||||
"100"
|
||||
],
|
||||
"points": 1.33,
|
||||
"desc": "x"
|
||||
},
|
||||
{
|
||||
"ele": "$[*][?(@.type=='repeat_inf')].statements[*][1].type",
|
||||
"answer": "wait_second",
|
||||
"points": 1.33,
|
||||
"desc": "1초 기다리기"
|
||||
},
|
||||
{
|
||||
"ele": "$[*][?(@.type=='repeat_inf')].statements[*][2].type",
|
||||
"answer": "show",
|
||||
"points": 1.33,
|
||||
"desc": "모양 보이기"
|
||||
},
|
||||
{
|
||||
"ele": "$[*][?(@.type=='repeat_inf')].statements[*][3].type",
|
||||
"answer": "wait_second",
|
||||
"points": 1.33,
|
||||
"desc": "1초 기다리기"
|
||||
},
|
||||
{
|
||||
"ele": "$[*][?(@.type=='repeat_inf')].statements[*][4].type",
|
||||
"answer": "hide",
|
||||
"points": 1.33,
|
||||
"desc": "모양 숨기기"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
51
copyFiles.py
Normal file
51
copyFiles.py
Normal file
@@ -0,0 +1,51 @@
|
||||
import os
|
||||
import shutil
|
||||
import unicodedata
|
||||
|
||||
def copy_dic_subdirs(source_root, target_root_b, target_root_c):
|
||||
for root, dirs, files in os.walk(source_root):
|
||||
for dir_name in dirs:
|
||||
|
||||
parent_dir = os.path.basename(os.path.dirname(os.path.join(root, dir_name)))
|
||||
target_root = None
|
||||
parent_dir = unicodedata.normalize('NFC', parent_dir)
|
||||
|
||||
# 부모 디렉토리가 '2교시'인지, '3교시'인지 확인
|
||||
if parent_dir == '1교시':
|
||||
target_root = target_root_b
|
||||
elif parent_dir == '2교시':
|
||||
target_root = target_root_c
|
||||
|
||||
if target_root:
|
||||
source_dic_path = os.path.join(root, dir_name)
|
||||
target_dic_path = os.path.join(target_root, dir_name)
|
||||
|
||||
# DIC 하위 디렉토리와 파일 복사
|
||||
shutil.copytree(source_dic_path, target_dic_path, dirs_exist_ok=True)
|
||||
print(f"Copied {source_dic_path} to {target_dic_path}")
|
||||
|
||||
else:
|
||||
print(f"Skipping {dir_name} under {parent_dir}, as it doesn't match '2교시' or '3교시'.")
|
||||
|
||||
def copy_ent_files(source_root, target_root):
|
||||
# 대상 디렉토리가 없으면 생성
|
||||
os.makedirs(target_root, exist_ok=True)
|
||||
|
||||
for root, dirs, files in os.walk(source_root):
|
||||
for file in files:
|
||||
if file.endswith('.ent'):
|
||||
source_file_path = os.path.join(root, file)
|
||||
target_file_path = os.path.join(target_root, file)
|
||||
|
||||
# 파일 복사
|
||||
shutil.copy2(source_file_path, target_file_path)
|
||||
print(f"Copied {source_file_path} to {target_file_path}")
|
||||
|
||||
# 사용법
|
||||
source_directory = r"/Users/waterdrw/Downloads/제2502회 코딩활용능력 2급 수시4_답안파일" # 원본 디렉토리 경로
|
||||
target_directory = r"./output/"
|
||||
target_directory_a = r"./output/A" # '1교시'의 타겟 경로
|
||||
target_directory_b = r"./output/B" # '2교시'의 타겟 경로
|
||||
target_directory_c = r"./output/C" # '3교시'의 타겟 경로
|
||||
|
||||
copy_ent_files(source_directory, target_directory)
|
||||
82
jsonPathTest.py
Normal file
82
jsonPathTest.py
Normal file
@@ -0,0 +1,82 @@
|
||||
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("❌ 해당 요소를 찾을 수 없습니다.")
|
||||
80
main.py
80
main.py
@@ -1,8 +1,9 @@
|
||||
from jsonpath_ng.ext import parse
|
||||
import json
|
||||
from itertools import chain
|
||||
|
||||
# 파일 경로 설정
|
||||
project_json_path = './sample/제2410회 코딩활용능력 2급 B형 정답/project.json'
|
||||
project_json_path = './sample/제2502회 코딩활용능력 2급 B형 정답/project.json'
|
||||
scoring_json_path = './scoring.json'
|
||||
|
||||
# JSON 파일 읽기
|
||||
@@ -20,8 +21,21 @@ def find_script_element(project_data, jsonpath_expr):
|
||||
jsonpath_expr = parse(jsonpath_expr)
|
||||
match = jsonpath_expr.find(project_data)
|
||||
|
||||
if not match:
|
||||
return None
|
||||
|
||||
return match[0].value
|
||||
|
||||
# jsonpath_expr_list 로 넘어온 jsonpath들을 하나씩 parse 해주고 결과를 result 리스트로 반환
|
||||
def find_list_element(data, jsonpath_expr_list):
|
||||
result = []
|
||||
|
||||
for jsonpath_expr in jsonpath_expr_list:
|
||||
jsonpath_expr = parse(jsonpath_expr)
|
||||
result.append([match.value for match in jsonpath_expr.find(data)])
|
||||
|
||||
return result
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,27 +50,71 @@ def main():
|
||||
ele = value.get('ele')
|
||||
type = value.get('type')
|
||||
blocks = value.get('blocks')
|
||||
# 정답
|
||||
answer = value.get('answer')
|
||||
|
||||
print(f"example: {key}")
|
||||
if type == "scene":
|
||||
exists = find_element(project_data, ele)
|
||||
if exists:
|
||||
# print(f"No elements found for {ele}")
|
||||
total_points += value.get('points')
|
||||
# else:
|
||||
# print(f"Element '{ele}' exists in project.json: {exists}")
|
||||
print(f"elements found for {ele}")
|
||||
if exists == answer:
|
||||
total_points += value.get('points')
|
||||
elif exists and answer == None:
|
||||
total_points += value.get('points')
|
||||
print(f"{ele} found ");
|
||||
else :
|
||||
print(f"{exists} not found");
|
||||
else:
|
||||
print(f"Element '{ele}' exists in project.json: {exists}")
|
||||
|
||||
if type == "script":
|
||||
exists = find_script_element(project_data, ele)
|
||||
temp = json.loads(exists)
|
||||
|
||||
if exists == None:
|
||||
temp = None
|
||||
else:
|
||||
temp = json.loads(exists)
|
||||
|
||||
innerKey= 1;
|
||||
for block in blocks:
|
||||
block_exists = find_element(temp, block.get('ele'))
|
||||
innerType = block.get('type')
|
||||
|
||||
if temp == None:
|
||||
print(f"{key}-{innerKey}: Script Not exist")
|
||||
innerKey = innerKey + 1
|
||||
continue
|
||||
|
||||
if 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))
|
||||
|
||||
else:
|
||||
flat_matches = block_exists[0]
|
||||
|
||||
|
||||
# 블록에 따라 params 값이나 statements 값이 있는 경우 처리 추가 필요
|
||||
|
||||
if block_exists:
|
||||
total_points += block.get('points')
|
||||
# else:
|
||||
# print(f"No elements found for {block.get('ele')}")
|
||||
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}")
|
||||
total_points += block.get('points')
|
||||
elif answer is None and block_exists:
|
||||
total_points += block.get('points')
|
||||
print(f"{key}-{innerKey}: exist ele: {block_exists}")
|
||||
else:
|
||||
print(f"No elements found for {block.get('ele')}")
|
||||
|
||||
innerKey = innerKey + 1
|
||||
|
||||
print(f"Total Points: {total_points}")
|
||||
|
||||
|
||||
230
scoring.json
230
scoring.json
@@ -1,29 +1,235 @@
|
||||
{
|
||||
"0": {
|
||||
"1-1": {
|
||||
"type": "scene",
|
||||
"ele": "$.scenes[0].name",
|
||||
"value": "장면 1",
|
||||
"points": 10
|
||||
"answer": "꽃밭",
|
||||
"points": 1.77,
|
||||
"desc": "장면 1 이름 변경"
|
||||
},
|
||||
"1": {
|
||||
"1-2": {
|
||||
"type": "scene",
|
||||
"ele": "$.scenes[1].name",
|
||||
"value": "장면 2",
|
||||
"points": 10
|
||||
"answer": "숲속",
|
||||
"points": 1.77,
|
||||
"desc": "장면 2 이름 변경"
|
||||
},
|
||||
"1-3": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='당근')]",
|
||||
"points": 1.77,
|
||||
"desc": "장면 2 이름 변경"
|
||||
},
|
||||
"1-4": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='하트')]",
|
||||
"points": 1.77,
|
||||
"desc": "장면 2 이름 변경"
|
||||
},
|
||||
"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[*]",
|
||||
"ele": "$.objects[?(@.name=='당근')].script",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[*][?(@.type=='hide')]",
|
||||
"points": 10
|
||||
"ele": "$[0][0].type",
|
||||
"answer": "when_run_button_click",
|
||||
"points": 1.77,
|
||||
"desc": "시작하기 버튼을 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"ele": "$[*][?(@.type=='set_scale_size')].params[0].params[0]",
|
||||
"points": 10
|
||||
"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": "x:0, y:-100 으로 이동"
|
||||
},
|
||||
{
|
||||
"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": []
|
||||
},
|
||||
"5": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?(@.name=='상자')].script",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[0][0].type",
|
||||
"answer": "when_run_button_click",
|
||||
"points": 1.77,
|
||||
"desc": "시작하기 버튼을 눌렀을 때"
|
||||
},
|
||||
{
|
||||
"ele": "$[*][?(@.type=='change_object_index')].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": "숨기기"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
}
|
||||
859
scripts.json
859
scripts.json
@@ -1,9 +1,9 @@
|
||||
[
|
||||
[
|
||||
{
|
||||
"id": "w44a",
|
||||
"id": "om8f",
|
||||
"x": 50,
|
||||
"y": 30,
|
||||
"y": 70,
|
||||
"type": "when_run_button_click",
|
||||
"params": [
|
||||
null
|
||||
@@ -18,7 +18,469 @@
|
||||
"extensions": []
|
||||
},
|
||||
{
|
||||
"id": "lks0",
|
||||
"id": "y31p",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "set_scale_size",
|
||||
"params": [
|
||||
{
|
||||
"id": "vohi",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "number",
|
||||
"params": [
|
||||
"45"
|
||||
],
|
||||
"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": "ybwv",
|
||||
"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",
|
||||
"params": [
|
||||
{
|
||||
"id": "t4xt",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "boolean_basic_operator",
|
||||
"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": []
|
||||
}
|
||||
],
|
||||
"statements": [],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"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": [],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
},
|
||||
{
|
||||
"id": "937f",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "hide",
|
||||
@@ -33,397 +495,6 @@
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
},
|
||||
{
|
||||
"id": "3wtk",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "set_scale_size",
|
||||
"params": [
|
||||
{
|
||||
"id": "cs1e",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "number",
|
||||
"params": [
|
||||
"60"
|
||||
],
|
||||
"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": "0ihj",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "repeat_inf",
|
||||
"params": [
|
||||
null,
|
||||
null
|
||||
],
|
||||
"statements": [
|
||||
[
|
||||
{
|
||||
"id": "orn8",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "locate_xy",
|
||||
"params": [
|
||||
{
|
||||
"id": "dmfl",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "calc_rand",
|
||||
"params": [
|
||||
null,
|
||||
{
|
||||
"id": "8u37",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "number",
|
||||
"params": [
|
||||
"-200"
|
||||
],
|
||||
"statements": [],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
},
|
||||
null,
|
||||
{
|
||||
"id": "ouuv",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "number",
|
||||
"params": [
|
||||
"200"
|
||||
],
|
||||
"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": "8j47",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "calc_rand",
|
||||
"params": [
|
||||
null,
|
||||
{
|
||||
"id": "669m",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "number",
|
||||
"params": [
|
||||
"-100"
|
||||
],
|
||||
"statements": [],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
},
|
||||
null,
|
||||
{
|
||||
"id": "kaq0",
|
||||
"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": []
|
||||
},
|
||||
null
|
||||
],
|
||||
"statements": [],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
},
|
||||
{
|
||||
"id": "ro4n",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "wait_second",
|
||||
"params": [
|
||||
{
|
||||
"id": "6xf0",
|
||||
"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": "r39u",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "show",
|
||||
"params": [
|
||||
null
|
||||
],
|
||||
"statements": [],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"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": 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": "0qng",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "hide",
|
||||
"params": [
|
||||
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": "knwd",
|
||||
"x": 53,
|
||||
"y": 343,
|
||||
"type": "when_message_cast",
|
||||
"params": [
|
||||
null,
|
||||
"m0l6"
|
||||
],
|
||||
"statements": [],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
},
|
||||
{
|
||||
"id": "40hi",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "_if",
|
||||
"params": [
|
||||
{
|
||||
"id": "sbmy",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "reach_something",
|
||||
"params": [
|
||||
null,
|
||||
"xskt",
|
||||
null
|
||||
],
|
||||
"statements": [],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
},
|
||||
null
|
||||
],
|
||||
"statements": [
|
||||
[
|
||||
{
|
||||
"id": "jy0j",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "hide",
|
||||
"params": [
|
||||
null
|
||||
],
|
||||
"statements": [],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
},
|
||||
{
|
||||
"id": "w887",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"type": "change_variable",
|
||||
"params": [
|
||||
"v94h",
|
||||
{
|
||||
"id": "grbn",
|
||||
"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": []
|
||||
}
|
||||
]
|
||||
],
|
||||
"movable": null,
|
||||
"deletable": 1,
|
||||
"emphasized": false,
|
||||
"readOnly": null,
|
||||
"copyable": true,
|
||||
"assemble": true,
|
||||
"extensions": []
|
||||
}
|
||||
]
|
||||
]
|
||||
Reference in New Issue
Block a user