dsh-plugin-gomoku
by intelligent-guoxin
Gomoku (五子棋) with LAN online play , vs-AI, AI-vs-AI and hot-seat modes — a client + host plugin for the DeepSeek Harness web UI.
安装
dsh plugin --profile web add github:intelligent-guoxin/dsh-plugin-gomokuGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
English | 简体中文
五子棋,支持局域网联机、人机对战、巅峰对决(AI 对战)与本机双人 —— DeepSeek Harness Web UI 的客户端 + 宿主端插件。
功能
- 在聊天界面右下角添加一个悬浮的 「五」按钮,点击可开关一个可拖拽的五子棋窗口; 同时向侧边栏底部操作区注册第二个入口。
- 联机对战:宿主端(
lib/index.js)启动一个自包含的 WebSocket 中继服务器 (RFC 6455,零依赖),默认端口 34567(可配置)。同一局域网(或同一台机器)的 两个浏览器可以互相匹配:一方创建房间获得 4 位房间码,另一方凭房间码加入。中继 服务器是权威方——校验回合与落子、判定五连与和棋,并支持认输、再来一局(每局换先)、 断线处理与简单聊天。 - 人机对战:贪心模式评分 AI(进攻 + 防守)。
- 巅峰对决:观看两个 AI 一步步对弈,可调速(慢 / 中 / 快)与暂停/继续,方便 按自己的节奏研究开局与战术。AI 对得分相近的走法加入少量随机扰动,因此每局棋谱都 不一样——但绝不会放弃必胜或必挡的走法。
- 本机双人:一台电脑两人对战。
- 棋盘为木纹画布,带星位、最后一手标记、五连高亮与悬停落子预览;窗口可拖拽,
Esc关闭。 - 面板与输入框使用固定"深底浅字"配色(与宿主主题无关),文字始终清晰可见。
局域网联机玩法
DSH Web 界面出于安全原因刻意拒绝 --host 0.0.0.0("会把远程代码执行暴露到网络"),
因此 Web 界面保持在本机回环。局域网联机改由中继服务器在 34567 端口托管的独立对局页
承担——伙伴无需安装 DSH,也不会暴露 Web 界面:
- 正常启动服务器(
dsh web)。中继监听0.0.0.0:34567(安装时会添加 Windows 防火墙 规则dsh-gomoku-34567/dsh-gomoku-3080;若缺失请在管理员终端重新添加)。 - A 机(主机):打开 DSH 界面 → 点「五」→ 联机对战 → 连接 → 创建房间,
记下房间号(例如
K7QX)。 - 告诉伙伴两样东西:局域网地址
http://192.168.x.x:34567/(可通过中继的/info或面板连接后的聊天记录查看)和房间号。 - B 机:任意浏览器打开
http://<服务器局域网IP>:34567/(这是中继托管的独立对局页, 无需 DSH 界面、无需安装),输入昵称 → 连接 → 输入房间号 → 加入房间。 - 黑方先行(房间创建者)。认输可投降;一局结束后再来一局发起重赛——双方都同意后 新的一局开始并交换先后手。
同一台机器也能双人玩:一个标签页创建房间,另一个标签页(或另一个浏览器)凭房间号加入。
可选:如果你接受把整个 DSH Web 界面暴露给局域网,也可以改用
dsh web --host 192.168.x.x绑定到具体局域网网卡,让伙伴使用完整界面http://192.168.x.x:3080。
中继服务器
- 默认监听
0.0.0.0:34567,局域网客户端可直接访问。可通过cordis.patch.yml中的 loaderconfig修改端口:- insert: - id: gomoku name: 'dsh-plugin-gomoku' config: port: 34568 http://<局域网IP>:34567/(以及/play)提供独立对局页;http://<局域网IP>:34567/info返回 JSON 状态(host、port、在线房间数 / 玩家数)。- 房间仅存于内存:等待房间 60 分钟后过期;对局进行中若一方断开,另一方获胜。
- 连接长期保持:服务器每 30 秒发送一次保活 ping(浏览器自动回 pong),空闲连接可持续 数小时;只有 90 分钟无任何响应的连接才会被回收。
- 无鉴权——这是局域网游戏中继,请勿将 34567 端口暴露到不受信任的网络。
包结构
package.json dsh.client { platform: "web", inject: [@deepseek-ai/dsh-client-runtime] }
lib/index.js 宿主端 — WebSocket 中继服务器(node:http + node:crypto,零依赖)
lib/client.js 浏览器端 — 手写 bundle(无需构建),游戏本体
standalone/ gomoku.html — 由中继在 /play 托管的局域网对局页
test/ 引擎 + 冒烟 + 中继测试(`npm test` 一键运行)
客户端 bundle 通过 window.__ModuleLoader__.load 注册工厂,只使用平台种子模块
(react、react/jsx-runtime、react-dom/client)与 slots 服务,无需打包器。
安装
其他 DeepSeek Harness 用户
本插件是一个零运行时依赖的普通 npm 包(宿主端只用 Node 内置模块;浏览器端使用 DSH 平台的 react 种子模块)。两种安装方式:
方式 A —— 从 npm 源安装(发布后可用):
dsh plugin --profile web add dsh-plugin-gomoku
方式 B —— 直接从 GitHub 安装(无需 npm 发布,仓库需为公开):
dsh plugin --profile web add github:Intelligent-GuoXin/dsh-plugin-gomoku
然后在 profile 的补丁层注册 loader 条目(~/.dsh/profiles/web/cordis.patch.yml):
- insert:
- id: gomoku
name: 'dsh-plugin-gomoku'
最后重启服务器(dsh web)并刷新浏览器页面,聊天界面右下角会出现「五」按钮。
局域网联机需要在防火墙放行中继端口 34567(独立对局页由中继托管在
http://<局域网IP>:34567/)。
如果 fork 或改名,请同步修改条目的 name,并保持 package.json 中的
dsh.client 与 exports["./client"] 不变(浏览器端依赖它们加载)。
本机开发安装
node_modules\dsh-plugin-gomoku是指向<profile>/dsh-plugin-gomoku的 junction; profile 的package.json以"dsh-plugin-gomoku": "file:./dsh-plugin-gomoku"固定 依赖,避免被 pnpm 清理。cordis.patch.yml插入 loader 条目:- insert: - id: gomoku name: 'dsh-plugin-gomoku'- 宿主图(含中继)在服务器启动时加载——安装后重启一次服务器(
dsh --profile web/dsh web),再刷新浏览器页面使启动清单包含新条目。(补丁热重载并不可靠:当前实例下 运行中的服务器不会实时应用cordis.patch.yml的变更。) - 之后修改
lib/client.js可通过客户端 HMR 链热更新;宿主端改动仍需重启。
测试
npm test # 或单独运行:
node test/gomoku-engine.test.mjs # 纯引擎:胜负判定、和棋、AI
node test/gomoku-smoke.mjs # 客户端 bundle:挂载、插槽、清理
node test/gomoku-relay.test.mjs # 宿主中继端到端:房间、落子、胜局、
# 重赛、认输、离开、断线、销毁
已知限制
- 输入框为非受控组件,输入(含中文输入法)不会被重渲染重置;也不会被抢焦点。
- 在合成器/任意输入框中输入时,键盘事件会被忽略。
- 中继为纯 WebSocket(
ws://);若页面以https://提供,则需要wss://(内置中继不支持)——局域网内请用http提供 DSH。 - 修改
lib/index.js、standalone/或 profile 接线后需重启服务器;lib/client.js的修改在下次刷新页面时生效。
原始 README: https://github.com/Intelligent-GuoXin/dsh-plugin-gomoku/blob/main/README.zh.md ↗
同类插件
查看全部 →
dsh-anchored-standard
两阶段 DeepSeek Harness 预设:先 Minimal 对齐的 bootstrap,再切完整 Standard 工具(Project2 98/99)

PicGo-Core
极致的图片上传引擎,CLI 与 API 双支持

awesome-deepseek-harness
DeepSeek Harness(DSH)及其优秀社区插件的精选指南。

awesome-deepseek-harness
DeepSeek Harness (DSH)生态系统:来自dsh-external/hub和公共dsh-plugin主题的精选插件、工具和基础设施。

AI-Novel-Writer
本地优先 AI 小说创作工作台,提供 Windows/macOS 桌面版与 DeepSeek Harness 插件开发预览,支持角色、大纲、章节蓝图、审稿修稿和本地模型。

mcp-for-stata
MCP-for-Stata:把 Stata 集成进你的 agent