计分引擎

五种计分模式(GAME_POINT / ACCUMULATIVE / TIMED)+ 让分 + 双打发球轮转。参数全部从 scoring_profiles.params 读取,不写死。

计分制 得分序列 计时脚本

① 参数回显(来自 params 字段)

参数值来源
points15params[points]
deuce_at14params[deuce_at]
cap21params[cap]
cap_ruleGOLDEN_POINTparams[cap_rule]
decider_at8params[decider_at]
games3params[games]
typeGAME_POINTparams.type
flow 触发GAME_END、GAME_START、LEAD_REACH、PRE_MATCH、LEAD_REACH、BETWEEN_GAMES

② 逐分录入与判定

分比分发球事件
11 : 0A/0/左SERVE_RIGHT
21 : 1B/1/左SERVE_RIGHT
32 : 1A/0/右SERVE_RIGHT
42 : 2B/0/右SERVE_RIGHT
53 : 2A/1/左SERVE_RIGHT
63 : 3B/1/左SERVE_RIGHT
74 : 3A/0/右SERVE_RIGHT
84 : 4B/0/右SERVE_RIGHT
95 : 4A/1/左SERVE_RIGHT
105 : 5B/1/左SERVE_RIGHT
116 : 5A/0/右SERVE_RIGHT
126 : 6B/0/右SERVE_RIGHT
137 : 6A/1/左SERVE_RIGHT
147 : 7B/1/左SERVE_RIGHT
158 : 7A/0/右SERVE_RIGHT
168 : 8B/0/右SERVE_RIGHT
179 : 8A/1/左SERVE_RIGHT
189 : 9B/1/左SERVE_RIGHT
1910 : 9A/0/右SERVE_RIGHT
2010 : 10B/0/右SERVE_RIGHT
2111 : 10A/1/左SERVE_RIGHT
2211 : 11B/1/左SERVE_RIGHT
2312 : 11A/0/右SERVE_RIGHT
2412 : 12B/0/右SERVE_RIGHT
2513 : 12A/1/左SERVE_RIGHT
2613 : 13B/1/左SERVE_RIGHT
2714 : 13A/0/右SERVE_RIGHT
2814 : 14B/0/右SERVE_RIGHT
2915 : 14A/1/左SERVE_RIGHT
3015 : 15B/1/左SERVE_RIGHT
3116 : 15A/0/右SERVE_RIGHT
3216 : 16B/0/右SERVE_RIGHT
3317 : 16A/1/左SERVE_RIGHT
3417 : 17B/1/左SERVE_RIGHT
3518 : 17A/0/右SERVE_RIGHT
3618 : 18B/0/右SERVE_RIGHT
3719 : 18A/1/左SERVE_RIGHT
3819 : 19B/1/左SERVE_RIGHT
3920 : 19A/0/右SERVE_RIGHT
4020 : 20B/0/右SERVE_RIGHT
410 : 0A/1/左LEAD_INTERVAL

③ 边界用例一键演示

A侧 B侧

④ 让分展示(起始比分)

起始比分MD 0 : 3 MX
命中规则MD→MX 让 3 分 · 男双让混双 3 分

⑤ 事件流

序事件关键点
1LEAD_INTERVAL{"trigger": "PRE_MATCH", "sec": 20}
2SERVE_RIGHT{"serving_side": "A", "server_no": 0, "from_right": false}
3SERVE_RIGHT{"serving_side": "B", "server_no": 1, "from_right": false}
4SERVE_RIGHT{"serving_side": "A", "server_no": 0, "from_right": true}
5SERVE_RIGHT{"serving_side": "B", "server_no": 0, "from_right": true}
6SERVE_RIGHT{"serving_side": "A", "server_no": 1, "from_right": false}
7SERVE_RIGHT{"serving_side": "B", "server_no": 1, "from_right": false}
8SERVE_RIGHT{"serving_side": "A", "server_no": 0, "from_right": true}
9SERVE_RIGHT{"serving_side": "B", "server_no": 0, "from_right": true}
10SERVE_RIGHT{"serving_side": "A", "server_no": 1, "from_right": false}
11SERVE_RIGHT{"serving_side": "B", "server_no": 1, "from_right": false}
12SERVE_RIGHT{"serving_side": "A", "server_no": 0, "from_right": true}
13SERVE_RIGHT{"serving_side": "B", "server_no": 0, "from_right": true}
14SERVE_RIGHT{"serving_side": "A", "server_no": 1, "from_right": false}
15SERVE_RIGHT{"serving_side": "B", "server_no": 1, "from_right": false}
16SERVE_RIGHT{"serving_side": "A", "server_no": 0, "from_right": true}
17SERVE_RIGHT{"serving_side": "B", "server_no": 0, "from_right": true}
18SERVE_RIGHT{"serving_side": "A", "server_no": 1, "from_right": false}
19SERVE_RIGHT{"serving_side": "B", "server_no": 1, "from_right": false}
20SERVE_RIGHT{"serving_side": "A", "server_no": 0, "from_right": true}
21SERVE_RIGHT{"serving_side": "B", "server_no": 0, "from_right": true}
22SERVE_RIGHT{"serving_side": "A", "server_no": 1, "from_right": false}
23SERVE_RIGHT{"serving_side": "B", "server_no": 1, "from_right": false}
24SERVE_RIGHT{"serving_side": "A", "server_no": 0, "from_right": true}
25SERVE_RIGHT{"serving_side": "B", "server_no": 0, "from_right": true}
26SERVE_RIGHT{"serving_side": "A", "server_no": 1, "from_right": false}
27SERVE_RIGHT{"serving_side": "B", "server_no": 1, "from_right": false}
28SERVE_RIGHT{"serving_side": "A", "server_no": 0, "from_right": true}
29SERVE_RIGHT{"serving_side": "B", "server_no": 0, "from_right": true}
30SERVE_RIGHT{"serving_side": "A", "server_no": 1, "from_right": false}
31SERVE_RIGHT{"serving_side": "B", "server_no": 1, "from_right": false}
32SERVE_RIGHT{"serving_side": "A", "server_no": 0, "from_right": true}
33SERVE_RIGHT{"serving_side": "B", "server_no": 0, "from_right": true}
34SERVE_RIGHT{"serving_side": "A", "server_no": 1, "from_right": false}
35SERVE_RIGHT{"serving_side": "B", "server_no": 1, "from_right": false}
36SERVE_RIGHT{"serving_side": "A", "server_no": 0, "from_right": true}
37SERVE_RIGHT{"serving_side": "B", "server_no": 0, "from_right": true}
38SERVE_RIGHT{"serving_side": "A", "server_no": 1, "from_right": false}
39SERVE_RIGHT{"serving_side": "B", "server_no": 1, "from_right": false}
40SERVE_RIGHT{"serving_side": "A", "server_no": 0, "from_right": true}
41SERVE_RIGHT{"serving_side": "B", "server_no": 0, "from_right": true}
42SERVE_RIGHT{"serving_side": "A", "server_no": 1, "from_right": false}
43CHANGE_ENDS{"trigger": "GAME_END"}
44LEAD_INTERVAL{"trigger": "BETWEEN_GAMES", "sec": 120}

⑥ 统计

A 21 : 20 B · 局/段 1 · 事件 44  ·  written=false(本次只算未写库)
本局结束:A 胜 · CAP_GOLDEN(比分 21:20,整场未结束)
← 返回首页  |  阶段注册表  |  分组+淘汰