资源简介
根据书籍《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包集合
相关资源
- Dao类实现JAVA连接数据库及相应的增删
- Java开发的——网络、单机二合一——
- 在线考试系统完整代码,JAVA源码
- 贪吃蛇网络版 java代码
- java文本查重工具类封装
- 图书管理系统java+oracle
- 实用JAVA软件工程课程设计
- Java 3D必备dll
- java 生成文件结构目录树
- java版本坦克大战源代码
- 区号秀java版号码归属地查询软件
- 车辆管理系统基于java
- java实现粗糙集代码
- JAVA远程Linux服务器的文件
- NIIT考试(j2ee javabean sevlet jsp ejb)
- java微信开发API解析四-自定义菜单以及
- java 图的邻接表实现图的各种算法
- java课设打字练习Swing
- java课设_打字练习AWT版
- Java访问MongoDB实用工具类_包含各种操
- RSA+AES 加密工具类 Java
- Java项目-门禁系统
- 学生管理-Java项目
- 软院javaee学习笔记有部分代码
- C/S结构的java聊天室源代码
- Java的循环单链表及其测试程序
- java基于c/s的图书管理系统
- java的MP3播放插件
- java大文件上传至ftp服务器带进度条显
- alipay-sdk-java20151021120052.jar
评论
共有 条评论