Spaces:
Running
Running
Checkpoint L6Sat 林守桀 week02
Browse files
classroom_data/versions/L6Sat/林守桀/week02/1791008235936-checkpoint-254957.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"class_code": "L6Sat",
|
| 3 |
+
"student_id": "林守桀",
|
| 4 |
+
"display_name": "林守桀",
|
| 5 |
+
"week_id": "week02",
|
| 6 |
+
"version_id": "1791008235936-checkpoint-254957",
|
| 7 |
+
"kind": "checkpoint",
|
| 8 |
+
"project_name": "校園謎案調查局",
|
| 9 |
+
"created_at": 1791008235936,
|
| 10 |
+
"files": {
|
| 11 |
+
"case_data.json": "{\n \"case_title\": \"半夜的舊校舍\",\n \"intro\": \"深夜的校園傳出詭異琴聲與哭喊,你能揭開舊校舍的祕密嗎?\",\n \"locations\": {\n \"1\": {\n \"name\": \"廢棄音樂教室\",\n \"scene\": \"鋼琴蓋自己微微晃動,琴鍵上記號筆寫著血紅色的字。\",\n \"evidence\": \"散落一地的老舊樂譜碎片\",\n \"requires\": [\"2\"],\n \"locked_text\": \"【無法調查】音樂教室門口卡著一張沾滿水跡的舊告示,似乎要先查清楚「走廊女廁」的怪異事件才敢進去...\"\n },\n \"2\": {\n \"name\": \"走廊盡頭的女廁\",\n \"scene\": \"最後一間廁所門半開,鏡子上滿是水氣與詭異手印。\",\n \"evidence\": \"沾著濕黏水跡的紅色髮圈\",\n \"requires\": [],\n \"locked_text\": \"\"\n },\n \"3\": {\n \"name\": \"地下室器材室\",\n \"scene\": \"角落的老舊木櫃發出叩叩聲,地上有一排發光的鞋印。\",\n \"evidence\": \"刻有神秘符號的銅製鑰匙\",\n \"requires\": [\"2\", \"1\"],\n \"locked_text\": \"【無法調查】通往地下室的鐵門被鎖死了!必須收集齊「女廁」與「音樂教室」的所有關鍵線索才能解開門鎖。\"\n }\n },\n \"conclusions\": {\n \"1\": \"這一切只是舊校舍地基下陷產生的自然聲響\",\n \"2\": \"有學長在半夜偷偷溜進舊校舍試圖解開地下的封印\",\n \"3\": \"校園裡真的有幽靈在尋找失落的舊鑰匙\"\n },\n \"correct_answer\": \"2\",\n \"success\": \"推理正確!原來是有人深夜闖入搞鬼,真相大白了!\"\n}",
|
| 12 |
+
"main.py": "CASE_DATA = {\n \"title\": \"半夜的舊校舍\",\n \"intro\": \"深夜的校園傳出詭異琴聲與哭喊,你能揭開舊校舍的祕密嗎?\",\n \"locations\": {\n \"1\": {\n \"name\": \"廢棄音樂教室\",\n \"scene\": \"鋼琴蓋自己微微晃動,琴鍵上記號筆寫著血紅色的字。\",\n \"requires\": [\"red_scrunchie\"],\n \"locked_text\": \"【無法調查】音樂教室門口卡著一張沾滿水跡的舊告示,似乎要先查清楚「走廊女廁」的怪異事件才敢進去...\",\n \"evidence\": {\n \"id\": \"sheet_music\",\n \"name\": \"散落一地的老舊樂譜碎片\",\n \"detail\": \"樂譜邊緣有燒焦痕跡,上面記著怪異的音符。\",\n },\n },\n \"2\": {\n \"name\": \"走廊盡頭的女廁\",\n \"scene\": \"最後一間廁所門半開,鏡子上滿是水氣與詭異手印。\",\n \"requires\": [],\n \"locked_text\": \"\",\n \"evidence\": {\n \"id\": \"red_scrunchie\",\n \"name\": \"沾著濕黏水跡的紅色髮圈\",\n \"detail\": \"髮圈上纏著幾根長髮,還散發著淡樟腦味。\",\n },\n },\n \"3\": {\n \"name\": \"地下室器材室\",\n \"scene\": \"角落的老舊木櫃發出叩叩聲,地上有一排發光的鞋印。\",\n \"requires\": [\"red_scrunchie\", \"sheet_music\"],\n \"locked_text\": \"【無法調查】通往地下室的鐵門被鎖死了!必須收集齊「女廁」與「音樂教室」的所有關鍵線索才能解開門鎖。\",\n \"evidence\": {\n \"id\": \"bronze_key\",\n \"name\": \"刻有神秘符號的銅製鑰匙\",\n \"detail\": \"金屬表面冰冷刺骨,刻痕看起來像是手刻的。\",\n },\n },\n },\n \"conclusions\": {\n \"1\": \"這一切只是舊校舍地基下陷產生的自然聲響\",\n \"2\": \"有學長在半夜偷偷溜進舊校舍試圖解開地下的封印\",\n \"3\": \"校園裡真的有幽靈在尋找失落的舊鑰匙\",\n },\n \"correct_answer\": \"2\",\n \"success\": \"推理正確!原來是有人深夜闖入搞鬼,真相大白了!\",\n}\n\nevidence_bag = []\n\n\ndef get_collected_ids():\n return [item[\"id\"] for item in evidence_bag]\n\n\ndef investigate(location_id):\n loc = CASE_DATA[\"locations\"].get(location_id)\n if not loc:\n print(\"\\n無效的地點!\")\n return\n\n collected_ids = get_collected_ids()\n missing_reqs = [req for req in loc[\"requires\"] if req not in collected_ids]\n\n if missing_reqs:\n print(f\"\\n{loc['locked_text']}\")\n return\n\n print(f\"\\n地點:{loc['name']}\")\n print(f\"現場:{loc['scene']}\")\n\n ev = loc[\"evidence\"]\n if ev[\"id\"] not in collected_ids:\n evidence_bag.append(ev)\n print(f\"找到��物:{ev['name']}({ev['detail']})\")\n else:\n print(\"此地點的證物已經收集過了。\")\n\n\ndef show_evidence():\n if not evidence_bag:\n print(\"\\n目前證物袋是空的,快去尋找線索吧!\")\n else:\n print(\"\\n=== 目前收集到的證物 ===\")\n for i, item in enumerate(evidence_bag, 1):\n print(f\"{i}. {item['name']} - {item['detail']}\")\n\n\ndef make_deduction():\n if len(evidence_bag) < 3:\n print(f\"\\n證物不足:目前 {len(evidence_bag)}/3。請依序搜查所有地點!\")\n return False\n\n print(\"\\n哪一個說法最符合所有證物?\")\n for key, text in CASE_DATA[\"conclusions\"].items():\n print(f\"{key}. {text}\")\n\n answer = input(\"你的推理:\").strip()\n\n if answer == CASE_DATA[\"correct_answer\"]:\n print(f\"\\n{CASE_DATA['success']}\")\n return True\n else:\n print(\"\\n推理錯誤,這種說法無法解釋所有異象,再試試看。\")\n return False\n\n\ndef show_menu():\n print(f\"\\n=== 校園謎案調查局:{CASE_DATA['title']} ===\")\n print(\"1. 調查廢棄音樂教室\")\n print(\"2. 調查走廊盡頭的女廁\")\n print(\"3. 調查地下室器材室\")\n print(\"4. 查看證物袋\")\n print(\"5. 提出推理\")\n print(\"6. 逃離現場\")\n\n\ndef main():\n print(CASE_DATA[\"intro\"])\n\n while True:\n show_menu()\n choice = input(\"請選擇:\").strip()\n\n if choice in CASE_DATA[\"locations\"]:\n investigate(choice)\n elif choice == \"4\":\n show_evidence()\n elif choice == \"5\":\n if make_deduction():\n break\n elif choice == \"6\":\n print(\"\\n你感到一陣惡寒,決定先撤離舊校舍。\")\n break\n else:\n print(\"\\n請輸入 1~6。\")\n\n\nif __name__ == \"__main__\":\n main()"
|
| 13 |
+
}
|
| 14 |
+
}
|