{"id":8299,"date":"2026-08-17T18:28:14","date_gmt":"2026-08-17T10:28:14","guid":{"rendered":"https:\/\/www.peachcp.com\/wro-hk\/?page_id=8299"},"modified":"2026-08-17T19:03:58","modified_gmt":"2026-08-17T11:03:58","slug":"hkrc-curling-scoresheet","status":"publish","type":"page","link":"https:\/\/www.peachcp.com\/wro-hk\/hkrc-curling-scoresheet\/","title":{"rendered":"HKRC CURLING CHALLENGE \u51b0\u58fa\u6311\u6230\u8cfd\u7dda\u4e0a\u8a08\u5206\u8868"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"8299\" class=\"elementor elementor-8299\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-19bbaac elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"19bbaac\" 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-ec1bfb1\" data-id=\"ec1bfb1\" 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-55f7c33 elementor-widget elementor-widget-image\" data-id=\"55f7c33\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img data-opt-id=1049010675  fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"189\" src=\"https:\/\/ml4wzkob9jho.i.optimole.com\/cb:kW2f.79b\/w:1024\/h:242\/q:mauto\/f:best\/https:\/\/www.peachcp.com\/wro-hk\/wp-content\/uploads\/2026\/08\/PixPin_2026-08-17_18-26-27.png\" class=\"attachment-large size-large wp-image-8301\" alt=\"\" srcset=\"https:\/\/ml4wzkob9jho.i.optimole.com\/cb:kW2f.79b\/w:1024\/h:242\/q:mauto\/f:best\/https:\/\/www.peachcp.com\/wro-hk\/wp-content\/uploads\/2026\/08\/PixPin_2026-08-17_18-26-27.png 1024w, https:\/\/ml4wzkob9jho.i.optimole.com\/cb:kW2f.79b\/w:300\/h:71\/q:mauto\/f:best\/https:\/\/www.peachcp.com\/wro-hk\/wp-content\/uploads\/2026\/08\/PixPin_2026-08-17_18-26-27.png 300w, https:\/\/ml4wzkob9jho.i.optimole.com\/cb:kW2f.79b\/w:768\/h:181\/q:mauto\/f:best\/https:\/\/www.peachcp.com\/wro-hk\/wp-content\/uploads\/2026\/08\/PixPin_2026-08-17_18-26-27.png 768w, https:\/\/ml4wzkob9jho.i.optimole.com\/cb:kW2f.79b\/w:1526\/h:360\/q:mauto\/f:best\/https:\/\/www.peachcp.com\/wro-hk\/wp-content\/uploads\/2026\/08\/PixPin_2026-08-17_18-26-27.png 1526w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-65ae867 elementor-icon-list--layout-inline elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"65ae867\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items elementor-inline-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-inline-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/docs.google.com\/document\/d\/1Nk8nwTxhpMPfk8-3ZRdqPpzH7wBslrDu\/edit\" target=\"_blank\" rel=\"noopener\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-file-pdf\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">\u6bd4\u8cfd\u898f\u5247<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d7203e6 elementor-widget elementor-widget-html\" data-id=\"d7203e6\" 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-HK\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <style>\n        body {\n            font-family: Arial, sans-serif;\n            max-width: 600px;\n            margin: 10px auto;\n            padding: 15px;\n            padding-bottom: 160px;\n            background: #f4f4f9;\n        }\n        h1 {\n            text-align: center;\n            color: #333;\n            font-size: 20px;\n            margin-bottom: 5px;\n        }\n        .subtitle {\n            text-align: center;\n            color: #666;\n            font-size: 13px;\n            margin-bottom: 15px;\n        }\n        \n        \/* \u7d44\u5225\u5207\u63db\u958b\u95dc *\/\n        .mode-toggle {\n            display: flex;\n            gap: 6px;\n            margin-bottom: 15px;\n        }\n        .mode-btn {\n            flex: 1;\n            padding: 10px 4px;\n            font-size: 13px;\n            font-weight: bold;\n            border: 2px solid #0288d1;\n            background: #fff;\n            color: #0288d1;\n            border-radius: 6px;\n            cursor: pointer;\n            text-align: center;\n        }\n        .mode-btn.active {\n            background: #0288d1;\n            color: #fff;\n        }\n\n        .section {\n            background: #fff;\n            padding: 15px;\n            margin-bottom: 12px;\n            border-radius: 8px;\n            box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n        }\n        .section h3 {\n            margin-top: 0;\n            margin-bottom: 10px;\n            font-size: 15px;\n            color: #333;\n            border-bottom: 1px solid #eee;\n            padding-bottom: 6px;\n        }\n        .item-row {\n            margin-bottom: 12px;\n            padding-bottom: 10px;\n            border-bottom: 1px dashed #f0f0f0;\n        }\n        .item-row:last-child {\n            margin-bottom: 0;\n            padding-bottom: 0;\n            border-bottom: none;\n        }\n        .item-title {\n            font-size: 13px;\n            color: #444;\n            margin-bottom: 6px;\n            font-weight: bold;\n        }\n        \n        \/* \u7db2\u683c\u6309\u9215\u6a23\u5f0f *\/\n        .grid-btn {\n            display: grid;\n            grid-template-columns: repeat(auto-fit, minmax(75px, 1fr));\n            gap: 6px;\n        }\n        .btn-item {\n            padding: 8px 4px;\n            font-size: 11px;\n            font-weight: bold;\n            border: 2px solid #ccc;\n            border-radius: 6px;\n            background: #fff;\n            color: #444;\n            cursor: pointer;\n            text-align: center;\n            transition: 0.1s;\n            touch-action: manipulation;\n        }\n        .btn-item:active {\n            transform: scale(0.96);\n        }\n        .btn-item.active {\n            background: #4CAF50;\n            color: white;\n            border-color: #388E3C;\n        }\n\n        .penalty-row {\n            display: flex;\n            align-items: center;\n            justify-content: space-between;\n            font-size: 13px;\n            font-weight: bold;\n            margin-bottom: 8px;\n        }\n        .penalty-controls {\n            display: flex;\n            gap: 5px;\n        }\n        .penalty-btn {\n            background: #dc3545;\n            color: white;\n            border: none;\n            padding: 6px 12px;\n            border-radius: 4px;\n            cursor: pointer;\n            font-weight: bold;\n        }\n        .reset-btn {\n            width: 100%;\n            padding: 10px;\n            font-size: 14px;\n            background: #6c757d;\n            color: white;\n            border: none;\n            border-radius: 6px;\n            cursor: pointer;\n            font-weight: bold;\n        }\n\n        \/* \u56fa\u5b9a\u5e95\u90e8\u8a08\u5206\u5217 *\/\n        .fixed-score-bar {\n            position: fixed;\n            bottom: 0;\n            left: 0;\n            width: 100%;\n            background: #ffffff;\n            box-shadow: 0 -4px 10px rgba(0,0,0,0.15);\n            padding: 10px 15px;\n            box-sizing: border-box;\n            z-index: 1000;\n        }\n        .fixed-score-container {\n            max-width: 600px;\n            margin: 0 auto;\n        }\n        .score-info {\n            font-size: 11px;\n            color: #666;\n            margin-bottom: 4px;\n            line-height: 1.4;\n        }\n        .score-flex {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n        }\n        .score-display {\n            font-size: 18px;\n            font-weight: bold;\n            color: #d9534f;\n        }\n\n        \/* \u734e\u9805\u6a19\u7c64\u6a23\u5f0f *\/\n        .award-tag {\n            display: inline-block;\n            margin-left: 6px;\n            padding: 2px 8px;\n            border-radius: 12px;\n            font-size: 12px;\n            font-weight: bold;\n            transition: all 0.2s ease;\n        }\n <\/style>\n<\/head>\n<body>\n\n    \n<div class=\"mode-toggle\">\n <button id=\"btnPrimary\" class=\"mode-btn active\" onclick=\"switchGroup('primary')\">\ud83c\udfeb \u521d\u5c0f\u7d44<\/button>\n <button id=\"btnUpper\" class=\"mode-btn\" onclick=\"switchGroup('upper')\">\ud83c\udfeb \u9ad8\u5c0f\u7d44<\/button>\n <button id=\"btnSecondary\" class=\"mode-btn\" onclick=\"switchGroup('secondary')\">\ud83c\udf93 \u4e2d\u5b78\u7d44<\/button>\n <\/div>\n\n    \n<div class=\"section\">\n<h3>1. \u8ff7\u4f60\u51b0\u58fa\u72c0\u614b (\u5171 6 \u500b)<\/h3>\n<div id=\"stonesContainer\"><\/div>\n <\/div>\n\n    \n<div class=\"section\">\n<h3>2. \u7f70\u5206\u6263\u5206 (\u5b8c\u5168\u9032\u5165\u5e95\u7dda\u5f8c\u6216\u5834\u5730\u5916: \u6bcf\u500b -10 \u5206)<\/h3>\n<div class=\"penalty-row\">\n <span>\u9055\u898f\u51b0\u58fa\u6578\u91cf: <span id=\"penaltyCount\" style=\"color:#dc3545;\">0<\/span> \u500b (\u5171\u6263 <span id=\"penaltyText\" style=\"color:#dc3545;\">0<\/span> \u5206)<\/span>\n<div class=\"penalty-controls\">\n <button class=\"penalty-btn\" onclick=\"adjustPenalty(-1)\">-1<\/button>\n <button class=\"penalty-btn\" onclick=\"adjustPenalty(1)\">+1<\/button>\n <\/div>\n <\/div>\n <button class=\"reset-btn\" style=\"background: #e0e0e0; color: #333; margin-top: 5px; padding: 6px;\" onclick=\"resetPenalty()\">\u7f70\u5206\u6b78\u96f6<\/button>\n <\/div>\n\n    \n<div class=\"section\">\n <button class=\"reset-btn\" onclick=\"resetAll()\">\ud83d\udd04 \u6e05\u7a7a\u91cd\u65b0\u8a08\u5206<\/button>\n <\/div>\n\n    \n<div class=\"fixed-score-bar\">\n<div class=\"fixed-score-container\">\n<div class=\"score-info\">\n                \u884c\u52d5\u5206: <span id=\"scAction\">0<\/span> | \u4f4d\u7f6e\u5206: <span id=\"scPosition\">0<\/span> | \u7f70\u5206: <span id=\"scPenalty\">0<\/span>\n <\/div>\n<div class=\"score-flex\">\n<div>\n <span id=\"groupLabel\" style=\"font-weight: bold; color: #0288d1;\">[\u521d\u5c0f\u7d44]<\/span>\n <span id=\"awardDisplay\" class=\"award-tag\">\u672a\u9054\u6a19<\/span>\n <\/div>\n <span class=\"score-display\">\u7e3d\u5206: <span id=\"totalScore\">0<\/span> \u5206<\/span>\n <\/div>\n <\/div>\n <\/div>\n\n <script>\n        let currentGroup = 'primary'; \/\/ 'primary', 'upper', 'secondary'\n        let penaltyCount = 0;\n\n        \/\/ \u5b98\u65b9\u734e\u9805\u9580\u6abb\u8a2d\u5b9a\n        const awardThresholds = {\n            primary: { gold: 120, silver: 80, bronze: 40 },\n            upper:   { gold: 140, silver: 110, bronze: 50 },\n            secondary:{ gold: 180, silver: 140, bronze: 60 }\n        };\n\n        \/\/ \u4f4d\u7f6e\u9078\u9805\u5b9a\u7fa9\n        const positionOptions = [\n            { text: \"\u672a\u6295\u51fa\/\u672a\u5f97\u5206<br>(0\u5206)\", actionScore: 0, posScore: 0 },\n            { text: \"\u6210\u529f\u6295\u51fa(\u6ed1\u884c\u5340)<br>(\u884c\u52d55\u5206)\", actionScore: 5, posScore: 0 },\n            { text: \"\u7aef\u65e5\u7dda1\u8207\u5e95\u7dda\u9593<br>(\u884c\u52d55+\u4f4d\u7f6e5)\", actionScore: 5, posScore: 5 },\n            { text: \"\u63a5\u89f8\u85cd\u8272\u5713\u74b0<br>(\u884c\u52d55+\u4f4d\u7f6e15)\", actionScore: 5, posScore: 15 },\n            { text: \"\u63a5\u89f8\u767d\/\u7d05\u5713\u74b0<br>(\u884c\u52d55+\u4f4d\u7f6e25)\", actionScore: 5, posScore: 25 },\n            { text: \"\u63a5\u89f8\u767d\u8272\u5713\u5fc3<br>(\u884c\u52d55+\u4f4d\u7f6e50)\", actionScore: 5, posScore: 50 }\n        ];\n\n        function renderUI() {\n            let html = '';\n            for (let i = 1; i <= 6; i++) {\n                html += `\n<div class=\"item-row\">\n<div class=\"item-title\">\u8ff7\u4f60\u51b0\u58fa #${i}<\/div>\n<div class=\"grid-btn\" data-stone=\"${i}\">\n                `;\n                positionOptions.forEach((opt, idx) => {\n                    html += `<button class=\"btn-item ${idx === 0 ? 'active' : ''}\" onclick=\"selectOption(this, ${i})\" data-action=\"${opt.actionScore}\" data-pos=\"${opt.posScore}\">${opt.text}<\/button>`;\n                });\n                html += `<\/div><\/div>`;\n            }\n            document.getElementById('stonesContainer').innerHTML = html;\n            calculateScore();\n        }\n\n        function switchGroup(group) {\n            currentGroup = group;\n            document.getElementById('btnPrimary').classList.toggle('active', group === 'primary');\n            document.getElementById('btnUpper').classList.toggle('active', group === 'upper');\n            document.getElementById('btnSecondary').classList.toggle('active', group === 'secondary');\n            \n            const groupNames = { primary: '[\u521d\u5c0f\u7d44]', upper: '[\u9ad8\u5c0f\u7d44]', secondary: '[\u4e2d\u5b78\u7d44]' };\n            document.getElementById('groupLabel').innerText = groupNames[group];\n            calculateScore();\n        }\n\n        function selectOption(btn, stoneIndex) {\n            const parent = btn.parentElement;\n            parent.querySelectorAll('.btn-item').forEach(b => b.classList.remove('active'));\n            btn.classList.add('active');\n            calculateScore();\n        }\n\n        function adjustPenalty(val) {\n            penaltyCount = Math.max(0, Math.min(6, penaltyCount + val));\n            document.getElementById('penaltyCount').innerText = penaltyCount;\n            document.getElementById('penaltyText').innerText = penaltyCount * 10;\n            calculateScore();\n        }\n\n        function resetPenalty() {\n            penaltyCount = 0;\n            document.getElementById('penaltyCount').innerText = '0';\n            document.getElementById('penaltyText').innerText = '0';\n            calculateScore();\n        }\n\n        function calculateScore() {\n            let totalAction = 0;\n            let totalPosition = 0;\n\n            document.querySelectorAll('.grid-btn').forEach(group => {\n                const activeBtn = group.querySelector('.btn-item.active');\n                if (activeBtn) {\n                    totalAction += parseInt(activeBtn.dataset.action) || 0;\n                    totalPosition += parseInt(activeBtn.dataset.pos) || 0;\n                }\n            });\n\n            \/\/ \u78ba\u4fdd\u884c\u52d5\u5206\u6700\u9ad8\u4e0d\u8d85\u904e 30 \u5206 (6\u500b\u58fa x 5\u5206)\n            totalAction = Math.min(30, totalAction);\n\n            const penaltyScore = penaltyCount * 10;\n            let total = totalAction + totalPosition - penaltyScore;\n            total = Math.max(0, total);\n\n            document.getElementById('scAction').innerText = totalAction;\n            document.getElementById('scPosition').innerText = totalPosition;\n            document.getElementById('scPenalty').innerText = penaltyScore;\n            document.getElementById('totalScore').innerText = total;\n\n            \/\/ \u52d5\u614b\u5224\u65b7\u734e\u9805\u7b49\u7d1a\n            const thresholds = awardThresholds[currentGroup];\n            const awardTag = document.getElementById('awardDisplay');\n\n            if (total >= thresholds.gold) {\n                awardTag.innerText = \"\ud83e\udd47 \u91d1\u734e\";\n                awardTag.style.background = \"#fff8e1\";\n                awardTag.style.color = \"#b78103\";\n            } else if (total >= thresholds.silver) {\n                awardTag.innerText = \"\ud83e\udd48 \u9280\u734e\";\n                awardTag.style.background = \"#eceff1\";\n                awardTag.style.color = \"#455a64\";\n            } else if (total >= thresholds.bronze) {\n                awardTag.innerText = \"\ud83e\udd49 \u9285\u734e\";\n                awardTag.style.background = \"#fbe9e7\";\n                awardTag.style.color = \"#bf360c\";\n            } else if (total > 0) {\n                awardTag.innerText = \"\ud83d\udcdc \u5609\u8a31\u72c0\";\n                awardTag.style.background = \"#e1f5fe\";\n                awardTag.style.color = \"#0277bd\";\n            } else {\n                awardTag.innerText = \"\u672a\u9054\u6a19\";\n                awardTag.style.background = \"#f5f5f5\";\n                awardTag.style.color = \"#9e9e9e\";\n            }\n        }\n\n        function resetAll() {\n            resetPenalty();\n            renderUI();\n        }\n\n        renderUI();\n <\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0c129a5 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"0c129a5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-md elementor-animation-grow\" href=\"https:\/\/docs.google.com\/forms\/d\/e\/1FAIpQLSfgTH2crqvLEfXmY3QNLUrK8o5fJ1nw3zKZoAaCWFP2P5Y8Pg\/viewform?usp=dialog\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">\u63d0\u4ea4\u4f5c\u54c1<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\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>\u6bd4\u8cfd\u898f\u5247 \ud83c\udfeb \u521d\u5c0f\u7d44 \ud83c\udfeb \u9ad8\u5c0f\u7d44 \ud83c\udf93 \u4e2d\u5b78\u7d44 1. \u8ff7\u4f60\u51b0\u58fa &#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-8299","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.peachcp.com\/wro-hk\/wp-json\/wp\/v2\/pages\/8299","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=8299"}],"version-history":[{"count":4,"href":"https:\/\/www.peachcp.com\/wro-hk\/wp-json\/wp\/v2\/pages\/8299\/revisions"}],"predecessor-version":[{"id":8304,"href":"https:\/\/www.peachcp.com\/wro-hk\/wp-json\/wp\/v2\/pages\/8299\/revisions\/8304"}],"wp:attachment":[{"href":"https:\/\/www.peachcp.com\/wro-hk\/wp-json\/wp\/v2\/media?parent=8299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}