資源簡介
根據書籍《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?
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包集合
評論
共有 條評論