steveyehtw commited on
Commit
584a199
·
1 Parent(s): dcab2e7

Publish remaining student progress and classroom backups

Browse files
.impeccable/config.json ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "detector": {
3
+ "ignoreRules": [],
4
+ "ignoreFiles": [],
5
+ "ignoreValues": [
6
+ {
7
+ "rule": "flat-type-hierarchy",
8
+ "value": "*",
9
+ "files": [
10
+ "classroom_static/teacher.html"
11
+ ],
12
+ "createdAt": "2026-10-16T09:59:00.902Z",
13
+ "reason": "False positive from static scan: teacher.html loads typography from /classroom-assets/classroom.css, which the standalone resolver cannot open. The actual stylesheet was checked and the detail heading was increased to 1.3rem; desktop hierarchy was visually reviewed."
14
+ }
15
+ ]
16
+ }
17
+ }
classroom_data/repair_backups/2026-10-16/26FSunAft/陳英赫/week02/case_data.json ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "title": "消失的校徽",
3
+ "intro": "午休結束後,校慶展示櫃裡的校徽消失了。你能找出真相嗎?",
4
+ "locations": {
5
+ "1": {
6
+ "name": "六年一班教室",
7
+ "scene": "展示櫃半開,窗戶也沒有關好。",
8
+ "evidence": {
9
+ "id": "blue_fiber",
10
+ "name": "窗框上的藍色纖維",
11
+ "detail": "纖維顏色和清潔推車的布套相同。"
12
+ }
13
+ },
14
+ "2": {
15
+ "name": "操場司令台",
16
+ "scene": "地面剛拖過,留下一道彎向圖書館的輪痕。",
17
+ "evidence": {
18
+ "id": "wheel_track",
19
+ "name": "沾著亮粉的推車輪痕",
20
+ "detail": "亮粉和展示櫃內的裝飾相同。"
21
+ }
22
+ },
23
+ "3": {
24
+ "name": "圖書館",
25
+ "scene": "清潔推車停在書架旁,後方似乎有東西反光。",
26
+ "requires": ["blue_fiber", "wheel_track"],
27
+ "locked_text": "你看見推車,卻還不知道該檢查哪裡。也許要先找出它的移動路線。",
28
+ "evidence": {
29
+ "id": "badge",
30
+ "name": "卡在推車後方的校徽",
31
+ "detail": "校徽沒有損壞,背面黏著一小段藍色纖維。"
32
+ }
33
+ }
34
+ },
35
+ "conclusions": {
36
+ "1": "有同學故意把校徽藏在圖書館",
37
+ "2": "風吹起校徽,清潔推車不小心把它帶到圖書館",
38
+ "3": "校徽從一開始就放在圖書館"
39
+ },
40
+ "correct_answer": "2",
41
+ "success": "推理正確!風把校徽吹到布套上,推車經過教室後又將它帶到圖書館。這是一場意外。"
42
+ }
classroom_data/repair_backups/2026-10-16/26FSunAft/陳英赫/week02/main.py ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Week 2:校園謎案調查局 Starter。
2
+
3
+ 先完成 TODO 1~4。程式必須能反覆探索、收集線索、查看證物並提出推理。
4
+ """
5
+
6
+ CASE_TITLE = "消失的校徽"
7
+
8
+ LOCATIONS = {
9
+ "1": {
10
+ "name": "六年一班教室",
11
+ "scene": "展示櫃半開,窗戶也沒有關好。",
12
+ "evidence": "窗框上的藍色纖維",
13
+ },
14
+ "2": {
15
+ "name": "操場司令台",
16
+ "scene": "地面剛拖過,留下一道彎向圖書館的輪痕。",
17
+ "evidence": "沾著亮粉的推車輪痕",
18
+ },
19
+ "3": {
20
+ "name": "圖書館",
21
+ "scene": "清潔推車停在書架旁,後方似乎有東西反光。",
22
+ "evidence": "卡在推車後方的校徽",
23
+ },
24
+ }
25
+
26
+ evidence_bag = []
27
+
28
+
29
+ def investigate(location_id):
30
+ """調查地點並將新線索放入證物袋。"""
31
+ # TODO 1:確認 location_id 是否存在於 LOCATIONS。
32
+ if location_id not in LOCATIONS:
33
+ print("錯誤編號")
34
+ return
35
+ # TODO 2:顯示地點名稱與現場描述。
36
+ print(f"你來到了{LOCATIONS[locition_id]["name"]}")
37
+ print(f"現場描述:{LOCATIONS[locition_id]["scene"]}")
38
+ # TODO 3:線索尚未取得時才 append 到 evidence_bag。
39
+ if LOCATIONS[location_id]["evidence"] not in evidence_bag:
40
+ evidence_bag.append(location_id)
41
+ print(f"取得了{LOCATIONS[location_id]["evidence"]}")
42
+ print("這個調查功能還沒完成。")
43
+
44
+
45
+ def show_evidence():
46
+ """列出目前取得的所有證物。"""
47
+ # TODO 4:沒有證物時顯示提示;否則以 1 開始編號列出。
48
+ print("證物袋功能還沒完成。")
49
+
50
+
51
+ def make_deduction():
52
+ """取得足夠證物後,讓玩家選擇真相。"""
53
+ if len(evidence_bag) < 3:
54
+ print(f"證物不足:目前 {len(evidence_bag)}/3。再去調查吧!")
55
+ return False
56
+
57
+ print("\n哪一個說法最符合所有證物?")
58
+ print("1. 有同學故意把校徽藏在圖書館")
59
+ print("2. 風吹起校徽,清潔推車不小心把它帶到圖書館")
60
+ print("3. 校徽從一開始就放在圖書館")
61
+ answer = input("你的推理:").strip()
62
+
63
+ # TODO 5(Checkpoint C):判斷答案,正確時回傳 True。
64
+ print("推理判定還沒完成。")
65
+ return False
66
+
67
+
68
+ def show_menu():
69
+ print(f"\n=== 校園謎案調查局:{CASE_TITLE} ===")
70
+ print(f"1. 調查{LOCATONS["1"]["name"]")
71
+ print(f"2. 調查{LOCATONS["2"]["name"]")
72
+ print(f"3. 調查{LOCATONS["3"]["name"]")
73
+ print("4. 查看證物袋")
74
+ print("5. 提出推理")
75
+ print("6. 離開")
76
+
77
+
78
+ def main():
79
+ print("午休結束後,校慶展示櫃裡的校徽消失了。你能找出真相嗎?")
80
+
81
+ while True:
82
+ show_menu()
83
+ choice = input("請選擇:").strip()
84
+
85
+ if choice in LOCATIONS:
86
+ investigate(choice)
87
+ elif choice == "4":
88
+ show_evidence()
89
+ elif choice == "5":
90
+ if make_deduction():
91
+ break
92
+ elif choice == "6":
93
+ print("案件暫停。證物袋已交回調查局。")
94
+ break
95
+ else:
96
+ print("請輸入 1~6。")
97
+
98
+
99
+ if __name__ == "__main__":
100
+ main()
projects/2026Fall進階專題日午/陳英赫/week02_校園謎案調查局/main.py CHANGED
@@ -28,24 +28,37 @@ evidence_bag = []
28
 
29
  def investigate(location_id):
30
  """調查地點並將新線索放入證物袋。"""
31
- # TODO 1:確認 location_id 是否存在於 LOCATIONS。
32
  if location_id not in LOCATIONS:
33
  print("錯誤編號")
34
  return
35
- # TODO 2:顯示地點名稱與現場描述。
36
- print(f"你來到了{LOCATIONS[locition_id]["name"]}")
37
- print(f"現場描述:{LOCATIONS[locition_id]["scene"]}")
38
- # TODO 3:線索尚未取得時才 append 到 evidence_bag。
39
- if LOCATIONS[location_id]["evidence"] not in evidence_bag:
40
- evidence_bag.append(location_id)
41
- print(f"取得了{LOCATIONS[location_id]["evidence"]}")
42
- print("這個調查功能還沒完成。")
 
 
 
 
 
 
 
 
 
43
 
44
 
45
  def show_evidence():
46
  """列出目前取得的所有證物。"""
47
- # TODO 4:沒有證物時顯示提示;否則以 1 開始編號列出。
48
- print("證物袋功能還沒完成。")
 
 
 
 
 
49
 
50
 
51
  def make_deduction():
@@ -60,16 +73,19 @@ def make_deduction():
60
  print("3. 校徽從一開始就放在圖書館")
61
  answer = input("你的推理:").strip()
62
 
63
- # TODO 5(Checkpoint C):判斷答案,正確時回傳 True。
64
- print("推理判定還沒完成。")
 
 
 
65
  return False
66
 
67
 
68
  def show_menu():
69
  print(f"\n=== 校園謎案調查局:{CASE_TITLE} ===")
70
- print(f"1. 調查{LOCATONS["1"]["name"]")
71
- print(f"2. 調查{LOCATONS["2"]["name"]")
72
- print(f"3. 調查{LOCATONS["3"]["name"]")
73
  print("4. 查看證物袋")
74
  print("5. 提出推理")
75
  print("6. 離開")
 
28
 
29
  def investigate(location_id):
30
  """調查地點並將新線索放入證物袋。"""
 
31
  if location_id not in LOCATIONS:
32
  print("錯誤編號")
33
  return
34
+
35
+ required_before = {"3": "1", "2": "3"}
36
+ required = required_before.get(location_id)
37
+ if required and required not in evidence_bag:
38
+ print(f"目前還不能調查這裡,先去『{LOCATIONS[required]['name']}』找線索。")
39
+ return
40
+
41
+ location = LOCATIONS[location_id]
42
+ print(f"你到了:{location['name']}")
43
+ print(location["scene"])
44
+
45
+ if location_id in evidence_bag:
46
+ print("這裡已經調查過,沒有新的發現。")
47
+ return
48
+
49
+ evidence_bag.append(location_id)
50
+ print(f"取得證物:{location['evidence']}")
51
 
52
 
53
  def show_evidence():
54
  """列出目前取得的所有證物。"""
55
+ if not evidence_bag:
56
+ print("證物袋目前是空的。")
57
+ return
58
+
59
+ print("\n=== 目前收到的證物 ===")
60
+ for number, location_id in enumerate(evidence_bag, start=1):
61
+ print(f"{number}. {LOCATIONS[location_id]['evidence']}")
62
 
63
 
64
  def make_deduction():
 
73
  print("3. 校徽從一開始就放在圖書館")
74
  answer = input("你的推理:").strip()
75
 
76
+ if answer == "2":
77
+ print("已破案!")
78
+ return True
79
+
80
+ print("還沒有破案,再看看證物吧!")
81
  return False
82
 
83
 
84
  def show_menu():
85
  print(f"\n=== 校園謎案調查局:{CASE_TITLE} ===")
86
+ print(f"1. 調查{LOCATIONS['1']['name']}")
87
+ print(f"2. 調查{LOCATIONS['2']['name']}")
88
+ print(f"3. 調查{LOCATIONS['3']['name']}")
89
  print("4. 查看證物袋")
90
  print("5. 提出推理")
91
  print("6. 離開")