fly-truman / game · 打苍蝇 v1 · 静态 MetaApp(零网络请求)

它停在食物上。你按住鼠标挥下去——慢打它飞走,快打它也能躲,打中就是一坨

同一画面里两只:A 臂由一份预先算好的运动记录驱动(接口留好了,引擎记录一到就整体替换), B 臂由我们写的规则驱动。两只共用同一套挥拍物理、同一套命中判定、同一套统计。

只读离线页 · 页面零 http(s) 请求 · 不写链上

00先说清楚:哪一部分是谁的

连接组的(= 记录说了算)

我们写的(= 页面/脚本说了算)

01挥拍

按住鼠标不要松开,朝苍蝇挥下去,再松手。挥速按你指针的实际移动速度实测—— 不是档位按钮,也不是随机数(50 ms 滑窗)。两只的规则不同,物理与判定完全相同。

A 臂 · 脑驱动(接引擎记录)A
得分
0
命中 / 挥拍
0 / 0
命中率
连击 / 最高
0 / 0
还没挥过。
B 臂 · 脚本驱动(我们写的规则)B
得分
0
命中 / 挥拍
0 / 0
命中率
连击 / 最高
0 / 0
还没挥过。

02命中率 vs 挥速

四档挥速。自检基线=脚本挥拍(不是人打的;由 tools/probe_browser.js本页同一份代码上跑出,随页面一起打包); 本次会话=你刚打的。两列并排,不互相顶替。

挥速档区间 (u/s) A 基线 n/中/率A 本次 n/中/率 B 基线 n/中/率B 本次 n/中/率
合计

03逐次出手记录(上链用的就是这份)

每条 = 一次挥拍:时刻、挥速、量化误差、苍蝇动作、记录自报结局 vs 真实结局。最新在最上面。

#t (s)挥速 u/s d0 u量化误差触发条件 记录延迟 ms记录自报真实结局苍蝇动作
原始 JSONL(可直接拷走 / 上链)
(还没有记录)

04这一版我们不假装的部分

苍蝇的运动是怎么来的

我们写的部分(完整清单)

  • 挥拍物理:指针位置 = 拍头位置;最短挥程 18 u(低于此不算一次挥拍);松手后 150 ms 跟随;接触半径 33 u。
  • 命中判定:平面距离 ≤ 33 u 苍蝇离地 < 18 u。判定只看几何,不看记录自报的结局。
  • 挥速:指针速度的 50 ms 滑窗,取这一拍的全程峰值(不是松手瞬间值)。四档分界 500 / 1000 / 1800 u/s。
  • B 臂规则(全部):固定反应半径 120 u、固定延迟 80 ms、起跳方向 180°±18°(确定性低差异序列)、跳飞参数见页面常量。
  • 得分与连击、统计口径、全部视觉(那一坨怎么画、拍子长什么样)。
  • A 臂占位记录的生成器 tools/make_placeholder_record.py(kind=placeholder 时它算我们的)。

什么时候 A 臂才算接通

records/flyrec.placeholder.json 换成一份 kind="connectome-engine"producer.engine_run.run_id/sha256 非空、且过 tools/check_record.py --require-connected 的记录, 页面顶部那行标注自动变成「A 臂已接通」(页面在运行时按同一套规则复核记录字段,不是靠人改文案)。 记录格式与接线条件写在 records/README.md

读数边界