插件详情
中国象棋
小游戏
xiangqi
·
旺普拉斯
传统中国象棋,人机和双人同屏,简单,普通,困难三种难度模式。
适用产品:生活管理平台Life System、Life Game
插件介绍
传统中国象棋,人机和双人同屏,简单,普通,困难三种难度模式。
开发者暂未上传 HTML 介绍页。
历史版本
-
2.0.4 最新版 2026-09-16 12:03 37 KB1. **战绩 / 次数 / 排行榜更新加固(POST 保存链路彻底重做)**
- `saveResult` 网络层重构:CSRF 令牌通过 **请求头(X-CSRF-Token / X-XSRF-TOKEN)** 与 **POST body** 双通道透传,覆盖宿主不同校验习惯,避免保存被 CSRF 拦截。
- 对宿主的非 JSON 响应(如 CSRF 拒绝页 / 错误页)做宽容解析并显示 **HTTP 状态码**,`save` 失败时不再静默,而是明确 toast(例:`保存失败:HTTP 403`)。
- **无论保存成败,都统一重新下拉**「我的战绩」「对局记录」「今日剩余」「排行榜」,确保页面数据一定收敛到服务端最新状态。
2. **走棋残影**
- 每次走子后,在棋盘上从起点到终点绘制「军用地图式」箭头:半透明红色**虚线杆 + 实心箭头头**,残影显示最近一步,吃子/将军均可见移动轨迹;随棋盘翻转视角自动对齐,终局后仍保留最近一步残影。 -
2.0.2 2026-09-15 14:08 35 KB界面与数据修复(此版含多项体验修复):
1. **棋盘方位定向(修复「执红却见红在对面」/ 胜负提示错位)**
- 人机模式下现在始终把**玩家执方放在屏幕下方**:玩家执红时红在下、AI 黑在上;玩家执黑时棋盘上下翻转,黑(玩家)在下、红(AI)在上,符合日常对弈习惯。
- 棋盘渲染、棋子高亮、可走点、被将军红框、终局粒子、点击取子坐标全部按同一玩家视角换算;终局横幅按「玩家执方」判定(原逻辑正确),与翻转后的棋盘视觉一致,消除「人胜却提示 AI 胜」的错位感知。
2. **导航栏移至棋盘下方、与棋盘同宽**
- 原顶部工具条(标题 + 人机/双人 + 难度 + 开始 + 新对局 + 悔棋 + 认输 + 和棋 + 音效)整体下移到棋盘正下方,宽度随棋盘自适应(`max-width` 对齐画布宽度),居中显示。
3. **战绩 / 排行榜 / 对局记录 / 今日余量更新**
- 保存战绩成功后除刷新「我的战绩」「对局记录」「今日剩余」外,**新增刷新「排行榜」**(此前排行榜仅在页面加载时拉取一次,导致数据不更新)。
- 保存失败时前端直接弹出具体原因(如 CSRF / 棋谱校验未通过 / 当日已用满),便于定位。 -
1.2.2 2026-09-14 18:15 34 KB新增「开始对局」按钮(每局必须手动开始):
- 顶部工具区新增「开始对局」按钮;`newGame` 只摆好棋子进入「未开始」状态,提示「请点击「开始」开局」,此阶段不可行棋、不走计时、不触发 AI 走子。
- 点击「开始」后才真正开局:启动计时、按执方规则若 AI 先行则先生效 AI 走子、刷新走棋提示。
- 行棋、悔棋、认输、和棋均增加 `G.started` 守卫,未开始时棋盘点击无效、悔棋按钮禁用;每局(含新对局、切换模式)都需重新按「开始」。 -
1.2.1 2026-09-14 16:07 34 KB## v1.2.1(2026-09-14)
菜单修复(plugin-page 页面主体化):
- `game.php` 由「完整独立 HTML 文档」改造为「页面主体片段」——按文档 5.6,菜单入口经 `plugin-page` 打开时宿主统一包裹页头页脚,页面文件只输出主体;移除 `<!DOCTYPE html>`/`<html>`/`<head>`/`<body>` 文档级标签。
- 全部 CSS 收敛在 `#xiangqi-app` 作用域内(原 `body`/`main`/`table`/`.btn` 等全局选择器会污染宿主页面);`#toast` 更名为 `#xqToast` 防与宿主元素 id 冲突;5 处全局 `document.querySelectorAll('[data-mode]'/'[data-level]')` 收敛为 `#xiangqi-app` 前缀,避免误绑宿主元素;整段脚本 IIFE 封装,杜绝全局名与宿主 JS 撞车。
- 端点地址修复:原 JS `endpointUrl()` 复制当前 URL 换 `file` 参数,页面路由下会把 API 请求发到 `route=plugin-page&file=api.php`(api.php 不在 `pages` 白名单,全部失败)。现改为 PHP 按宿主环境注入:框架端(lifesystem / lifegame)拼 `?route=plugin-endpoint&code=xiangqi&file=xx.php`,lifesoso 走 `../plugins/xiangqi/` 直连(文档 5.3)。
菜单分组声明:
- 新增 `menuGroups`(`id:"fun"`,名「小游戏」,图标 `game`,order 10),`menu[].group` 由字面量 `"小游戏"` 改为组 id `"fun"`——按文档 5.6 FAQ,多游戏插件共用同一组 id 即可自动并入同一个「小游戏」组(与五子棋插件共用 `fun` 组);lifesoso 不支持内置小游戏组,需 menuGroups 显式声明。 -
1.1.6 2026-09-14 06:42 33 KB## v1.1.6(2026-09-13)
接入 Life BS 官方插件菜单机制:`plugin.json` 声明 `pages` + `menu`,页面入口自动归入宿主导航「小游戏」菜单组,彻底移除插件自建导航菜单。
- `pages` 白名单新增 `game.php`;
- `menu` 新增「中国象棋」菜单项,`route` 为 `plugin-page&code=xiangqi&file=game.php`,图标 ♟,`group` 为「小游戏」,`sort` 20;
- 新增 `public_landing: true`,满足条件时入口出现在 lifesystem 公开导航首页「小游戏」区块(受后台总开关控制)。
修复排行榜调用失败,新增「每日对局上限」设置,移除插件自建导航菜单。无数据表结构变更(仅设置表预置新默认键)。 -
1.0.0 2026-09-12 22:45 34 KB经典中国象棋插件,适配 LifeBS v3.0 三端(lifesystem / lifegame / lifesoso)。支持双人同屏与人机对战,内置完整规则引擎与服务端防作弊校验,战绩落库并提供排行榜,后台可配置游戏参数。
一、功能总览
双人同屏对战
同一设备红黑轮流走子,侧栏实时显示当前执方与回合数;
支持认输与议和(双方确认)两种终局方式。
人机对战(内置 AI)
AI 采用 Negamax + Alpha-Beta 剪枝搜索,含将军/吃子优先级排序;
三档难度可选(简单 / 普通 / 困难),后台可设默认难度。
随机执方
人机模式每局随机分配玩家执红或执黑,开局 Toast 提示;
玩家执黑时 AI 自动先行。
悔棋次数限制
后台可配置每局悔棋上限(0-20 次,默认 3 次,0 表示禁止悔棋);
前端实时显示剩余次数,用尽后按钮置灰禁用;每局独立计数;
人机模式悔棋自动回退两个半回合,保持轮到玩家走子。
移动端自适应
画布随窗口自适应缩放,窄屏自动放大棋盘占满屏宽;
支持触屏点选走子,点击高亮显示可落点。
音效系统
基于 Web Audio API 纯前端合成,零外部音频文件、零额外请求;
走子、吃子、将军、胜利、失败、和棋音效各不相同;
页面右上角静音开关,与后台「提示音」总开关叠加生效。
终局特效
分出胜负后,败方将/帅位置触发粒子爆炸动画(requestAnimationFrame 驱动);
结果横幅展示胜负原因(将死 / 困毙 / 认输 / 议和)。
中文棋谱
按传统记谱法自动生成(进/退/平、前/后/中),逐回合展示;
走子历史可回看,便于复盘。
右侧信息栏
对局信息、棋谱记录、我的战绩(胜率统计)、人机胜场 Top 10 排行榜、最近 10 局;
每局结束自动刷新。
顶部导航入口
挂载 head.meta 钩子,在 lifesystem / lifegame 顶部导航自动注入「娱乐 ▾ → 中国象棋」下拉菜单;
与五子棋插件的导航项自动合并(同一下拉菜单共存);lifesoso 端保持直链入口。
二、规则引擎(完整中国象棋规则)
棋子走法:车(直线)、马(日字,含蹩马腿判断)、炮(平移如车、吃子须隔一个炮架)、兵/卒(过河前只进、过河后可横走、永不后退)、帅/将(九宫内直行)、仕/士(九宫内斜行)、相/象(田字、不过河、塞象眼判断);
特殊规则:两王对脸(白脸将)禁止、送将(走后被将军)非法、将死与困毙自动判定;
服务端与前端使用同一套规则定义,保证校验一致性。