{"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-03-27T18:52:22","modified_gmt":"2026-03-27T10:52:22","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<div data-elementor-type=\"wp-page\" data-elementor-id=\"7390\" class=\"elementor elementor-7390\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e34d4c5 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e34d4c5\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-39f1e16\" data-id=\"39f1e16\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9fa5e96 elementor-widget elementor-widget-html\" data-id=\"9fa5e96\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"zh-TW\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>\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: 10px;\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=\"10\">1<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task1b\" data-score=\"20\">2<\/button>\r\n <button type=\"button\" class=\"score-button\" data-task=\"sec_task1b\" data-score=\"30\">3<\/button>\r\n <button type=\"button\" class=\"score-button max-score\" data-task=\"sec_task1b\" data-score=\"40\">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 &#8211; \u968a\u4f0d\u8a08\u5206\u7cfb\u7d71 \ud83c\udfc6 \u521d\u4e2d\u7d44\u4efb\u52d9\u8cfd \u9ede\u64ca &#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":7234,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","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":16,"href":"https:\/\/www.peachcp.com\/wro-hk\/wp-json\/wp\/v2\/pages\/7390\/revisions"}],"predecessor-version":[{"id":7754,"href":"https:\/\/www.peachcp.com\/wro-hk\/wp-json\/wp\/v2\/pages\/7390\/revisions\/7754"}],"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}]}}