Spaces:
Running
Running
Checkpoint L6Sat 蔡昊儒 week02
Browse files
classroom_data/checkpoints/L6Sat/蔡昊儒/week02.json
CHANGED
|
@@ -4,9 +4,9 @@
|
|
| 4 |
"display_name": "蔡昊儒",
|
| 5 |
"week_id": "week02",
|
| 6 |
"project_name": "校園謎案調查局",
|
| 7 |
-
"checkpoint_at":
|
| 8 |
"files": {
|
| 9 |
"case_data.json": "{\n \"title\": \"消失的校徽\",\n \"intro\": \"午休結束後,校慶展示櫃裡的校徽消失了。你能找出真相嗎?\",\n \"locations\": {\n \"1\": {\n \"name\": \"六年一班教室\",\n \"scene\": \"展示櫃半開,窗戶也沒有關好。\",\n \"evidence\": {\n \"id\": \"blue_fiber\",\n \"name\": \"窗框上的藍色纖維\",\n \"detail\": \"纖維顏色和清潔推車的布套相同。\"\n }\n },\n \"2\": {\n \"name\": \"操場司令台\",\n \"scene\": \"地面剛拖過,留下一道彎向圖書館的輪痕。\",\n \"evidence\": {\n \"id\": \"wheel_track\",\n \"name\": \"沾著亮粉的推車輪痕\",\n \"detail\": \"亮粉和展示櫃內的裝飾相同。\"\n }\n },\n \"3\": {\n \"name\": \"圖書館\",\n \"scene\": \"清潔推車停在書架旁,後方似乎有東西反光。\",\n \"requires\": [\"blue_fiber\", \"wheel_track\"],\n \"locked_text\": \"你看見推車,卻還不知道該檢查哪裡。也許要先找出它的移動路線。\",\n \"evidence\": {\n \"id\": \"badge\",\n \"name\": \"卡在推車後方的校徽\",\n \"detail\": \"校徽沒有損壞,背面黏著一小段藍色纖維。\"\n }\n }\n },\n \"conclusions\": {\n \"1\": \"有同學故意把校徽藏在圖書館\",\n \"2\": \"風吹起校徽,清潔推車不小心把它帶到圖書館\",\n \"3\": \"校徽從一開始就放在圖書館\"\n },\n \"correct_answer\": \"2\",\n \"success\": \"推理正確!風把校徽吹到布套上,推車經過教室後又將它帶到圖書館。這是一場意外。\"\n}\n",
|
| 10 |
-
"main.py": "\"\"\"Week 2:校園謎案調查局 Starter。\n\n先完成 TODO 1~4。程式必須能反覆探索、收集線索、查看證物並提出推理。\n\"\"\"\n\nCASE_TITLE = \"失火的房子\"\n\nLOCATIONS = {\n \"1\": {\n \"name\": \"廚房\",\n \"scene\": \"烏漆嗎黑\",\n \"evidence\": \"有電磁爐爆炸的痕跡\",\n },\n \"2\": {\n \"name\": \"客廳\",\n \"scene\": \"物品東倒西歪,有些物品燒焦\",\n \"evidence\": \"打火機在地上\",\n },\n \"3\": {\n \"name\": \"書房\",\n \"scene\": \"棉被蓋住一個屍體\",\n \"evidence\": \"屍體是房子主人的弟弟\",\n },\n}\n\nevidence_bag = []\n\n\ndef investigate(location_id):\n \"\"\"調查地點並將新線索放入證物袋。\"\"\"\n # TODO 1:確認 location_id 是否存在於 LOCATIONS。\n str_id = str(location_id)\n is_in_locations = False\n for i in LOCATIONS:\n if str_id == i:\n is_in_locations = True\n break\n if is_in_locations == False:\n return 0 \n # TODO 2:顯示地點名稱與現場描述。\n print(LOCATIONS[str_id][\"name\"])\n print(LOCATIONS[str_id][\"scene\"])\n # TODO 3:線索尚未取得時才 append 到 evidence_bag。\n if LOCATIONS[str_id][\"evidence\"] not in evidence_bag:\n evidence_bag.append(LOCATIONS[str_id][\"evidence\"])\n\n\ndef show_evidence():\n \"\"\"列出目前取得的所有證物。\"\"\"\n # TODO 4:沒有證物時顯示提示;否則以 1 開始編號列出。\n if evidence_bag == []:\n print(\"there is nothing in the bag bro\")\n else:\n for index, evidence in enumerate(evidence_bag, 0):\n print(f\"Clue {index+1}: {evidence}\")\n \n print(\"證物袋功能還沒完成。\")\n\n\ndef make_deduction():\n \"\"\"取得足夠證物後,讓玩家選擇真相。\"\"\"\n if len(evidence_bag) < 3:\n print(f\"證物不足:目前 {len(evidence_bag)}/3。再去調查吧!\")\n return False\n\n print(\"\\n哪一個說法最符合所有證物?\")\n print(\"1. 主人煮飯搞砸了\")\n print(\"2. 弟弟煮飯時去睡覺\")\n print(\"3. 主人用打火機點燃廚房,害死弟弟\")\n answer = input(\"你的推理:\").strip()\n\n # TODO 5(Checkpoint C):判斷答案,正確時回傳 True。\n if answer == \"2\":\n print(\"success\")\n return True\n print(\"推理判定還沒完成。\")\n return False\n\n\ndef show_menu():\n print(f\"\\n=== 校園謎案調查局:{CASE_TITLE} ===\")\n print(\"1. 調查
|
| 11 |
}
|
| 12 |
}
|
|
|
|
| 4 |
"display_name": "蔡昊儒",
|
| 5 |
"week_id": "week02",
|
| 6 |
"project_name": "校園謎案調查局",
|
| 7 |
+
"checkpoint_at": 1789804930330,
|
| 8 |
"files": {
|
| 9 |
"case_data.json": "{\n \"title\": \"消失的校徽\",\n \"intro\": \"午休結束後,校慶展示櫃裡的校徽消失了。你能找出真相嗎?\",\n \"locations\": {\n \"1\": {\n \"name\": \"六年一班教室\",\n \"scene\": \"展示櫃半開,窗戶也沒有關好。\",\n \"evidence\": {\n \"id\": \"blue_fiber\",\n \"name\": \"窗框上的藍色纖維\",\n \"detail\": \"纖維顏色和清潔推車的布套相同。\"\n }\n },\n \"2\": {\n \"name\": \"操場司令台\",\n \"scene\": \"地面剛拖過,留下一道彎向圖書館的輪痕。\",\n \"evidence\": {\n \"id\": \"wheel_track\",\n \"name\": \"沾著亮粉的推車輪痕\",\n \"detail\": \"亮粉和展示櫃內的裝飾相同。\"\n }\n },\n \"3\": {\n \"name\": \"圖書館\",\n \"scene\": \"清潔推車停在書架旁,後方似乎有東西反光。\",\n \"requires\": [\"blue_fiber\", \"wheel_track\"],\n \"locked_text\": \"你看見推車,卻還不知道該檢查哪裡。也許要先找出它的移動路線。\",\n \"evidence\": {\n \"id\": \"badge\",\n \"name\": \"卡在推車後方的校徽\",\n \"detail\": \"校徽沒有損壞,背面黏著一小段藍色纖維。\"\n }\n }\n },\n \"conclusions\": {\n \"1\": \"有同學故意把校徽藏在圖書館\",\n \"2\": \"風吹起校徽,清潔推車不小心把它帶到圖書館\",\n \"3\": \"校徽從一開始就放在圖書館\"\n },\n \"correct_answer\": \"2\",\n \"success\": \"推理正確!風把校徽吹到布套上,推車經過教室後又將它帶到圖書館。這是一場意外。\"\n}\n",
|
| 10 |
+
"main.py": "\"\"\"Week 2:校園謎案調查局 Starter。\n\n先完成 TODO 1~4。程式必須能反覆探索、收集線索、查看證物並提出推理。\n\"\"\"\n\nCASE_TITLE = \"失火的房子\"\n\nLOCATIONS = {\n \"1\": {\n \"name\": \"廚房\",\n \"scene\": \"烏漆嗎黑\",\n \"evidence\": \"有電磁爐爆炸的痕跡, 找到書房鑰匙\",\n },\n \"2\": {\n \"name\": \"客廳\",\n \"scene\": \"物品東倒西歪,有些物品燒焦\",\n \"evidence\": \"打火機在地上\",\n },\n \"3\": {\n \"name\": \"書房\",\n \"scene\": \"棉被蓋住一個屍體\",\n \"evidence\": \"屍體是房子主人的弟弟, 找到客廳鑰匙\",\n },\n}\n\nevidence_bag = []\n\n\ndef investigate(location_id):\n \"\"\"調查地點並將新線索放入證物袋。\"\"\"\n # TODO 1:確認 location_id 是否存在於 LOCATIONS。\n str_id = str(location_id)\n is_in_locations = False\n for i in LOCATIONS:\n if str_id == i:\n is_in_locations = True\n break\n if is_in_locations == False:\n return 0 \n \n # TODO 2:顯示地點名稱與現場描述。\n print(LOCATIONS[str_id][\"name\"])\n print(LOCATIONS[str_id][\"scene\"])\n # TODO 3:線索尚未取得時才 append 到 evidence_bag。\n if LOCATIONS[str_id][\"evidence\"] not in evidence_bag:\n if location_id == \"1\":\n evidence_bag.append(LOCATIONS[str_id][\"evidence\"])\n print(LOCATIONS[str_id][\"evidence\"])\n elif location_id == \"2\":\n if LOCATIONS[\"3\"][\"evidence\"] in evidence_bag:\n evidence_bag.append(LOCATIONS[str_id][\"evidence\"])\n print(LOCATIONS[str_id][\"evidence\"])\n else:\n print(\"the door is locked\")\n elif location_id == \"3\":\n if LOCATIONS[\"1\"][\"evidence\"] in evidence_bag:\n evidence_bag.append(LOCATIONS[str_id][\"evidence\"])\n print(LOCATIONS[str_id][\"evidence\"])\n else:\n print(\"the door is locked\")\n\ndef show_evidence():\n \"\"\"列出目前取得的所有證物。\"\"\"\n # TODO 4:沒有證物時顯示提示;否則以 1 開始編號列出。\n if evidence_bag == []:\n print(\"there is nothing in the bag bro\")\n else:\n for index, evidence in enumerate(evidence_bag, 0):\n print(f\"Clue {index+1}: {evidence}\")\n \n print(\"證物袋功能還沒完成。\")\n\n\ndef make_deduction():\n \"\"\"取得足夠證物後,讓玩家選擇真相。\"\"\"\n if len(evidence_bag) < 3:\n print(f\"證物不足:目前 {len(evidence_bag)}/3。再去調查吧!\")\n return False\n\n print(\"\\n哪一個說法最符合所有證物?\")\n print(\"1. 主人煮飯搞砸了\")\n print(\"2. 弟弟煮飯時去睡覺\")\n print(\"3. 主人用打火機點燃廚房,害死弟弟\")\n answer = input(\"你的推理:\").strip()\n\n # TODO 5(Checkpoint C):判斷答案,正確時回傳 True。\n if answer == \"2\":\n print(\"success\")\n return True\n print(\"推理判定還沒完成。\")\n return False\n\n\ndef show_menu():\n print(f\"\\n=== 校園謎案調查局:{CASE_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(\"午休結束後,校慶展示櫃裡的校徽消失了。你能找出真相嗎?\")\n\n while True:\n show_menu()\n choice = input(\"請選擇:\").strip()\n\n if choice in 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 break\n else:\n print(\"請輸入 1~6。\")\n\n\nif __name__ == \"__main__\":\n main()\n"
|
| 11 |
}
|
| 12 |
}
|