{"id":7382,"date":"2026-02-23T15:00:52","date_gmt":"2026-02-23T07:00:52","guid":{"rendered":"https:\/\/www.peachcp.com\/wro-hk\/?page_id=7382"},"modified":"2026-05-18T13:50:19","modified_gmt":"2026-05-18T05:50:19","slug":"wro2026-onlinescoresheet-mission-elementary","status":"publish","type":"page","link":"https:\/\/www.peachcp.com\/wro-hk\/hk-selection\/wro2026\/wro2026-onlinescoresheet-mission-elementary\/","title":{"rendered":"WRO2026\u8a08\u5206\u8868-\u4efb\u52d9\u8cfd\uff08\u5c0f\u5b78\u7d44\uff09"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"7382\" class=\"elementor elementor-7382\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-abe2a82 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"abe2a82\" 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-b4c10b5\" data-id=\"b4c10b5\" 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-83d409d elementor-widget elementor-widget-html\" data-id=\"83d409d\" 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>\n<html lang=\"zh-TW\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>\u5c0f\u5b78\u7d44 - \u968a\u4f0d\u8a08\u5206\u7cfb\u7d71<\/title>\n <style>\n        :root {\n            --primary-color: #005E92;\n            --secondary-color: #DB291A;\n            --accent-color: #ea4335;\n            --background-color: #f8f9fa;\n            --card-color: #ffffff;\n            --text-color: #202124;\n            --border-color: #dadce0;\n        }\n        \n        * {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n        }\n        \n        body {\n            font-family: 'Segoe UI', 'Microsoft JhengHei', sans-serif;\n            background-color: var(--background-color);\n            color: var(--text-color);\n            line-height: 1.5;\n        }\n        \n        .container {\n            max-width: auto;\n            margin: 0 auto;\n            padding: 10px;\n        }\n        \n        .score-header {\n            text-align: center;\n            margin-bottom: 15px;\n            padding: 15px 10px;\n            background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));\n            color: white;\n            border-radius: 8px;\n            box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n        }\n        \n        .logo {\n            font-size: 1.8em;\n            margin-bottom: 5px;\n        }\n        \n        .subtitle {\n            font-size: 1em;\n            opacity: 0.9;\n        }\n        .rule-grid {\n            display: grid;\n            grid-template-columns: repeat(3, 1fr);\n            gap: 12px;\n            margin-top: 12px;\n        }        \n        .rule-btn {\n            display: inline-block;\n            margin: 8px;\n            padding: 8px 20px;\n            background: linear-gradient(135deg, rgba(255,255,255,0.2), rgba(255,255,255,0.1));\n            color: white;\n            text-decoration: none;\n            border-radius: 8px;\n            font-size: 16px;\n            font-weight: 500;\n            cursor: pointer;\n            transition: all 0.3s ease;\n            border: 1px solid rgba(255, 255, 255, 0.3);\n            box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n        }\n        \n        .rule-btn:hover {\n            background: linear-gradient(135deg, rgba(255,255,255,0.3), rgba(255,255,255,0.2));\n            transform: translateY(-2px);\n            color: white;\n            border-color: rgba(255, 255, 255, 0.6);\n            box-shadow: 0 4px 8px rgba(0,0,0,0.15);\n        }\n\n        \n        .card {\n            background-color: var(--card-color);\n            border-radius: 8px;\n            padding: 15px;\n            box-shadow: 0 1px 5px rgba(0,0,0,0.08);\n            margin-bottom: 15px;\n        }\n        \n        .total-display {\n            position: sticky;\n            position: -webkit-sticky;\n            top: 10px;\n            z-index: 99;\n            text-align: center;\n            padding: 15px;\n            margin: 20px 0;\n            background: linear-gradient(135deg, #f8f9fa, #e9ecef);\n            border-radius: 10px;\n            border: 2px solid var(--border-color);\n        }\n        \n        .total-label {\n            font-size: 2em;\n            color: #666;\n            margin-bottom: 5px;\n            color: var(--secondary-color);\n        }\n        \n        .total-score {\n            font-size: 2em;\n            font-weight: bold;\n            color: var(--secondary-color);\n        }\n        \n        .max-score-note {\n            font-size: 0.9em;\n            color: #666;\n            text-align: center;\n            margin-top: 5px;\n        }\n        \n        .reset-btn {\n            background-color: #666;\n            color: white;\n            border: none;\n            padding: 12px 20px;\n            border-radius: 6px;\n            font-size: 16px;\n            font-weight: 600;\n            cursor: pointer;\n            transition: all 0.3s;\n            width: 100%;\n            margin-top: 20px;\n        }\n        \n        .reset-btn:hover {\n            background-color: #555;\n            transform: translateY(-2px);\n            box-shadow: 0 4px 8px rgba(0,0,0,0.2);\n        }        \n        \/* \u8a08\u5206\u6309\u9215\u5340\u57df *\/\n        .scoring-section {\n            margin-bottom: 30px;\n        }\n        \n        .task-header {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            margin-bottom: 15px;\n            padding: 10px 15px;\n            background: #f1f8ff;\n            border-radius: 8px;\n            border-left: 4px solid var(--primary-color);\n        }\n        \n        .task-title {\n            font-weight: 600;\n            color: #333;\n        }\n        \n        .task-score {\n            font-weight: bold;\n            font-size: 1em;\n            color: var(--secondary-color);\n        }\n        \n        .button-group {\n            display: grid;\n            grid-template-columns: repeat(7, 1fr);\n            gap: 8px;\n            margin-bottom: 15px;\n        }\n        \n        @media (max-width: 768px) {\n            .rule-grid {\n                grid-template-columns: 1fr;\n                gap: 0px;\n            }\n            \n            .rule-btn {\n                white-space: normal;\n                padding: 12px 16px;\n                justify-content: center;\n            }\n            \n            .button-group {\n                grid-template-columns: repeat(4, 1fr);\n            }\n            \n            .task-score {\n                position: relative;\n                min-width: 40px;\n                text-align: right;\n                color: transparent;\n            }\n            \n            .task-score span {\n                color: var(--secondary-color) !important;\n                font-weight: bold;\n                font-size: 1.1em;\n                display: inline-block;\n            }\n            \n            .task-header {\n                padding: 8px 10px;\n            }\n            \n            .task-title {\n                font-size: 0.95em;\n                line-height: 1.3;\n            }\n            \n            @media (max-width: 480px) {\n                .task-title {\n                    font-size: 0.9em;\n                }\n                \n                .task-score span {\n                    font-size: 1em !important;\n                }\n            }\n        }\n        \n        @media (min-width: 769px) {\n            .task-score {\n                color: inherit;\n            }\n            \n            .task-score span {\n                color: inherit;\n                font-size: inherit;\n            }\n        }\n        \n        .score-button {\n            padding: 12px 5px;\n            border: 2px solid var(--border-color);\n            background: white;\n            border-radius: 6px;\n            font-size: 16px;\n            font-weight: 600;\n            cursor: pointer;\n            transition: all 0.2s;\n            text-align: center;\n        }\n        \n        .score-button:hover {\n            transform: translateY(-2px);\n            box-shadow: 0 3px 6px rgba(0,0,0,0.1);\n        }\n        \n        .score-button.selected {\n            background-color: var(--primary-color);\n            color: white;\n            border-color: var(--primary-color);\n        }\n\n        .score-button.max-score.selected {\n            background-color: var(--secondary-color);\n            color: white;\n            border-color: var(--secondary-color);\n        }\n        \n <\/style>\n<\/head>\n<body>\n<div class=\"container\">\n<div class=\"score-header\">\n<div class=\"logo\" id=\"competitionTitle\">\ud83c\udfc6 \u5c0f\u5b78\u7d44\u4efb\u52d9\u8cfd<\/div>\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>\n<div class=\"rule-grid\">\n <a href=\"#\" onclick=\"openGeneralRuleWithConfirm(event)\" class=\"rule-btn\">\ud83d\udccb \u7e3d\u5247<\/a>\n <a href=\"#\" onclick=\"openHKRuleWithConfirm(event)\" class=\"rule-btn\">\ud83c\udded\ud83c\uddf0 \u9999\u6e2f\u5340\u898f\u5247<\/a>\n <a href=\"#\" onclick=\"openEngRuleWithConfirm(event)\" class=\"rule-btn\">\ud83c\udf0d \u570b\u969b\u8cfd\u898f\u5247<\/a>\n <\/div>\n <\/div>\n        \n<div class=\"main-content\">\n<div>\n<div class=\"card\">\n                    \n<div class=\"total-display\">\n<div style=\"display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px;\">\n<div style=\"display: flex; align-items: center;\">\n <span class=\"total-label\">\u7e3d\u5206:<\/span>\n <span class=\"total-score\" id=\"totalScoreDisplay\">0<\/span>\n <span class=\"max-score-note\" id=\"maxScoreNote\">\/255<\/span>\n <\/div>\n<div style=\"display: flex; align-items: center; gap: 10px;\">\n <span style=\"font-size: 1.2em;\">\u23f1\ufe0f<\/span>\n <span id=\"timerDisplay\" style=\"font-size: 1.5em; font-weight: bold; font-family: monospace; color: var(--primary-color);\">00:00.00<\/span>\n <\/div>\n <\/div>\n<div style=\"display: flex; justify-content: center; gap: 15px; margin-top: 5px;\">\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>\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>\n <\/div>\n <\/div>\n                    \n                    \n<div id=\"primaryTasks\" class=\"competition-tasks\">\n                        \n<div class=\"scoring-section\">\n<div class=\"task-header\">\n<div class=\"task-title\">1a. \u96fb\u7dda<u>\u5b8c\u5168\u9032\u5165<\/u>\u7070\u8272\u5340\u57df\u53ca\u4fdd\u6301\u76f4\u7acb<\/div>\n<div class=\"task-score\">\u5206\u6578: <span id=\"task1aScore\">0<\/span><\/div>\n <\/div>\n<div class=\"button-group\">\n <button type=\"button\" class=\"score-button\" data-task=\"task1a\" data-score=\"0\">0<\/button>\n <button type=\"button\" class=\"score-button\" data-task=\"task1a\" data-score=\"15\">1<\/button>\n <button type=\"button\" class=\"score-button max-score\" data-task=\"task1a\" data-score=\"30\">2<\/button>\n <\/div>\n <\/div>\n                        \n<div class=\"scoring-section\">\n<div class=\"task-header\">\n<div class=\"task-title\">1b. \u96fb\u7dda\u53ea\u6709<u>\u90e8\u5206\u9032\u5165<\/u>\u7070\u8272\u5340\u57df\u6216\u975e\u76f4\u7acb<\/div>\n<div class=\"task-score\">\u5206\u6578: <span id=\"task1bScore\">0<\/span><\/div>\n <\/div>\n                            \n<div class=\"button-group\">\n <button type=\"button\" class=\"score-button\" data-task=\"task1b\" data-score=\"0\">0<\/button>\n <button type=\"button\" class=\"score-button\" data-task=\"task1b\" data-score=\"5\">1<\/button>\n <button type=\"button\" class=\"score-button max-score\" data-task=\"task1b\" data-score=\"10\">2<\/button>\n <\/div>\n <\/div>\n\n                        \n<div class=\"scoring-section\">\n<div class=\"task-header\">\n<div class=\"task-title\">2a. \u9ea5\u514b\u98a8<u>\u5b8c\u5168\u9032\u5165<\/u>\u9ea5\u514b\u98a8\u76ee\u6a19\u5340\u57df\u53ca\u4fdd\u6301\u76f4\u7acb\u3002<\/div>\n<div class=\"task-score\">\u5206\u6578: <span id=\"task2aScore\">0<\/span><\/div>\n <\/div>\n                            \n<div class=\"button-group\">\n <button type=\"button\" class=\"score-button\" data-task=\"task2a\" data-score=\"0\">0<\/button>\n <button type=\"button\" class=\"score-button max-score\" data-task=\"task2a\" data-score=\"20\">1<\/button>\n <\/div>\n <\/div>\n                        \n<div class=\"scoring-section\">\n<div class=\"task-header\">\n<div class=\"task-title\">2b. \u9ea5\u514b\u98a8\u53ea\u6709<u>\u90e8\u5206\u9032\u5165<\/u>\u9ea5\u514b\u98a8\u76ee\u6a19\u5340\u57df\u6216\u975e\u76f4\u7acb\u3002<\/div>\n<div class=\"task-score\">\u5206\u6578: <span id=\"task2bScore\">0<\/span><\/div>\n <\/div>\n                            \n<div class=\"button-group\">\n <button type=\"button\" class=\"score-button\" data-task=\"task2b\" data-score=\"0\">0<\/button>\n <button type=\"button\" class=\"score-button max-score\" data-task=\"task2b\" data-score=\"10\">1<\/button>\n <\/div>\n <\/div>\n                        \n<div class=\"scoring-section\">\n<div class=\"task-header\">\n<div class=\"task-title\">2c. \u6a02\u5668<u>\u5b8c\u5168\u9032\u5165<\/u>\u5f8c\u53f0\u5340\u57df\u3002<\/div>\n<div class=\"task-score\">\u5206\u6578: <span id=\"task2cScore\">0<\/span><\/div>\n <\/div>\n                            \n<div class=\"button-group\">\n <button type=\"button\" class=\"score-button\" data-task=\"task2c\" data-score=\"0\">0<\/button>\n <button type=\"button\" class=\"score-button\" data-task=\"task2c\" data-score=\"15\">1<\/button>\n <button type=\"button\" class=\"score-button\" data-task=\"task2c\" data-score=\"30\">2<\/button>\n <button type=\"button\" class=\"score-button max-score\" data-task=\"task2c\" data-score=\"45\">3<\/button>\n <\/div>\n <\/div> \n\n                        \n<div class=\"scoring-section\">\n<div class=\"task-header\">\n<div class=\"task-title\">3a. \u97f3\u7b26<u>\u5b8c\u5168\u9032\u5165<\/u>\u5c0d\u61c9\u984f\u8272\u7684\u97f3\u7b26\u76ee\u6a19\u5340\u57df\uff08\u5305\u62ec\u7070\u8272\u908a\u908a\u6846\uff09\u53ca\u4fdd\u6301\u76f4\u7acb<\/div>\n<div class=\"task-score\">\u5206\u6578: <span id=\"task3aScore\">0<\/span><\/div>\n <\/div>\n\n<div class=\"button-group\" style=\"margin-top: 15px;\">\n <button type=\"button\" class=\"score-button\" data-task=\"task3a\" data-score=\"0\">0<\/button>\n <button type=\"button\" class=\"score-button\" data-task=\"task3a\" data-score=\"20\">1<\/button>\n <button type=\"button\" class=\"score-button\" data-task=\"task3a\" data-score=\"40\">2<\/button>\n <button type=\"button\" class=\"score-button\" data-task=\"task3a\" data-score=\"60\">3<\/button>\n <button type=\"button\" class=\"score-button\" data-task=\"task3a\" data-score=\"80\">4<\/button>\n <button type=\"button\" class=\"score-button\" data-task=\"task3a\" data-score=\"100\">5<\/button>\n <button type=\"button\" class=\"score-button max-score\" data-task=\"task3a\" data-score=\"120\">6<\/button>\n <\/div>\n <\/div>\n                        \n<div class=\"scoring-section\">\n<div class=\"task-header\">\n<div class=\"task-title\">3b. \u97f3\u7b26\u53ea\u6709<u>\u90e8\u5206\u9032\u5165<\/u>\u5c0d\u61c9\u984f\u8272\u7684\u97f3\u7b26\u76ee\u6a19\u5340\u57df\uff08\u5305\u62ec\u7070\u8272\u908a\u6846\uff09\u6216\u975e\u76f4\u7acb<\/div>\n<div class=\"task-score\">\u5206\u6578: <span id=\"task3bScore\">0<\/span><\/div>\n <\/div>\n\n<div class=\"button-group\" style=\"margin-top: 15px;\">\n <button type=\"button\" class=\"score-button\" data-task=\"task3b\" data-score=\"0\">0<\/button>\n <button type=\"button\" class=\"score-button\" data-task=\"task3b\" data-score=\"10\">1<\/button>\n <button type=\"button\" class=\"score-button\" data-task=\"task3b\" data-score=\"20\">2<\/button>\n <button type=\"button\" class=\"score-button\" data-task=\"task3b\" data-score=\"30\">3<\/button>\n <button type=\"button\" class=\"score-button\" data-task=\"task3b\" data-score=\"40\">4<\/button>\n <button type=\"button\" class=\"score-button\" data-task=\"task3b\" data-score=\"50\">5<\/button>\n <button type=\"button\" class=\"score-button max-score\" data-task=\"task3b\" data-score=\"60\">6<\/button>\n <\/div>\n <\/div>\n\n                        \n<div class=\"scoring-section\">\n<div class=\"task-header\">\n<div class=\"task-title\">4a. \u8b5c\u865f\u6c92\u6709\u88ab\u640d\u58de\u6216\u79fb\u52d5<\/div>\n<div class=\"task-score\">\u5206\u6578: <span id=\"bonus1Score\">0<\/span><\/div>\n <\/div>\n                            \n<div class=\"button-group\">\n <button type=\"button\" class=\"score-button\" data-task=\"bonus1\" data-score=\"0\">0<\/button>\n <button type=\"button\" class=\"score-button max-score\" data-task=\"bonus1\" data-score=\"10\">1<\/button>\n <\/div>\n <\/div>\n                        \n<div class=\"scoring-section\">\n<div class=\"task-header\">\n<div class=\"task-title\">4b. \u63da\u8072\u5668\u6c92\u6709\u88ab\u640d\u58de\u6216\u79fb\u52d5<\/div>\n<div class=\"task-score\">\u5206\u6578: <span id=\"bonus2Score\">0<\/span><\/div>\n <\/div>\n                            \n<div class=\"button-group\">\n <button type=\"button\" class=\"score-button\" data-task=\"bonus2\" data-score=\"0\">0<\/button>\n <button type=\"button\" class=\"score-button\" data-task=\"bonus2\" data-score=\"10\">1<\/button>\n <button type=\"button\" class=\"score-button max-score\" data-task=\"bonus2\" data-score=\"20\">2<\/button>\n <\/div>\n <\/div>\n                        \n<div class=\"scoring-section\">\n<div class=\"task-header\">\n<div class=\"task-title\">4c. \u64f4\u97f3\u5668\u6c92\u6709\u88ab\u640d\u58de\u6216\u79fb\u52d5<\/div>\n<div class=\"task-score\">\u5206\u6578: <span id=\"bonus3Score\">0<\/span><\/div>\n <\/div>\n                            \n<div class=\"button-group\">\n <button type=\"button\" class=\"score-button\" data-task=\"bonus3\" data-score=\"0\">0<\/button>\n <button type=\"button\" class=\"score-button max-score\" data-task=\"bonus3\" data-score=\"10\">1<\/button>\n <\/div>\n <\/div>\n <\/div>\n                    \n                    \n<div style=\"display: flex; gap: 10px; margin-top: 20px;\">\n <button type=\"button\" class=\"reset-btn\" id=\"resetButton\" style=\"flex: 1;\">\u91cd\u7f6e\u5206\u6578<\/button>\n <button type=\"button\" class=\"reset-btn\" id=\"saveRecordBtn\" style=\"flex: 1;\">\u4fdd\u5b58\u8a18\u9304<\/button>\n <\/div>\n                    \n                    \n<div id=\"recordsDisplay\" style=\"margin-top: 20px; padding: 15px; background: #fff; border-radius: 8px; border: 1px solid var(--border-color);\">\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>\n <\/h4>\n<div id=\"recordsList\" style=\"max-height: 300px; overflow-y: auto;\">\n<div style=\"text-align: center; color: #999; padding: 20px;\">\u66ab\u7121\u4fdd\u5b58\u8a18\u9304<\/div>\n <\/div>\n<div style=\"margin-top: 10px; text-align: right;\">\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>\n <\/div>\n <\/div> \n <\/div>\n <\/div>\n <\/div>\n <\/div>\n    \n <script>\n        function openGeneralRuleWithConfirm(event) {\n            event.preventDefault(); \/\/ Prevent default anchor behavior\n            \n            \/\/ Show confirmation dialog\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\");\n            \n            if (userConfirmed) {\n                \/\/ Open the rules document in a new window\n                const rulesUrl = \"https:\/\/docs.google.com\/document\/d\/15u26AYV-2ihYvuhptItKmeDlLqkKfXoR\/edit#heading=h.gjdgxs\";\n                window.open(rulesUrl, \"_blank\");\n            }\n        } \n        function openHKRuleWithConfirm(event) {\n            event.preventDefault(); \/\/ Prevent default anchor behavior\n            \n            \/\/ Show confirmation dialog\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\");\n            \n            if (userConfirmed) {\n                \/\/ Open the rules document in a new window\n                const rulesUrl = \"https:\/\/docs.google.com\/document\/d\/1hlm-ZO9gNYR0rZCA5ITj-osMaK_tKORkBcHSna64m7o\/edit?usp=drive_link\";\n                window.open(rulesUrl, \"_blank\");\n            }\n        }    \n        function openEngRuleWithConfirm(event) {\n            event.preventDefault(); \/\/ Prevent default anchor behavior\n            \n            \/\/ Show confirmation dialog\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\");\n            \n            if (userConfirmed) {\n                \/\/ Open the rules document in a new window\n                const rulesUrl = \"https:\/\/wro-association.org\/wp-content\/uploads\/WRO-2026-RoboMission-Elementary-Game-Rules.pdf\";\n                window.open(rulesUrl, \"_blank\");\n            }\n        }            \n\n        \/\/ \u5c0f\u5b78\u7d44\u8a08\u5206\u6578\u64da\n        let scores = {\n            task1a: 0,\n            task1b: 0,\n            task2a: 0,\n            task2b: 0,\n            task2c: 0,\n            task3a: 0,\n            task3b: 0,\n            bonus1: 0,\n            bonus2: 0,\n            bonus3: 0\n        };\n        \n        \/\/ \u81e8\u6642\u8a18\u9304\u4fdd\u5b58\u529f\u80fd\n        let savedRecords = [];\n        \n        \/\/ \u5c07\u6642\u9593\u5b57\u4e32\u8f49\u63db\u70ba\u6beb\u79d2\u6578\u4ee5\u4fbf\u6bd4\u8f03\n        function timeStringToMilliseconds(timeStr) {\n            const parts = timeStr.split(\/[:.]\/);\n            const minutes = parseInt(parts[0]);\n            const seconds = parseInt(parts[1]);\n            const milliseconds = parseInt(parts[2]) * 10; \/\/ \u56e0\u70ba\u986f\u793a\u7684\u662f\u5169\u4f4d\u6578\u6beb\u79d2\uff08xx\/100\uff09\n            return minutes * 60000 + seconds * 1000 + milliseconds;\n        }\n        \n        \/\/ \u6392\u5e8f\u8a18\u9304\uff1a\u5206\u6578\u9ad8\u81f3\u4f4e\uff0c\u5206\u6578\u76f8\u540c\u5247\u6642\u9593\u77ed\u512a\u5148\n        function sortRecords(records) {\n            return records.sort((a, b) => {\n                \/\/ \u5148\u6309\u5206\u6578\u964d\u5e8f\u6392\u5217\n                const scoreA = parseInt(a.score);\n                const scoreB = parseInt(b.score);\n                if (scoreA !== scoreB) {\n                    return scoreB - scoreA; \/\/ \u5206\u6578\u9ad8\u7684\u5728\u524d\u9762\n                }\n                \n                \/\/ \u5206\u6578\u76f8\u540c\uff0c\u6309\u6642\u9593\u5347\u5e8f\u6392\u5217\uff08\u6642\u9593\u77ed\u7684\u5728\u524d\uff09\n                const timeA = timeStringToMilliseconds(a.time);\n                const timeB = timeStringToMilliseconds(b.time);\n                return timeA - timeB;\n            });\n        }\n        \n        \/\/ \u6dfb\u52a0\u65b0\u8a18\u9304\n        function addRecord() {\n            const totalScore = document.getElementById('totalScoreDisplay').textContent;\n            const maxScore = '255';\n            const currentTime = document.getElementById('timerDisplay').textContent;\n            \n            const record = {\n                id: Date.now(),\n                timestamp: new Date().toLocaleString(),\n                score: totalScore,\n                maxScore: maxScore,\n                time: currentTime,\n                percentage: Math.round((parseInt(totalScore) \/ parseInt(maxScore)) * 100)\n            };\n            \n            savedRecords.push(record);\n            savedRecords = sortRecords(savedRecords); \/\/ \u6392\u5e8f\n            displayRecords();\n        }\n        \n        \/\/ \u522a\u9664\u55ae\u500b\u8a18\u9304\n        function deleteRecord(id) {\n            savedRecords = savedRecords.filter(record => record.id !== id);\n            displayRecords();\n        }\n        \n        \/\/ \u6e05\u9664\u6240\u6709\u8a18\u9304\n        function clearAllRecords() {\n            savedRecords = [];\n            displayRecords();\n        }\n        \n        \/\/ \u986f\u793a\u8a18\u9304\n        function displayRecords() {\n            const recordsList = document.getElementById('recordsList');\n            \n            if (savedRecords.length === 0) {\n                recordsList.innerHTML = '<div style=\"text-align: center; color: #999; padding: 20px;\">\u66ab\u7121\u4fdd\u5b58\u8a18\u9304<\/div>';\n                return;\n            }\n            \n            let html = '';\n            savedRecords.forEach((record, index) => {\n                \/\/ \u6dfb\u52a0\u6392\u540d\u6a19\u793a\uff08\u53ef\u9078\uff09\n                const rankIcon = index === 0 ? '\ud83e\udd47' : index === 1 ? '\ud83e\udd48' : index === 2 ? '\ud83e\udd49' : '';\n                \n                html += `\n<div style=\"margin-bottom: 10px; padding: 12px; background: #f8f9fa; border-radius: 6px; border-left: 4px solid #005E92; position: relative;\">\n<div style=\"display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px;\">\n<div style=\"display: flex; align-items: center; gap: 5px;\">\n                                ${rankIcon ? `<span style=\"font-size: 1.2em;\">${rankIcon}<\/span>` : ''}\n <span style=\"font-size: 0.85em; color: #666;\">#${index + 1}<\/span>\n <\/div>\n <span style=\"font-size: 0.85em; color: #666;\">${record.timestamp}<\/span>\n <\/div>\n<div style=\"display: flex; justify-content: space-between; align-items: center;\">\n<div>\n <span style=\"font-size: 1.2em; font-weight: bold; color: #005E92;\">${record.score}<\/span>\n <span style=\"color: #666;\">\/${record.maxScore}<\/span>\n <span style=\"margin-left: 10px; padding: 2px 8px; background: #005E92; color: white; border-radius: 12px; font-size: 0.85em;\">\n                                    ${record.percentage}%\n <\/span>\n <\/div>\n<div style=\"display: flex; align-items: center; gap: 15px;\">\n <span style=\"font-family: monospace; color: #005E92;\">\u23f1\ufe0f ${record.time}<\/span>\n <button onclick=\"deleteRecord(${record.id})\" style=\"padding: 4px 10px; background: #f44336; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 12px;\">\n                                    \u522a\u9664\n <\/button>\n <\/div>\n <\/div>\n <\/div>\n                `;\n            });\n            \n            recordsList.innerHTML = html;\n        }\n        \n        window.deleteRecord = deleteRecord;\n        \n        \/\/ \u8a08\u6642\u5668\u529f\u80fd\n        let timerInterval = null;\n        let timerStartTime = null;\n        let timerElapsedTime = 0;\n        let isTimerRunning = false;\n        \n        function updateTimerDisplay() {\n            const totalMilliseconds = timerElapsedTime;\n            const minutes = Math.floor(totalMilliseconds \/ 60000);\n            const seconds = Math.floor((totalMilliseconds % 60000) \/ 1000);\n            const milliseconds = Math.floor((totalMilliseconds % 1000) \/ 10);\n            \n            document.getElementById('timerDisplay').textContent = \n                `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}.${milliseconds.toString().padStart(2, '0')}`;\n        }\n\n        \/\/ \u958b\u59cb\/\u505c\u6b62\u5207\u63db\u529f\u80fd\n        function toggleTimer() {\n            const startStopBtn = document.getElementById('timerStartStopBtn');\n            \n            if (!isTimerRunning) {\n                \/\/ \u958b\u59cb\u8a08\u6642\n                isTimerRunning = true;\n                timerStartTime = Date.now() - timerElapsedTime;\n                \n                timerInterval = setInterval(() => {\n                    timerElapsedTime = Date.now() - timerStartTime;\n                    updateTimerDisplay();\n                }, 10);\n                \n                startStopBtn.textContent = '\u66ab\u505c';\n                startStopBtn.style.background = '#FFC107';\n                startStopBtn.style.color = 'black';\n            } else {\n                \/\/ \u66ab\u505c\u8a08\u6642\n                isTimerRunning = false;\n                clearInterval(timerInterval);\n                timerInterval = null;\n                timerElapsedTime = Date.now() - timerStartTime;\n                \n                startStopBtn.textContent = '\u958b\u59cb';\n                startStopBtn.style.background = '#4CAF50';\n                startStopBtn.style.color = 'white';\n            }\n        }\n\n        \/\/ \u8a08\u6642\u5668\u91cd\u7f6e\n        function resetTimer() {\n            \/\/ \u66ab\u505c\u8a08\u6642\u5668\n            if (isTimerRunning) {\n                isTimerRunning = false;\n                clearInterval(timerInterval);\n                timerInterval = null;\n            }\n            \n            timerElapsedTime = 0;\n            timerStartTime = null;\n            updateTimerDisplay();\n            \n            \/\/ \u91cd\u7f6e\u6309\u9215\u6587\u5b57\u548c\u984f\u8272\n            const startStopBtn = document.getElementById('timerStartStopBtn');\n            startStopBtn.textContent = '\u958b\u59cb';\n            startStopBtn.style.background = '#4CAF50';\n            startStopBtn.style.color = 'white';\n        }\n        \n        \/\/ \u9078\u64c7\u5206\u6578\u6309\u9215\n        function selectScore(task, score) {\n            scores[task] = score;\n            updateScoreDisplay(task);\n            updateTotalScore();\n            \n            document.querySelectorAll(`.score-button[data-task=\"${task}\"]`).forEach(button => {\n                button.classList.remove('selected');\n                if (parseInt(button.dataset.score) === score) {\n                    button.classList.add('selected');\n                }\n            });\n        }\n        \n        function updateScoreDisplay(task) {\n            const displayElement = document.getElementById(`${task}Score`);\n            if (displayElement) {\n                displayElement.textContent = scores[task];\n            }\n        }\n        \n        function updateTotalScore() {\n            let total = 0;\n            Object.keys(scores).forEach(task => {\n                total += scores[task];\n            });\n            document.getElementById('totalScoreDisplay').textContent = total;\n        }\n        \n        function resetAllScores() {\n            Object.keys(scores).forEach(task => {\n                scores[task] = 0;\n                updateScoreDisplay(task);\n            });\n            \n            updateTotalScore();\n            \n            document.querySelectorAll('.score-button').forEach(button => {\n                button.classList.remove('selected');\n            });\n            \n            document.querySelectorAll('.score-button[data-score=\"0\"]').forEach(button => {\n                button.classList.add('selected');\n            });\n        }\n        \n        \/\/ \u521d\u59cb\u5316\u4e8b\u4ef6\u76e3\u807d\n        function initEventListeners() {\n            document.getElementById('timerStartStopBtn').addEventListener('click', toggleTimer);\n            document.getElementById('timerResetBtn').addEventListener('click', resetTimer);\n\n            document.querySelectorAll('.score-button').forEach(button => {\n                button.addEventListener('click', () => {\n                    const task = button.dataset.task;\n                    const score = parseInt(button.dataset.score);\n                    selectScore(task, score);\n                });\n            });\n            \n            document.getElementById('resetButton').addEventListener('click', resetAllScores);\n            \n            document.querySelectorAll('.score-button[data-score=\"0\"]').forEach(button => {\n                button.classList.add('selected');\n            });\n            \n            document.getElementById('saveRecordBtn').addEventListener('click', addRecord);\n            document.getElementById('clearRecordsBtn').addEventListener('click', clearAllRecords);\n        }\n        \n        document.addEventListener('DOMContentLoaded', function() {\n            initEventListeners();\n        });\n <\/script>\n<\/body>\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>\u5c0f\u5b78\u7d44 &#8211; \u968a\u4f0d\u8a08\u5206\u7cfb\u7d71 \ud83c\udfc6 \u5c0f\u5b78\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-7382","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.peachcp.com\/wro-hk\/wp-json\/wp\/v2\/pages\/7382","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=7382"}],"version-history":[{"count":46,"href":"https:\/\/www.peachcp.com\/wro-hk\/wp-json\/wp\/v2\/pages\/7382\/revisions"}],"predecessor-version":[{"id":7906,"href":"https:\/\/www.peachcp.com\/wro-hk\/wp-json\/wp\/v2\/pages\/7382\/revisions\/7906"}],"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=7382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}