设为首页收藏本站

华工象棋论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2727|回复: 0
打印 上一主题 下一主题

[象棋巫师] 象棋引擎源程序发布公告

[复制链接]
跳转到指定楼层
1#
发表于 2005-2-24 14:39:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


  ElephantEye 0.90b 是专门为调试 Elephant Board 的 UCCI 协议而制作的象棋引擎,公开源程序的目的有两个:   (1) 为 UCCI 引擎作示范;   (2) 展示位棋盘在中国象棋中的运用方法。   广大象棋爱好者和程序员可以以任何目的使用 ElephantEye 0.90b 的代码,但作者不对代码中的错误负责。   以下是 ElephantEye 0.90b 的技术指标:

  一、支持的 UCCI 协议的命令:   (1) ucci   (2) position {startpos | fen <fen_str>}   (3) go {infinite | depth <ply>}   (4) quit   (5) stop (只能在工作状态中使用,其他命令只能在空闲状态中使用)。

  二、可以返回的 UCCI 协议的信息:   (1) id {name <engine_name> | company <company_name> | author <author_name>}   (2) ucciok   (3) info depth <ply> score <pos_score> nodes <searched_nodes> [pv <pv_lines>]   (4) {score <pos_score> | bestmove <best_move> [ponder <ponder_move>]} (go depth 0 返回 score,否则返回 bestmove)   (5) bye

  三、对弈引擎技术:   (1) 着法预产生数组;   (2) 使用位棋盘(位行/位列)的着法产生;   (3) 使用位棋盘(位行/位列)的将军判断;   这三个技术是 ElephantEye 0.90b 的核心技术;   (4) MVV/LVA 启发(只针对吃子着法);   (5) 历史表启发(只针对不吃子着法);   (6) “最小-最大”搜索法;   (7) Alpha-Beta 搜索;   (8) Quiescence 搜索;   (9) 将军扩展搜索;   (10) 循环着法和长将的检测(由于不接收历史局面,对弈时仍然可能长将);   (11) 杀棋步数计算;   (12) 迭代加深启发;   这些技术是象棋对弈程序的基本技术;   (13) 主要变例获取;   (14) 中止信号获取;   这两个技术是实现 UCCI 反馈信息的基础,但同时降低了搜索效率。      为此,ElephantEye 0.90b 源程序的文件及其功能如下:   (1) UCCI.H:UCCI 命令的获取;   (2) LONGRAND.H:32位随机数的产生;   (3) CCBITBRD.H:位棋盘结构的定义和功能的实现;   (4) CCPREGEN.H:着法预产生数组和 Zobrist 数组的生成(功能1);   (5) CCMOVGEN.H:局面结构的定义和功能的实现,包括着法产生和将军判断(功能2-5);   (6) CCEVALUE.H:局面评估函数,ElephantEye 0.90b 采用“梦入圣蛋”的快速局面评估方法;   (7) CCSEARCH.H:搜索程序(功能6-14);   (8) ELEEYE09.CPP:ElephantEye 0.90b 的主程序(即 main 函数);   所有的子程序都以头文件的形式存在,编译 ELEEYE09.CPP 即可;

  为了阐述界面和引擎的通讯原理,作者用 Visual Basic 设计了一个示例程序,文件及其功能如下:   (1) REDIRECT.CPP:REDIRECT.DLL 包含了 Console 程序重定向的 API 库函数;   (2) EX_STDIO.BAS:用 Visual Basic 跟引擎通讯的示例程序;   (3) EX_STDIO.FRM:示例程序用到的界面;   (4) EX_STDIO.VBP:Visual Basic 工程文件,可直接用 Visual Basic 编译。

  此外,ElephantEye 0.90b 还为以下有待开发的功能预留了部分接口:   (1) 时间控制的 UCCI 协议;   (2) 接收历史局面的 UCCI 协议;   (3) 开局库和局面表(置换表或散列表);   (4) 高级搜索方法(包括空着裁剪、窗口裁剪、PVS/NegaScout、MTD(f) 等等);   (5) 更合理的局面评估函数。   尽管这些功能还没有实现,ElephantEye 0.90b 也已经具有相当的棋力,实力远远强于公开源代码的 MantisChess 和 VSCCP,稍弱于“梦入圣蛋”,适合初学者练习。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|粤公网安备 44040302000128号|华工象棋网 ( 粤ICP 备4404034007231   我要啦免费统计

GMT+8, 2024-5-24 02:12

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表