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