H5小游戏 活跃维护

chess

kbjorklu/chess

JavaScript 国际象棋

101
Stars 标星
55
Forks 分支
10
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
102 KB
仓库大小
7 年前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:kbjorklu/chess
git clone https://github.com/kbjorklu/chess.git
git clone git@github.com:kbjorklu/chess.git
README.md master

机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。

JavaScript 国际象棋

这个程序是一个 JavaScript 实现的棋盘游戏 国际象棋,带有电脑玩家对手。支持所有移动类型,包括吃过路兵、易位和升变。

在 这里 试用。棋盘下方显示使用说明。至少应支持 Internet Explorer(8 或更高版本)、Chrome 和 Firefox。

代码结构

源文件放置在 src 目录中。压缩和代码检查文件放在 build 目录中。源文件内容:

  • chess.js :常量、实用工具和 Chess 命名空间。
  • bitboard.js :64 位位操作工具。
  • zobrist.js :游戏状态哈希计算器。目前仅用于三次重复规则,但将在置换表实现中使用。
  • move.js :棋子移动表示。
  • position.js :国际象棋游戏状态及其变化。
  • parser.js :各种国际象棋记谱解析器。
  • ai.js :人工智能,即电脑对手。基本的 alpha-beta 剪枝极小极大算法,带简单评估函数。
  • ui.js :用户界面代码。
  • chess.include.js :包含上述所有文件。
  • chess.css :用户界面样式。
  • chess.ico: Icon.
  • chess.html :主游戏文件。
  • test.js: Automated tests.
  • test.html :自动测试运行器。

构建

要使用 compile.sh 在 build 目录中编译压缩版本,需要 bash 和 Closure 编译器。可能需要在 compile.sh 中调整 .jar 的位置。编译后的文件放置在顶层目录。

要在构建目录中使用 lint.sh 进行代码检查,需要 bash 和 JavaScript Lint。可能需要在 lint.sh 中调整 lint 的路径。

要运行测试,请在 src 目录中打开 test.html。

待办事项

  • 静态交换评估
  • 置换表
  • 迭代加深
  • Negamax 公式
  • AI 随机性
  • 在评估中考虑游戏阶段
  • 在评估中考虑机动性
  • 杀手启发式
  • 晚时检查王车易位合法性
  • 平局检测
  • 无需拖放移动棋子
  • 降变
  • 在界面中显示已捕获的棋子
  • 不要将棋盘目标 div 硬编码到 UI
  • 从可解析的棋谱记号加载游戏状态的界面
  • 更多测试

许可证

Chess 实现遵循 MIT 许可证分发。详情请参阅附带的 LICENSE 文件。

第三方组件根据各自的许可分发/使用:

  • jQuery: MIT(通过 jQuery CDN 使用)
  • jQuery UI: MIT(通过 jQuery CDN 使用)
  • jQuery UI Touch Punch: MIT(通过 CloudFlare CDN 使用)
  • Augment.js: MIT(通过 CloudFlare CDN 使用)
  • QUnit: MIT(通过 jQuery CDN 使用)
  • 构建目录中的 jQuery 外部文件: Apache 2
本站来源与版权声明
  • 本文标题:chess - JavaScript 国际象棋
  • 本文链接:https://cn121.com/h5game/kbjorklu-chess.html
  • 原项目:kbjorklu/chess 版权归原作者 kbjorklu 及贡献者所有
  • 收录信息:本站于 2026-10-17 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站译文为其衍生内容;使用、修改、分发请以该仓库 LICENSE 原文为准。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 kbjorklu/chess。
  • 翻译说明:本页正文为人工智能生成内容——由机器翻译对原项目 README 初译、经程序校验排版,可能存在错漏,请以原项目文档为准。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。