2603회 채점완료
This commit is contained in:
@@ -49,11 +49,11 @@ def copy_ent_files(source_root, target_root):
|
||||
|
||||
# source_directory = r"D:\project\data\CAS_제2510회 정기\제2510회 코딩활용능력 2급 정기 답안파일" # 원본 디렉토리 경로
|
||||
|
||||
exam_name = "2602_CAS_2_A"
|
||||
exam_name = "2603_CAT_3_A"
|
||||
# exam_name = "2602_6_CAS_2_B"
|
||||
|
||||
# source_directory = r"D:\project\data\CAT_제2511회 정기\답안파일" # 원본 디렉토리 경로
|
||||
source_directory = r"D:\project\data\제2602회 수시3_CAS(대구)\답안파일" # 원본 디렉토리 경로
|
||||
source_directory = r"D:\project\data\제2603회 정기\답안파일\과목별답안파일" # 원본 디렉토리 경로
|
||||
target_directory = rf".\ent\{exam_name}" # 타겟 디렉토리 경로
|
||||
|
||||
copy_ent_files(source_directory, target_directory)
|
||||
|
||||
45
01_copy_files_answer.py
Normal file
45
01_copy_files_answer.py
Normal file
@@ -0,0 +1,45 @@
|
||||
import os
|
||||
import shutil
|
||||
|
||||
# ── 설정 ────────────────────────────────────────────────────────────────
|
||||
exam_round = "2603"
|
||||
|
||||
source_dir = rf"D:\project\Entry\Entry-Scoring\시험자료\{exam_round}"
|
||||
output_base = r"ent"
|
||||
|
||||
# 급수 → 코드 매핑
|
||||
grade_code_map = {
|
||||
"3급": "CAT_3",
|
||||
"2급": "CAS_2",
|
||||
}
|
||||
|
||||
grades = ["3급", "2급"]
|
||||
types = ["A", "B", "C"]
|
||||
|
||||
# ── 복사 실행 ────────────────────────────────────────────────────────────
|
||||
for grade in grades:
|
||||
grade_code = grade_code_map[grade]
|
||||
|
||||
for type in types:
|
||||
# 원본 파일명 고정
|
||||
src_filename = f"제{exam_round}회 코딩활용능력 {grade} {type}형 정답.ent"
|
||||
src_path = os.path.join(source_dir, src_filename)
|
||||
|
||||
if not os.path.exists(src_path):
|
||||
print(f"[WARN] 파일 없음: {src_path}")
|
||||
continue
|
||||
|
||||
# exam_name: 2603_CAT_3_A
|
||||
exam_name = f"{exam_round}_{grade_code}_{type}"
|
||||
|
||||
# 대상 경로: ent\2603_CAT_3_A
|
||||
dst_folder = os.path.join(output_base, exam_name)
|
||||
os.makedirs(dst_folder, exist_ok=True)
|
||||
|
||||
# 변경된 파일명: 2603_CAT_3_A_정답.ent
|
||||
dst_filename = f"{exam_name}_정답.ent"
|
||||
dst_path = os.path.join(dst_folder, dst_filename)
|
||||
shutil.copy2(src_path, dst_path)
|
||||
print(f"[OK] 복사 완료: {src_path} → {dst_path}")
|
||||
|
||||
print("\n전체 처리 완료.")
|
||||
@@ -50,7 +50,7 @@ def process_ent_files(ent_dir, output_dir):
|
||||
|
||||
# 실행 예
|
||||
if __name__ == "__main__":
|
||||
exam_names = ["2602_CAS_2_A"]
|
||||
exam_names = ["2603_CAT_3_A"]
|
||||
# exam_names = ["2512_CAS_2_A", "2512_CAS_2_B"]
|
||||
for exam_name in exam_names:
|
||||
ent_dir = f".\\ent\\{exam_name}"
|
||||
|
||||
BIN
260401_2603_CAT_3_A_채점결과.xlsx
Normal file
BIN
260401_2603_CAT_3_A_채점결과.xlsx
Normal file
Binary file not shown.
BIN
260402_2603_CAT_3_A_채점결과.xlsx
Normal file
BIN
260402_2603_CAT_3_A_채점결과.xlsx
Normal file
Binary file not shown.
604
correct/2603_CAT_3_A.json
Normal file
604
correct/2603_CAT_3_A.json
Normal file
@@ -0,0 +1,604 @@
|
||||
{
|
||||
"1-1": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='들판')]",
|
||||
"point": 2,
|
||||
"desc": "문제 1/들판(1)/[배경] 이름 설정/이름을 '들판'으로 변경하기",
|
||||
"sort": 11
|
||||
},
|
||||
"1-3": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='구름')]",
|
||||
"point": 2,
|
||||
"desc": "문제 1/구름(1)/[개체] 이름 설정 1/이름을 '구름'으로 변경하기",
|
||||
"sort": 13
|
||||
},
|
||||
"1-4": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='새')]",
|
||||
"point": 2,
|
||||
"desc": "문제 1/독수리(2)/[개체] 이름 설정 2/이름을 '새'로 변경하기",
|
||||
"sort": 14
|
||||
},
|
||||
"1-5": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='배터리')]",
|
||||
"point": 2,
|
||||
"desc": "문제 1/건전지(2)/[개체] 이름 설정 3/이름을 '배터리'로 변경하기",
|
||||
"sort": 15
|
||||
},
|
||||
"1-6": {
|
||||
"type": "scene",
|
||||
"ele": "$..objects[?(@.name=='드론')]",
|
||||
"point": 2,
|
||||
"desc": "문제 1/드론(1)/[개체] 이름 설정 4/이름을 '드론'으로 변경하기",
|
||||
"sort": 16
|
||||
},
|
||||
"2-0": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?(@.name=~'구름')].script",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[0][0].type",
|
||||
"answer": "when_run_button_click",
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/구름/시작/시작하기 버튼을 클릭했을 때"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][1].type",
|
||||
"$[0][1].params[0].params[0]",
|
||||
"$[0][1].params[1].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"locate_xy",
|
||||
"70",
|
||||
"130"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/구름/[시작]의 세부 동작 1/x: '70' y: '130' 위치로 이동하기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][2].type",
|
||||
"$[0][2].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"set_scale_size",
|
||||
"140"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/구름/[시작]의 세부 동작 2/크기를 '140' 으로 정하기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][3].type",
|
||||
"$[0][3].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"repeat_inf",
|
||||
null
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/구름/반복/계속 반복하기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][3].statements[0][0].params[0]",
|
||||
"answer": "next",
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/구름/[반복]의 세부 동작 1/'다음' 모양으로 바꾸기"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][3].statements[0][1].type",
|
||||
"$[0][3].statements[0][1].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"wait_second",
|
||||
"2"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/구름/[반복]의 세부 동작 2/'2' 초 기다리기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][3].statements[0][2].type",
|
||||
"$[0][3].statements[0][2].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"move_direction",
|
||||
"2"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/구름/[반복]의 세부 동작 3/이동 방향으로 '2' 만큼 움직이기",
|
||||
"type": "list"
|
||||
}
|
||||
],
|
||||
"sortBlock": [
|
||||
"when_run_button_click"
|
||||
],
|
||||
"sort": 102
|
||||
},
|
||||
"3-0": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?(@.name=~'새|독수리')].script",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[0][0].type",
|
||||
"answer": "when_run_button_click",
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/새/시작/시작하기 버튼을 클릭했을 때"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][1].type",
|
||||
"$[0][1].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"set_scale_size",
|
||||
"70"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/새/[시작]의 세부 동작/크기를 '70' 으로 정하기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][2].type",
|
||||
"$[0][2].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"repeat_inf",
|
||||
null
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/새/반복 1/계속 반복하기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][2].statements[0][0].type",
|
||||
"$[0][2].statements[0][0].params[0].params[0]",
|
||||
"$[0][2].statements[0][0].params[1].params[1].params[0]",
|
||||
"$[0][2].statements[0][0].params[1].params[3].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"locate_xy",
|
||||
"-260",
|
||||
"90",
|
||||
"105"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/새/[반복 1]의 세부 동작/x: '-260' y: '90 부터 105 사이의 무작위 수' 위치로 이동하기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][2].statements[0][1].type",
|
||||
"$[0][2].statements[0][1].params[0].params[0].params[3]",
|
||||
"$[0][2].statements[0][1].params[0].params[1]",
|
||||
"$[0][2].statements[0][1].params[0].params[2].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"repeat_while_true",
|
||||
"x",
|
||||
"EQUAL",
|
||||
"240"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/새/반복 2/'자신' 의 'x 좌푯값' = '240' '이 될 때까지' 반복하기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][2].statements[0][1].statements[0][0].type",
|
||||
"$[0][2].statements[0][1].statements[0][0].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"move_x",
|
||||
"5"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/새/[반복 2]의 세부 동작 1/x 좌표를 '5' 만큼 바꾸기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][2].statements[0][1].statements[0][1].type",
|
||||
"$[0][2].statements[0][1].statements[0][1].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"move_y",
|
||||
"0.2"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/새/[반복 2]의 세부 동작 2/y 좌표를 '0.2' 만큼 바꾸기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][2].statements[0][1].statements[0][2].type",
|
||||
"$[0][2].statements[0][1].statements[0][2].params[0].type"
|
||||
],
|
||||
"answer": [
|
||||
"_if",
|
||||
"reach_something"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/새/만일/만일 '드론' 에 닿았는가? 라면",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][2].statements[0][1].statements[0][2].statements[0][0].type",
|
||||
"$[0][2].statements[0][1].statements[0][2].statements[0][0].params[0]",
|
||||
"$[0][2].statements[0][1].statements[0][2].statements[0][0].params[1].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"add_effect_amount",
|
||||
"transparency",
|
||||
"50"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/새/[만일]의 세부 동작 1/'투명도' 효과를 '50' 만큼 주기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][2].statements[0][1].statements[0][2].statements[0][1].params[*].params",
|
||||
"answer": [
|
||||
"위험해!",
|
||||
"1"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/새/[만일]의 세부 동작 2/'위험해!' 를 '1' 초 동안 '말하기'"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][2].statements[0][1].statements[0][2].statements[0][2].type",
|
||||
"$[0][2].statements[0][1].statements[0][2].statements[0][2].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"wait_second",
|
||||
"0.1"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/새/[만일]의 세부 동작 3/'0.1' 초 기다리기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][2].statements[0][1].statements[0][2].statements[0][3].type",
|
||||
"$[0][2].statements[0][1].statements[0][2].statements[0][3].params[0]",
|
||||
"$[0][2].statements[0][1].statements[0][2].statements[0][3].params[1].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"change_effect_amount",
|
||||
"transparency",
|
||||
"0"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/새/[만일]의 세부 동작 4/'투명도' 효과를 '0' 으로 정하기",
|
||||
"type": "list"
|
||||
}
|
||||
],
|
||||
"sortBlock": [
|
||||
"when_run_button_click"
|
||||
],
|
||||
"sort": 109
|
||||
},
|
||||
"4-0": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?(@.name=~'배터리|건전지')].script",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[0][0].type",
|
||||
"answer": "when_run_button_click",
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/배터리/시작/시작하기 버튼을 클릭했을 때"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][1].type",
|
||||
"$[0][1].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"set_scale_size",
|
||||
"50"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/배터리/[시작]의 세부 동작 1/크기를 '50' 으로 정하기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][2].type",
|
||||
"$[0][2].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"rotate_absolute",
|
||||
"270"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/배터리/[시작]의 세부 동작 2/방향을 '270°' 로 정하기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][3].type",
|
||||
"$[0][3].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"repeat_inf",
|
||||
null
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/배터리/반복/계속 반복하기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][3].statements[0][0].type",
|
||||
"$[0][3].statements[0][0].params[0].params[1].params[0]",
|
||||
"$[0][3].statements[0][0].params[0].params[3].params[0]",
|
||||
"$[0][3].statements[0][0].params[1].params[1].params[0]",
|
||||
"$[0][3].statements[0][0].params[1].params[3].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"locate_xy",
|
||||
"-200",
|
||||
"200",
|
||||
"-50",
|
||||
"120"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/배터리/[반복]의 세부 동작 1/x: '-200 부터 200 사이의 무작위 수' y: '-50 부터 120 사이의 무작위 수' 위치로 이동하기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][3].statements[0][1].type",
|
||||
"answer": "show",
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/배터리/[반복]의 세부 동작 2/모양 보이기"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][3].statements[0][2].type",
|
||||
"$[0][3].statements[0][2].params[0].type"
|
||||
],
|
||||
"answer": [
|
||||
"wait_until_true",
|
||||
"reach_something"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/배터리/[반복]의 세부 동작 3/'드론' 에 닿았는가? 가 될 때까지 기다리기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][3].statements[0][3].type",
|
||||
"$[0][3].statements[0][3].params[0]",
|
||||
"$[0][3].statements[0][3].params[1].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"add_effect_amount",
|
||||
"brightness",
|
||||
"50"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/배터리/[반복]의 세부 동작 4/'밝기' 효과를 '50' 만큼 주기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][3].statements[0][4].params[*].params",
|
||||
"answer": [
|
||||
"충전완료!",
|
||||
"1"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/배터리/[반복]의 세부 동작 5/'충전완료!' 를 '1' 초 동안 '말하기'"
|
||||
},
|
||||
{
|
||||
"ele": "$[0][3].statements[0][5].type",
|
||||
"answer": "hide",
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/배터리/[반복]의 세부 동작 6/모양 숨기기"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][3].statements[0][6].type",
|
||||
"$[0][3].statements[0][6].params[0].type",
|
||||
"$[0][3].statements[0][6].params[0].params[1].params[0]",
|
||||
"$[0][3].statements[0][6].params[0].params[3].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"wait_second",
|
||||
"calc_rand",
|
||||
"1",
|
||||
"2"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/배터리/[반복]의 세부 동작 7/'1 부터 2 사이의 무작위 수' 초 기다리기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][3].statements[0][7].type",
|
||||
"$[0][3].statements[0][7].params[0]",
|
||||
"$[0][3].statements[0][7].params[1].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"change_effect_amount",
|
||||
"brightness",
|
||||
"0"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/배터리/[반복]의 세부 동작 8/'밝기' 효과를 '0' 으로 정하기",
|
||||
"type": "list"
|
||||
}
|
||||
],
|
||||
"sortBlock": [
|
||||
"when_run_button_click"
|
||||
],
|
||||
"sort": 121
|
||||
},
|
||||
"5-0": {
|
||||
"type": "script",
|
||||
"ele": "$.objects[?(@.name=~'드론')].script",
|
||||
"blocks": [
|
||||
{
|
||||
"ele": "$[0][0].type",
|
||||
"answer": "when_run_button_click",
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/드론/시작/시작하기 버튼을 클릭했을 때"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][1].type",
|
||||
"$[0][1].params[0].params[0]",
|
||||
"$[0][1].params[1].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"locate_xy",
|
||||
"160",
|
||||
"85"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/드론/[시작]의 세부 동작 1/x: '160' y: '85' 위치로 이동하기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][2].type",
|
||||
"$[0][2].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"repeat_inf",
|
||||
null
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/드론/반복/계속 반복하기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][2].statements[0][0].type",
|
||||
"$[0][2].statements[0][0].params[0].type",
|
||||
"$[0][2].statements[0][0].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"_if",
|
||||
"is_press_some_key",
|
||||
"38"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/드론/만일 1/만일 '위쪽 화살표' 키가 눌러져 있는가? 라면",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][2].statements[0][0].statements[0][0].type",
|
||||
"$[0][2].statements[0][0].statements[0][0].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"move_y",
|
||||
"5"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/드론/[만일 1]의 세부 동작/y 좌표를 '5' 만큼 바꾸기",
|
||||
"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[0]"
|
||||
],
|
||||
"answer": [
|
||||
"_if",
|
||||
"is_press_some_key",
|
||||
"40"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/드론/만일 2/만일 '아래쪽 화살표' 키가 눌러져 있는가? 라면",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][2].statements[0][1].statements[0][0].type",
|
||||
"$[0][2].statements[0][1].statements[0][0].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"move_y",
|
||||
"-5"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/드론/[만일 2]의 세부 동작/y 좌표를 '-5' 만큼 바꾸기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][2].statements[0][2].type",
|
||||
"$[0][2].statements[0][2].params[0].type",
|
||||
"$[0][2].statements[0][2].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"_if",
|
||||
"is_press_some_key",
|
||||
"37"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/드론/만일 3/만일 '왼쪽 화살표' 키가 눌러져 있는가? 라면",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][2].statements[0][2].statements[0][0].type",
|
||||
"$[0][2].statements[0][2].statements[0][0].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"move_x",
|
||||
"-5"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/드론/[만일 3]의 세부 동작/x 좌표를 '-5' 만큼 바꾸기",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][2].statements[0][3].type",
|
||||
"$[0][2].statements[0][3].params[0].type",
|
||||
"$[0][2].statements[0][3].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"_if",
|
||||
"is_press_some_key",
|
||||
"39"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/드론/만일 4/만일 '오른쪽 화살표' 키가 눌러져 있는가? 라면",
|
||||
"type": "list"
|
||||
},
|
||||
{
|
||||
"ele": [
|
||||
"$[0][2].statements[0][3].statements[0][0].type",
|
||||
"$[0][2].statements[0][3].statements[0][0].params[0].params[0]"
|
||||
],
|
||||
"answer": [
|
||||
"move_x",
|
||||
"5"
|
||||
],
|
||||
"point": 2.14,
|
||||
"desc": "문제 2/드론/[만일 4]의 세부 동작/x 좌표를 '5' 만큼 바꾸기",
|
||||
"type": "list"
|
||||
}
|
||||
],
|
||||
"sortBlock": [
|
||||
"when_run_button_click"
|
||||
],
|
||||
"sort": 133
|
||||
}
|
||||
}
|
||||
3298
logs/cat.log
3298
logs/cat.log
File diff suppressed because it is too large
Load Diff
4
main.py
4
main.py
@@ -356,8 +356,8 @@ def main():
|
||||
test_mode = False # 일반 채점 모드
|
||||
# test_mode = True # 테스트 모드
|
||||
|
||||
exam_round = "2602"
|
||||
exam_names = ["CAS_2_A"] # 여러 시험명을 리스트로 설정
|
||||
exam_round = "2603"
|
||||
exam_names = ["CAT_3_A"] # 여러 시험명을 리스트로 설정
|
||||
# exam_names = ["CAS_2_A", "CAS_2_B"] # 여러 시험명을 리스트로 설정
|
||||
excel_list = []
|
||||
|
||||
|
||||
BIN
시험자료/2603/제2603회 코딩활용능력 3급 A형 문제.hwp
Normal file
BIN
시험자료/2603/제2603회 코딩활용능력 3급 A형 문제.hwp
Normal file
Binary file not shown.
BIN
시험자료/2603/제2603회 코딩활용능력 3급 A형 정답.ent
Normal file
BIN
시험자료/2603/제2603회 코딩활용능력 3급 A형 정답.ent
Normal file
Binary file not shown.
BIN
시험자료/2603/제2603회 코딩활용능력 3급 A형 채점기준표.xlsx
Normal file
BIN
시험자료/2603/제2603회 코딩활용능력 3급 A형 채점기준표.xlsx
Normal file
Binary file not shown.
Reference in New Issue
Block a user