资源简介
根据书籍《PC游戏编程.人机博弈》所附c++源码改写成的java程序,对于用java实现搏奕树搜索算法是一种不错的借鉴;

代码片段和文件信息
package wjs.chineseChess;
import wjs.chineseChess.tools.ChessTools;
public class CAlphaBetaEngine extends CSearchEngineAbstract {
public CAlphaBetaEngine() {
this.setName(“Alpha-Beta搜索引擎“);
}
@Override
protected void finalize() throws Throwable {
// TODO Auto-generated method stub
super.finalize();
}
public void SearchAGoodMove(byte[][] position) {
// TODO Auto-generated method stub
m_nMaxDepth = m_nSearchDepth;
ChessTools.memcpy(CurPosition position 90);
alphabeta(m_nMaxDepth -20000 20000);
makeMove(m_cmBestMove);
ChessTools.memcpy(position CurPosition 90);
}
protected int alphabeta(int depth int alpha int beta) {
int score;
int Count i;
byte type;
i = isGameOver(CurPosition depth);
if (i != 0)
return i;
if (depth <= 0) // 叶子节点取估值
return m_pEval.eveluate(CurPosition
(m_nMaxDepth - depth) % 2 == 1 ? true : false);
Count = m_pMG.createPossibleMove(CurPosition depth
(m_nMaxDepth - depth) % 2 == 1 ? true : false);
for (i = 0; i < Count; i++) {
type = makeMove(m_pMG.m_MoveList[depth][i]);
score = -alphabeta(depth - 1 -beta -alpha);
unMakeMove(m_pMG.m_MoveList[depth][i] type);
if (score > alpha) {
alpha = score;
if (depth == m_nMaxDepth)
m_cmBestMove = m_pMG.m_MoveList[depth][i];
}
if (alpha >= beta)
break;
}
return alpha;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 232 2017-08-31 17:09 chineseChess\.classpath
文件 232 2017-08-31 17:09 chineseChess\.classpath(1)
文件 388 2017-08-31 17:09 chineseChess\.project
文件 79222 2017-08-31 17:09 chineseChess\bin\chessBoard.bmp
文件 9190 2017-08-31 17:09 chineseChess\bin\Chesses.bmp
文件 243 2017-08-31 17:09 chineseChess\bin\chessIco.PNG
文件 3944 2017-08-31 17:09 chineseChess\bin\mask.bmp
文件 1184 2017-08-31 17:09 chineseChess\bin\wjs\chineseChess\ba
文件 345 2017-08-31 17:09 chineseChess\bin\wjs\chineseChess\ba
文件 345 2017-08-31 17:09 chineseChess\bin\wjs\chineseChess\ba
文件 512 2017-08-31 17:09 chineseChess\bin\wjs\chineseChess\ba
文件 459 2017-08-31 17:09 chineseChess\bin\wjs\chineseChess\ba
文件 312 2017-08-31 17:09 chineseChess\bin\wjs\chineseChess\ba
文件 1900 2017-08-31 17:09 chineseChess\bin\wjs\chineseChess\CAlphaBetaEngine.class
文件 939 2017-08-31 17:09 chineseChess\bin\wjs\chineseChess\CChessDlg$MyCanvas$1.class
文件 8245 2017-08-31 17:09 chineseChess\bin\wjs\chineseChess\CChessDlg$MyCanvas.class
文件 9387 2017-08-31 17:09 chineseChess\bin\wjs\chineseChess\CChessDlg.class
文件 9715 2017-08-31 17:09 chineseChess\bin\wjs\chineseChess\CEveluation.class
文件 1964 2017-08-31 17:09 chineseChess\bin\wjs\chineseChess\CFAlphaBetaEngine.class
文件 7828 2017-08-31 17:09 chineseChess\bin\wjs\chineseChess\CMoveGenerator.class
文件 1855 2017-08-31 17:09 chineseChess\bin\wjs\chineseChess\CNegamaxEngine.class
文件 2807 2017-08-31 17:09 chineseChess\bin\wjs\chineseChess\CSearchEngineAbstract.class
文件 334 2017-08-31 17:09 chineseChess\bin\wjs\chineseChess\CSearchEngineInterFace.class
文件 3439 2017-08-31 17:09 chineseChess\bin\wjs\chineseChess\NewGameDialog.class
文件 389 2017-08-31 17:09 chineseChess\bin\wjs\chineseChess\Test.class
文件 1170 2017-08-31 17:09 chineseChess\bin\wjs\chineseChess\tools\ChessTools.class
文件 79222 2017-08-31 17:09 chineseChess\src\chessBoard.bmp
文件 9190 2017-08-31 17:09 chineseChess\src\Chesses.bmp
文件 243 2017-08-31 17:09 chineseChess\src\chessIco.PNG
文件 3944 2017-08-31 17:09 chineseChess\src\mask.bmp
............此处省略30个文件信息
- 上一篇:spring-web-2.5.6.jar
- 下一篇:asm3.3相关jar包集合
相关资源
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
评论
共有 条评论