{"id":7390,"date":"2026-02-23T15:22:19","date_gmt":"2026-02-23T07:22:19","guid":{"rendered":"https:\/\/www.peachcp.com\/wro-hk\/?page_id=7390"},"modified":"2026-06-03T17:17:04","modified_gmt":"2026-06-03T09:17:04","slug":"wro2026-onlinescoresheet-mission-junior","status":"publish","type":"page","link":"https:\/\/www.peachcp.com\/wro-hk\/hk-selection\/wro2026\/wro2026-onlinescoresheet-mission-junior\/","title":{"rendered":"WRO2026\u8a08\u5206\u8868-\u4efb\u52d9\u8cfd\uff08\u521d\u4e2d\u7d44\uff09"},"content":{"rendered":"\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\r\n\r\n\r\n\r\n\r\n\u521d\u4e2d\u7d44 - \u968a\u4f0d\u8a08\u5206\u7cfb\u7d71<\/title>\r\n <style>\r\n :root {\r\n --primary-color: #005E92;\r\n --secondary-color: #DB291A;\r\n --accent-color: #ea4335;\r\n --background-color: #f8f9fa;\r\n --card-color: #ffffff;\r\n --text-color: #202124;\r\n --border-color: #dadce0;\r\n }\r\n \r\n * {\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n }\r\n \r\n body {\r\n font-family: 'Segoe UI', 'Microsoft JhengHei', sans-serif;\r\n background-color: var(--background-color);\r\n color: var(--text-color);\r\n line-height: 1.5;\r\n }\r\n \r\n .container {\r\n max-width: auto;\r\n margin: 0 auto;\r\n padding: 10px;\r\n }\r\n \r\n .score-header {\r\n text-align: center;\r\n margin-bottom: 15px;\r\n padding: 15px 10px;\r\n background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));\r\n color: white;\r\n border-radius: 8px;\r\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\r\n }\r\n \r\n .logo {\r\n font-size: 1.8em;\r\n margin-bottom: 5px;\r\n }\r\n \r\n .subtitle {\r\n font-size: 1em;\r\n opacity: 0.9;\r\n }\r\n .rule-grid {\r\n display: grid;\r\n grid-template-columns: repeat(3, 1fr);\r\n gap: 12px;\r\n margin-top: 12px;\r\n } \r\n .rule-btn {\r\n display: inline-block;\r\n margin: 8px;\r\n padding: 8px 20px;\r\n background: linear-gradient(135deg, rgba(255,255,255,0.2), rgba(255,255,255,0.1));\r\n color: white;\r\n text-decoration: none;\r\n border-radius: 8px;\r\n font-size: 16px;\r\n font-weight: 500;\r\n cursor: pointer;\r\n transition: all 0.3s ease;\r\n border: 1px solid rgba(255, 255, 255, 0.3);\r\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\r\n }\r\n \r\n .rule-btn:hover {\r\n background: linear-gradient(135deg, rgba(255,255,255,0.3), rgba(255,255,255,0.2));\r\n transform: translateY(-2px);\r\n color: white;\r\n border-color: rgba(255, 255, 255, 0.6);\r\n box-shadow: 0 4px 8px rgba(0,0,0,0.15);\r\n } \r\n \r\n .card {\r\n background-color: var(--card-color);\r\n border-radius: 8px;\r\n padding: 15px;\r\n box-shadow: 0 1px 5px rgba(0,0,0,0.08);\r\n margin-bottom: 15px;\r\n }\r\n \r\n .total-display {\r\n position: sticky;\r\n position: -webkit-sticky;\r\n top: 85px;\r\n z-index: 99;\r\n text-align: center;\r\n padding: 15px;\r\n margin: 20px 0;\r\n background: linear-gradient(135deg, #f8f9fa, #e9ecef);\r\n border-radius: 10px;\r\n border: 2px solid var(--border-color);\r\n }\r\n \r\n .total-label {\r\n font-size: 2em;\r\n color: #666;\r\n margin-bottom: 5px;\r\n color: var(--secondary-color);\r\n }\r\n \r\n .total-score {\r\n font-size: 2em;\r\n font-weight: bold;\r\n color: var(--secondary-color);\r\n }\r\n \r\n .max-score-note {\r\n font-size: 0.9em;\r\n color: #666;\r\n text-align: center;\r\n margin-top: 5px;\r\n }\r\n \r\n .reset-btn {\r\n background-color: #666;\r\n color: white;\r\n border: none;\r\n padding: 12px 20px;\r\n border-radius: 6px;\r\n font-size: 16px;\r\n font-weight: 600;\r\n cursor: pointer;\r\n transition: all 0.3s;\r\n width: 100%;\r\n margin-top: 20px;\r\n }\r\n \r\n .reset-btn:hover {\r\n background-color: #555;\r\n transform: translateY(-2px);\r\n box-shadow: 0 4px 8px rgba(0,0,0,0.2);\r\n } \r\n \/* \u8a08\u5206\u6309\u9215\u5340\u57df *\/\r\n .scoring-section {\r\n margin-bottom: 30px;\r\n }\r\n \r\n .task-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 15px;\r\n padding: 10px 15px;\r\n background: #f1f8ff;\r\n border-radius: 8px;\r\n border-left: 4px solid var(--primary-color);\r\n }\r\n \r\n .task-title {\r\n font-weight: 600;\r\n color: #333;\r\n }\r\n \r\n .task-score {\r\n font-weight: bold;\r\n font-size: 1em;\r\n color: var(--secondary-color);\r\n }\r\n \r\n .button-group {\r\n display: grid;\r\n grid-template-columns: repeat(7, 1fr);\r\n gap: 8px;\r\n margin-bottom: 15px;\r\n }\r\n \r\n @media (max-width: 768px) {\r\n .rule-grid {\r\n grid-template-columns: 1fr;\r\n gap: 0px;\r\n }\r\n \r\n .rule-btn {\r\n white-space: normal;\r\n padding: 12px 16px;\r\n justify-content: center;\r\n }\r\n .button-group {\r\n grid-template-columns: repeat(4, 1fr);\r\n }\r\n \r\n .task-score {\r\n position: relative;\r\n min-width: 40px;\r\n text-align: right;\r\n color: transparent;\r\n }\r\n \r\n .task-score span {\r\n color: var(--secondary-color) !important;\r\n font-weight: bold;\r\n font-size: 1.1em;\r\n display: inline-block;\r\n }\r\n \r\n .task-header {\r\n padding: 8px 10px;\r\n }\r\n \r\n .task-title {\r\n font-size: 0.95em;\r\n line-height: 1.3;\r\n }\r\n \r\n @media (max-width: 480px) {\r\n .task-title {\r\n font-size: 0.9em;\r\n }\r\n \r\n .task-score span {\r\n font-size: 1em !important;\r\n }\r\n }\r\n }\r\n \r\n @media (min-width: 769px) {\r\n .task-score {\r\n color: inherit;\r\n }\r\n \r\n .task-score span {\r\n color: inherit;\r\n font-size: inherit;\r\n }\r\n }\r\n \r\n .score-button {\r\n padding: 12px 5px;\r\n border: 2px solid var(--border-color);\r\n background: white;\r\n border-radius: 6px;\r\n font-size: 16px;\r\n font-weight: 600;\r\n cursor: pointer;\r\n transition: all 0.2s;\r\n text-align: center;\r\n }\r\n \r\n .score-button:hover {\r\n transform: translateY(-2px);\r\n box-shadow: 0 3px 6px rgba(0,0,0,0.1);\r\n }\r\n \r\n .score-button.selected {\r\n background-color: var(--primary-color);\r\n color: white;\r\n border-color: var(--primary-color);\r\n }\r\n\r\n .score-button.max-score.selected {\r\n background-color: var(--secondary-color);\r\n color: white;\r\n border-color: var(--secondary-color);\r\n }\r\n \r\n <\/style>\r\n<\/head>\r\n<body>\r\n<div class=\"container\">\r\n<div class=\"score-header\">\r\n<div class=\"logo\" id=\"competitionTitle\">\ud83c\udfc6 \u521d\u4e2d\u7d44\u4efb\u52d9\u8cfd<\/div>\r\n<div class=\"subtitle\">\u9ede\u64ca\u6309\u9215\u5feb\u901f\u7d00\u9304\u4efb\u52d9\u5b8c\u6210\u5ea6\uff0c\u5373\u6642\u8a08\u7b97\u7e3d\u5206<\/div>\r\n<div class=\"rule-grid\">\r\n <a href=\"#\" onclick=\"openGeneralRuleWithConfirm(event)\" class=\"rule-btn\">\ud83d\udccb \u7e3d\u5247<\/a>\r\n <a href=\"#\" onclick=\"openHKRuleWithConfirm(event)\" class=\"rule-btn\">\ud83c\udded\ud83c\uddf0 \u9999\u6e2f\u5340\u898f\u5247<\/a>\r\n <a href=\"#\" onclick=\"openEngRuleWithConfirm(event)\" class=\"rule-btn\">\ud83c\udf0d \u570b\u969b\u8cfd\u898f\u5247<\/a>\r\n <\/div>\r\n <\/div>\r\n \r\n<div class=\"main-content\">\r\n<div>\r\n<div class=\"card\">\r\n \r\n<div class=\"total-display\">\r\n<div style=\"display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px;\">\r\n<div style=\"display: flex; align-items: center;\">\r\n <span class=\"total-label\">\u7e3d\u5206:<\/span>\r\n <span class=\"total-score\" id=\"totalScoreDisplay\">0<\/span>\r\n <span class=\"max-score-note\" id=\"maxScoreNote\">\/230<\/span>\r\n <\/div>\r\n<div style=\"display: flex; align-items: center; gap: 10px;\">\r\n <span style=\"font-size: 1.2em;\">\u23f1\ufe0f<\/span>\r\n <span id=\"timerDisplay\" style=\"font-size: 1.5em; font-weight: bold; font-family: monospace; color: var(--primary-color);\">00:00.00<\/span>\r\n <\/div>\r\n <\/div>\r\n<div style=\"display: flex; justify-content: center; gap: 15px; margin-top: 5px;\">\r\n <button type=\"button\" id=\"timerStartStopBtn\" style=\"flex: 3; padding: 12px 0; background: #4CAF50; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 18px; font-weight: bold;\">\u958b\u59cb<\/button>\r\n <button type=\"button\" id=\"timerResetBtn\" style=\"flex: 1; padding: 8px 0; background: #f44336; color: white; border: none; border-radius: 6px; cursor: pointer; font-size: 16px;\">\u91cd\u7f6e<\/button>\r\n <\/div>\r\n <\/div>\r\n \r\n \r\n<div id=\"secondaryTasks\" class=\"competition-tasks\">\r\n \r\n<div class=\"scoring-section\">\r\n<div class=\"task-header\">\r\n<div class=\"task-title\">1a. \u904a\u5ba2<u>\u5b8c\u5168\u9032\u5165<\/u>\u5c0d\u61c9\u7684\u8457\u8272\u5340\u57df\u548c\u4fdd\u6301\u76f4\u7acb<\/div>\r\n<div class=\"task-score\">\u5206\u6578: <span id=\"sec_task1aScore\">0<\/span><\/div>\r\n <\/div>\r\n \r\n<div class=\"button-group\">\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task1a\" data-score=\"0\">0<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task1a\" data-score=\"10\">1<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task1a\" data-score=\"20\">2<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task1a\" data-score=\"30\">3<\/button>\r\n <button type=\"button\" class=\"score-button max-score\" data-task=\"sec_task1a\" data-score=\"40\">4<\/button>\r\n <\/div>\r\n <\/div>\r\n \r\n<div class=\"scoring-section\">\r\n<div class=\"task-header\">\r\n<div class=\"task-title\">1b. \u904a\u5ba2<u>\u90e8\u5206\u9032\u5165<\/u>\u5c0d\u61c9\u7684\u8457\u8272\u5340\u57df\u6216\u975e\u76f4\u7acb<\/div>\r\n<div class=\"task-score\">\u5206\u6578: <span id=\"sec_task1bScore\">0<\/span><\/div>\r\n <\/div>\r\n \r\n<div class=\"button-group\">\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task1b\" data-score=\"0\">0<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task1b\" data-score=\"5\">1<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task1b\" data-score=\"10\">2<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task1b\" data-score=\"15\">3<\/button>\r\n <button type=\"button\" class=\"score-button max-score\" data-task=\"sec_task1b\" data-score=\"20\">4<\/button>\r\n <\/div>\r\n <\/div>\r\n\r\n \r\n<div class=\"scoring-section\">\r\n<div class=\"task-header\">\r\n<div class=\"task-title\">2a. \u7d05\u8272\u5854\u6a13<u>\u5b8c\u5168\u9032\u5165<\/u>\u7d05\u8272\u76ee\u6a19\u5340\u57df\uff08\u5305\u62ec\u6a59\u8272\u908a\u6846\uff09\u4e26\u4fdd\u6301\u76f4\u7acb\u3002<\/div>\r\n<div class=\"task-score\">\u5206\u6578: <span id=\"sec_task2aScore\">0<\/span><\/div>\r\n <\/div>\r\n \r\n<div class=\"button-group\">\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task2a\" data-score=\"0\">0<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task2a\" data-score=\"15\">1<\/button>\r\n <button type=\"button\" class=\"score-button max-score\" data-task=\"sec_task2a\" data-score=\"30\">2<\/button>\r\n <\/div>\r\n <\/div>\r\n \r\n<div class=\"scoring-section\">\r\n<div class=\"task-header\">\r\n<div class=\"task-title\">2b. \u7d05\u8272\u5854\u6a13<u>\u90e8\u5206\u9032\u5165<\/u>\u7d05\u8272\u76ee\u6a19\u5340\u57df\uff08\u5305\u62ec\u6a59\u8272\u908a\u6846\uff09\u4e26\u4fdd\u6301\u76f4\u7acb<\/div>\r\n<div class=\"task-score\">\u5206\u6578: <span id=\"sec_task2bScore\">0<\/span><\/div>\r\n <\/div>\r\n \r\n<div class=\"button-group\">\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task2b\" data-score=\"0\">0<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task2b\" data-score=\"10\">1<\/button>\r\n <button type=\"button\" class=\"score-button max-score\" data-task=\"sec_task2b\" data-score=\"20\">2<\/button>\r\n <\/div>\r\n <\/div>\r\n \r\n<div class=\"scoring-section\">\r\n<div class=\"task-header\">\r\n<div class=\"task-title\">2c. \u9ec3\u8272\u5854\u9802\u6b63\u78ba\u5730\u64fa\u653e\u5728\u5854\u57fa\u4e0a\uff0c\u4e14\u5854\u57fa\u4ecd\u7136<u>\u5b8c\u5168\u9032\u5165<\/u>\u9ec3\u8272\u76ee\u6a19\u5340\u57df\uff08\u5305\u62ec\u6a59\u8272\u908a\u6846\uff09<\/div>\r\n<div class=\"task-score\">\u5206\u6578: <span id=\"sec_task2cScore\">0<\/span><\/div>\r\n <\/div>\r\n \r\n<div class=\"button-group\">\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task2c\" data-score=\"0\">0<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task2c\" data-score=\"25\">1<\/button>\r\n <button type=\"button\" class=\"score-button max-score\" data-task=\"sec_task2c\" data-score=\"50\">2<\/button>\r\n <\/div>\r\n <\/div> \r\n \r\n<div class=\"scoring-section\">\r\n<div class=\"task-header\">\r\n<div class=\"task-title\">2d. \u9ec3\u8272\u5854\u9802\u6b63\u78ba\u5730\u64fa\u653e\u5728\u5854\u57fa\u4e0a\uff0c\u4e14\u5854\u57fa\u53ea\u6709<u>\u90e8\u5206\u9032\u5165<\/u>\u9ec3\u8272\u76ee\u6a19\u5340\u57df\uff08\u5305\u62ec\u6a59\u8272\u908a\u6846\uff09<\/div>\r\n<div class=\"task-score\">\u5206\u6578: <span id=\"sec_task2dScore\">0<\/span><\/div>\r\n <\/div>\r\n \r\n<div class=\"button-group\">\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task2d\" data-score=\"0\">0<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task2d\" data-score=\"15\">1<\/button>\r\n <button type=\"button\" class=\"score-button max-score\" data-task=\"sec_task2d\" data-score=\"30\">2<\/button>\r\n <\/div>\r\n <\/div> \r\n\r\n \r\n<div class=\"scoring-section\">\r\n<div class=\"task-header\">\r\n<div class=\"task-title\">3a. \u6587\u7269<u>\u5b8c\u5168\u9032\u5165<\/u>\u535a\u7269\u9928\u5167\u7684\u5c0d\u61c9\u8457\u8272\u5c55\u89bd\u5340\u4e26\u4fdd\u6301\u76f4\u7acb<\/div>\r\n<div class=\"task-score\">\u5206\u6578: <span id=\"sec_task3aScore\">0<\/span><\/div>\r\n <\/div>\r\n\r\n<div class=\"button-group\" style=\"margin-top: 15px;\">\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task3a\" data-score=\"0\">0<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task3a\" data-score=\"15\">1<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task3a\" data-score=\"30\">2<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task3a\" data-score=\"45\">3<\/button>\r\n <button type=\"button\" class=\"score-button max-score\" data-task=\"sec_task3a\" data-score=\"60\">4<\/button>\r\n <\/div>\r\n <\/div>\r\n \r\n<div class=\"scoring-section\">\r\n<div class=\"task-header\">\r\n<div class=\"task-title\">3b. \u6587\u7269<u>\u90e8\u5206\u9032\u5165<\/u>\u535a\u7269\u9928\u5167\u7684\u5c0d\u61c9\u8457\u8272\u5c55\u89bd\u5340\u6216\u975e\u76f4\u7acb<\/div>\r\n<div class=\"task-score\">\u5206\u6578: <span id=\"sec_task3bScore\">0<\/span><\/div>\r\n <\/div>\r\n\r\n<div class=\"button-group\" style=\"margin-top: 15px;\">\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task3b\" data-score=\"0\">0<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task3b\" data-score=\"5\">1<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task3b\" data-score=\"10\">2<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task3b\" data-score=\"15\">3<\/button>\r\n <button type=\"button\" class=\"score-button max-score\" data-task=\"sec_task3b\" data-score=\"20\">4<\/button>\r\n <\/div>\r\n <\/div>\r\n\r\n \r\n<div class=\"scoring-section\">\r\n<div class=\"task-header\">\r\n<div class=\"task-title\">4. \u5875\u571f\u9846\u7c92\u6c92\u6709\u63a5\u89f8\u9d5d\u5375\u77f3\u5340\u57df<\/div>\r\n<div class=\"task-score\">\u5206\u6578: <span id=\"sec_task4Score\">0<\/span><\/div>\r\n <\/div>\r\n \r\n<div class=\"button-group\">\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task4\" data-score=\"0\">0<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task4\" data-score=\"2\">1<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task4\" data-score=\"4\">2<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task4\" data-score=\"6\">3<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task4\" data-score=\"8\">4<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task4\" data-score=\"10\">5<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task4\" data-score=\"12\">6<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task4\" data-score=\"14\">7<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task4\" data-score=\"16\">8<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task4\" data-score=\"18\">9<\/button>\r\n <button type=\"button\" class=\"score-button max-score\" data-task=\"sec_task4\" data-score=\"20\">10<\/button>\r\n <\/div>\r\n <\/div>\r\n\r\n \r\n<div class=\"scoring-section\">\r\n<div class=\"task-header\">\r\n<div class=\"task-title\">5a. \u9694\u6b04\u6c92\u6709\u88ab\u640d\u58de\u6216\u79fb\u52d5<\/div>\r\n<div class=\"task-score\">\u5206\u6578: <span id=\"sec_bonus1Score\">0<\/span><\/div>\r\n <\/div>\r\n \r\n<div class=\"button-group\">\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_bonus1\" data-score=\"0\">0<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_bonus1\" data-score=\"10\">1<\/button>\r\n <button type=\"button\" class=\"score-button max-score\" data-task=\"sec_bonus1\" data-score=\"20\">2<\/button>\r\n <\/div>\r\n <\/div>\r\n \r\n<div class=\"scoring-section\">\r\n<div class=\"task-header\">\r\n<div class=\"task-title\">5b. \u9e1a\u9d61\u6c92\u6709\u88ab\u640d\u58de\u6216\u79fb\u52d5<\/div>\r\n<div class=\"task-score\">\u5206\u6578: <span id=\"sec_bonus2Score\">0<\/span><\/div>\r\n <\/div>\r\n \r\n<div class=\"button-group\">\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_bonus2\" data-score=\"0\">0<\/button>\r\n <button type=\"button\" class=\"score-button max-score\" data-task=\"sec_bonus2\" data-score=\"10\">1<\/button>\r\n <\/div>\r\n <\/div>\r\n <\/div>\r\n \r\n \r\n<div style=\"display: flex; gap: 10px; margin-top: 20px;\">\r\n <button type=\"button\" class=\"reset-btn\" id=\"resetButton\" style=\"flex: 1;\">\u91cd\u7f6e\u5206\u6578<\/button>\r\n <button type=\"button\" class=\"reset-btn\" id=\"saveRecordBtn\" style=\"flex: 1;\">\u4fdd\u5b58\u8a18\u9304<\/button>\r\n <\/div>\r\n \r\n \r\n<div id=\"recordsDisplay\" style=\"margin-top: 20px; padding: 15px; background: #fff; border-radius: 8px; border: 1px solid var(--border-color);\">\r\n<h4 style=\"margin-bottom: 10px; color: #333; display: flex; align-items: center;\">\u6210\u7e3e\u8a18\u9304 <span style=\"font-size: 0.8em; color: #999; margin-left: 10px;\">(\u5237\u65b0\u9801\u9762\u5f8c\u6d88\u5931)<\/span>\r\n <\/h4>\r\n<div id=\"recordsList\" style=\"max-height: 300px; overflow-y: auto;\">\r\n<div style=\"text-align: center; color: #999; padding: 20px;\">\u66ab\u7121\u4fdd\u5b58\u8a18\u9304<\/div>\r\n <\/div>\r\n<div style=\"margin-top: 10px; text-align: right;\">\r\n <button type=\"button\" id=\"clearRecordsBtn\" style=\"padding: 5px 15px; background-color: #f44336; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 14px;\">\u6e05\u9664\u6240\u6709\u8a18\u9304<\/button>\r\n <\/div>\r\n <\/div> \r\n <\/div>\r\n <\/div>\r\n <\/div>\r\n <\/div>\r\n \r\n <script>\r\n function openGeneralRuleWithConfirm(event) {\r\n event.preventDefault(); \/\/ Prevent default anchor behavior\r\n \r\n \/\/ Show confirmation dialog\r\n const userConfirmed = confirm(\"\u60a8\u78ba\u5b9a\u8981\u67e5\u770b\u3010\u7e3d\u5247\u3011\u55ce\uff1f\\n\\n\u5c07\u6703\u958b\u555f\u65b0\u7684\u8996\u7a97\u3002\");\r\n \r\n if (userConfirmed) {\r\n \/\/ Open the rules document in a new window\r\n const rulesUrl = \"https:\/\/docs.google.com\/document\/d\/15u26AYV-2ihYvuhptItKmeDlLqkKfXoR\/edit#heading=h.gjdgxs\";\r\n window.open(rulesUrl, \"_blank\");\r\n }\r\n } \r\n function openHKRuleWithConfirm(event) {\r\n event.preventDefault(); \/\/ Prevent default anchor behavior\r\n \r\n \/\/ Show confirmation dialog\r\n const userConfirmed = confirm(\"\u60a8\u78ba\u5b9a\u8981\u67e5\u770b\u3010\u9999\u6e2f\u5340\u898f\u5247\u3011\u55ce\uff1f\\n\\n\u5c07\u6703\u958b\u555f\u65b0\u7684\u8996\u7a97\u3002\");\r\n \r\n if (userConfirmed) {\r\n \/\/ Open the rules document in a new window\r\n const rulesUrl = \"https:\/\/docs.google.com\/document\/d\/13mphbdkJrWgQP5x1t9RlYH4JNF0QE8cjMulUM79VuAU\/edit?usp=drive_link\";\r\n window.open(rulesUrl, \"_blank\");\r\n }\r\n } \r\n function openEngRuleWithConfirm(event) {\r\n event.preventDefault(); \/\/ Prevent default anchor behavior\r\n \r\n \/\/ Show confirmation dialog\r\n const userConfirmed = confirm(\"\u60a8\u78ba\u5b9a\u8981\u67e5\u770b\u3010\u570b\u969b\u8cfd\u898f\u5247\u3011\u55ce\uff1f\\n\\n\u5c07\u6703\u958b\u555f\u65b0\u7684\u8996\u7a97\u3002\");\r\n \r\n if (userConfirmed) {\r\n \/\/ Open the rules document in a new window\r\n const rulesUrl = \"https:\/\/wro-association.org\/wp-content\/uploads\/WRO-2026-RoboMission-Junior-Game-Rules.pdf\";\r\n window.open(rulesUrl, \"_blank\");\r\n }\r\n } \r\n\r\n \/\/ \u521d\u4e2d\u7d44\u8a08\u5206\u6578\u64da\r\n let scores = {\r\n sec_task1a: 0,\r\n sec_task1b: 0,\r\n sec_task2a: 0,\r\n sec_task2b: 0,\r\n sec_task2c: 0,\r\n sec_task2d: 0,\r\n sec_task3a: 0,\r\n sec_task3b: 0,\r\n sec_task4: 0,\r\n sec_bonus1: 0,\r\n sec_bonus2: 0\r\n };\r\n \r\n \/\/ \u81e8\u6642\u8a18\u9304\u4fdd\u5b58\u529f\u80fd\r\n let savedRecords = [];\r\n \r\n \/\/ \u5c07\u6642\u9593\u5b57\u4e32\u8f49\u63db\u70ba\u6beb\u79d2\u6578\u4ee5\u4fbf\u6bd4\u8f03\r\n function timeStringToMilliseconds(timeStr) {\r\n const parts = timeStr.split(\/[:.]\/);\r\n const minutes = parseInt(parts[0]);\r\n const seconds = parseInt(parts[1]);\r\n const milliseconds = parseInt(parts[2]) * 10; \/\/ \u56e0\u70ba\u986f\u793a\u7684\u662f\u5169\u4f4d\u6578\u6beb\u79d2\uff08xx\/100\uff09\r\n return minutes * 60000 + seconds * 1000 + milliseconds;\r\n }\r\n \r\n \/\/ \u6392\u5e8f\u8a18\u9304\uff1a\u5206\u6578\u9ad8\u81f3\u4f4e\uff0c\u5206\u6578\u76f8\u540c\u5247\u6642\u9593\u77ed\u512a\u5148\r\n function sortRecords(records) {\r\n return records.sort((a, b) => {\r\n \/\/ \u5148\u6309\u5206\u6578\u964d\u5e8f\u6392\u5217\r\n const scoreA = parseInt(a.score);\r\n const scoreB = parseInt(b.score);\r\n if (scoreA !== scoreB) {\r\n return scoreB - scoreA; \/\/ \u5206\u6578\u9ad8\u7684\u5728\u524d\u9762\r\n }\r\n \r\n \/\/ \u5206\u6578\u76f8\u540c\uff0c\u6309\u6642\u9593\u5347\u5e8f\u6392\u5217\uff08\u6642\u9593\u77ed\u7684\u5728\u524d\uff09\r\n const timeA = timeStringToMilliseconds(a.time);\r\n const timeB = timeStringToMilliseconds(b.time);\r\n return timeA - timeB;\r\n });\r\n }\r\n \r\n \/\/ \u6dfb\u52a0\u65b0\u8a18\u9304\r\n function addRecord() {\r\n const totalScore = document.getElementById('totalScoreDisplay').textContent;\r\n const maxScore = '230';\r\n const currentTime = document.getElementById('timerDisplay').textContent;\r\n \r\n const record = {\r\n id: Date.now(),\r\n timestamp: new Date().toLocaleString(),\r\n score: totalScore,\r\n maxScore: maxScore,\r\n time: currentTime,\r\n percentage: Math.round((parseInt(totalScore) \/ parseInt(maxScore)) * 100)\r\n };\r\n \r\n savedRecords.push(record);\r\n savedRecords = sortRecords(savedRecords); \/\/ \u6392\u5e8f\r\n displayRecords();\r\n }\r\n \r\n \/\/ \u522a\u9664\u55ae\u500b\u8a18\u9304\r\n function deleteRecord(id) {\r\n savedRecords = savedRecords.filter(record => record.id !== id);\r\n displayRecords();\r\n }\r\n \r\n \/\/ \u6e05\u9664\u6240\u6709\u8a18\u9304\r\n function clearAllRecords() {\r\n savedRecords = [];\r\n displayRecords();\r\n }\r\n \r\n \/\/ \u986f\u793a\u8a18\u9304\r\n function displayRecords() {\r\n const recordsList = document.getElementById('recordsList');\r\n \r\n if (savedRecords.length === 0) {\r\n recordsList.innerHTML = '<div style=\"text-align: center; color: #999; padding: 20px;\">\u66ab\u7121\u4fdd\u5b58\u8a18\u9304<\/div>';\r\n return;\r\n }\r\n \r\n let html = '';\r\n savedRecords.forEach((record, index) => {\r\n \/\/ \u6dfb\u52a0\u6392\u540d\u6a19\u793a\r\n const rankIcon = index === 0 ? '\ud83e\udd47' : index === 1 ? '\ud83e\udd48' : index === 2 ? '\ud83e\udd49' : '';\r\n \r\n html += `\r\n<div style=\"margin-bottom: 10px; padding: 12px; background: #f8f9fa; border-radius: 6px; border-left: 4px solid #005E92; position: relative;\">\r\n<div style=\"display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px;\">\r\n<div style=\"display: flex; align-items: center; gap: 5px;\">\r\n ${rankIcon ? `<span style=\"font-size: 1.2em;\">${rankIcon}<\/span>` : ''}\r\n <span style=\"font-size: 0.85em; color: #666;\">#${index + 1}<\/span>\r\n <\/div>\r\n <span style=\"font-size: 0.85em; color: #666;\">${record.timestamp}<\/span>\r\n <\/div>\r\n<div style=\"display: flex; justify-content: space-between; align-items: center;\">\r\n<div>\r\n <span style=\"font-size: 1.2em; font-weight: bold; color: #005E92;\">${record.score}<\/span>\r\n <span style=\"color: #666;\">\/${record.maxScore}<\/span>\r\n <span style=\"margin-left: 10px; padding: 2px 8px; background: #005E92; color: white; border-radius: 12px; font-size: 0.85em;\">\r\n ${record.percentage}%\r\n <\/span>\r\n <\/div>\r\n<div style=\"display: flex; align-items: center; gap: 15px;\">\r\n <span style=\"font-family: monospace; color: #005E92;\">\u23f1\ufe0f ${record.time}<\/span>\r\n <button onclick=\"deleteRecord(${record.id})\" style=\"padding: 4px 10px; background: #f44336; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 12px;\">\r\n \u522a\u9664\r\n <\/button>\r\n <\/div>\r\n <\/div>\r\n <\/div>\r\n `;\r\n });\r\n \r\n recordsList.innerHTML = html;\r\n }\r\n \r\n window.deleteRecord = deleteRecord;\r\n \r\n \/\/ \u8a08\u6642\u5668\u529f\u80fd\r\n let timerInterval = null;\r\n let timerStartTime = null;\r\n let timerElapsedTime = 0;\r\n let isTimerRunning = false;\r\n \r\n function updateTimerDisplay() {\r\n const totalMilliseconds = timerElapsedTime;\r\n const minutes = Math.floor(totalMilliseconds \/ 60000);\r\n const seconds = Math.floor((totalMilliseconds % 60000) \/ 1000);\r\n const milliseconds = Math.floor((totalMilliseconds % 1000) \/ 10);\r\n \r\n document.getElementById('timerDisplay').textContent = \r\n `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}.${milliseconds.toString().padStart(2, '0')}`;\r\n }\r\n\r\n \/\/ \u958b\u59cb\/\u505c\u6b62\u5207\u63db\u529f\u80fd\r\n function toggleTimer() {\r\n const startStopBtn = document.getElementById('timerStartStopBtn');\r\n \r\n if (!isTimerRunning) {\r\n \/\/ \u958b\u59cb\u8a08\u6642\r\n isTimerRunning = true;\r\n timerStartTime = Date.now() - timerElapsedTime;\r\n \r\n timerInterval = setInterval(() => {\r\n timerElapsedTime = Date.now() - timerStartTime;\r\n updateTimerDisplay();\r\n }, 10);\r\n \r\n startStopBtn.textContent = '\u66ab\u505c';\r\n startStopBtn.style.background = '#FFC107';\r\n startStopBtn.style.color = 'black';\r\n } else {\r\n \/\/ \u66ab\u505c\u8a08\u6642\r\n isTimerRunning = false;\r\n clearInterval(timerInterval);\r\n timerInterval = null;\r\n timerElapsedTime = Date.now() - timerStartTime;\r\n \r\n startStopBtn.textContent = '\u958b\u59cb';\r\n startStopBtn.style.background = '#4CAF50';\r\n startStopBtn.style.color = 'white';\r\n }\r\n }\r\n\r\n \/\/ \u8a08\u6642\u5668\u91cd\u7f6e\r\n function resetTimer() {\r\n \/\/ \u66ab\u505c\u8a08\u6642\u5668\r\n if (isTimerRunning) {\r\n isTimerRunning = false;\r\n clearInterval(timerInterval);\r\n timerInterval = null;\r\n }\r\n \r\n timerElapsedTime = 0;\r\n timerStartTime = null;\r\n updateTimerDisplay();\r\n \r\n \/\/ \u91cd\u7f6e\u6309\u9215\u6587\u5b57\u548c\u984f\u8272\r\n const startStopBtn = document.getElementById('timerStartStopBtn');\r\n startStopBtn.textContent = '\u958b\u59cb';\r\n startStopBtn.style.background = '#4CAF50';\r\n startStopBtn.style.color = 'white';\r\n }\r\n\r\n \r\n \/\/ \u9078\u64c7\u5206\u6578\u6309\u9215\r\n function selectScore(task, score) {\r\n scores[task] = score;\r\n updateScoreDisplay(task);\r\n updateTotalScore();\r\n \r\n document.querySelectorAll(`.score-button[data-task=\"${task}\"]`).forEach(button => {\r\n button.classList.remove('selected');\r\n if (parseInt(button.dataset.score) === score) {\r\n button.classList.add('selected');\r\n }\r\n });\r\n }\r\n \r\n function updateScoreDisplay(task) {\r\n const displayElement = document.getElementById(`${task}Score`);\r\n if (displayElement) {\r\n displayElement.textContent = scores[task];\r\n }\r\n }\r\n \r\n function updateTotalScore() {\r\n let total = 0;\r\n Object.keys(scores).forEach(task => {\r\n total += scores[task];\r\n });\r\n document.getElementById('totalScoreDisplay').textContent = total;\r\n }\r\n \r\n function resetAllScores() {\r\n Object.keys(scores).forEach(task => {\r\n scores[task] = 0;\r\n updateScoreDisplay(task);\r\n });\r\n \r\n updateTotalScore();\r\n \r\n document.querySelectorAll('.score-button').forEach(button => {\r\n button.classList.remove('selected');\r\n });\r\n \r\n document.querySelectorAll('.score-button[data-score=\"0\"]').forEach(button => {\r\n button.classList.add('selected');\r\n });\r\n }\r\n \r\n \/\/ \u521d\u59cb\u5316\u4e8b\u4ef6\u76e3\u807d\r\n function initEventListeners() {\r\n document.getElementById('timerStartStopBtn').addEventListener('click', toggleTimer);\r\n document.getElementById('timerResetBtn').addEventListener('click', resetTimer);\r\n\r\n document.querySelectorAll('.score-button').forEach(button => {\r\n button.addEventListener('click', () => {\r\n const task = button.dataset.task;\r\n const score = parseInt(button.dataset.score);\r\n selectScore(task, score);\r\n });\r\n });\r\n \r\n document.getElementById('resetButton').addEventListener('click', resetAllScores);\r\n \r\n document.querySelectorAll('.score-button[data-score=\"0\"]').forEach(button => {\r\n button.classList.add('selected');\r\n });\r\n \r\n document.getElementById('saveRecordBtn').addEventListener('click', addRecord);\r\n document.getElementById('clearRecordsBtn').addEventListener('click', clearAllRecords);\r\n }\r\n \r\n document.addEventListener('DOMContentLoaded', function() {\r\n initEventListeners();\r\n });\r\n <\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u521d\u4e2d\u7d44 – \u968a\u4f0d\u8a08\u5206\u7cfb\u7d71 \ud83c\udfc6 \u521d\u4e2d\u7d44\u4efb\u52d9\u8cfd \u9ede\u64ca …<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":7234,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-7390","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.peachcp.com\/wro-hk\/wp-json\/wp\/v2\/pages\/7390","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.peachcp.com\/wro-hk\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.peachcp.com\/wro-hk\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.peachcp.com\/wro-hk\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.peachcp.com\/wro-hk\/wp-json\/wp\/v2\/comments?post=7390"}],"version-history":[{"count":25,"href":"https:\/\/www.peachcp.com\/wro-hk\/wp-json\/wp\/v2\/pages\/7390\/revisions"}],"predecessor-version":[{"id":7973,"href":"https:\/\/www.peachcp.com\/wro-hk\/wp-json\/wp\/v2\/pages\/7390\/revisions\/7973"}],"up":[{"embeddable":true,"href":"https:\/\/www.peachcp.com\/wro-hk\/wp-json\/wp\/v2\/pages\/7234"}],"wp:attachment":[{"href":"https:\/\/www.peachcp.com\/wro-hk\/wp-json\/wp\/v2\/media?parent=7390"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}