资源简介
中国象棋及五子棋人机对弈算法详细讲解和vc源代码实现
代码片段和文件信息
// COPYRIGHT NOTES
// ---------------
// This source code is a part of chess which is an example of .
// You may use compile or redistribute it as part of your application
// for free.
// You cannot redistribute sources without the official agreement of the author.
// If distribution of you application which contents code below was occured place
// e-mail on it is to be appreciated.
// This code can be used WITHOUT ANY WARRANTIES on your own risk.
//
// Spring Wang
// ---------------
// 版权声明
// ---------------
// 本文件所含之代码是《人机博弈程序设计指南》的范例程序中国象棋的一部分
// 您可以免费的使用 编译 或者作为您应用程序的一部分。
// 但,您不能在未经作者书面许可的情况下分发此源代码。
// 如果您的应用程序使用了这些代码,在您的应用程序界面上
// 放入 e-mail 是令人欣赏的做法。
// 此代码并不含有任何保证,使用者当自承风险。
//
// 王小春
// AlphaBetaAndTT.cpp: implementation of the CAlphaBetaAndTT class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “chess.h“
#include “AlphaBetaAndTT.h“
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CAlphaBetaAndTT::CAlphaBetaAndTT()
{
}
CAlphaBetaAndTT::~CAlphaBetaAndTT()
{
}
CAlphaBetaAndTT::SearchAGoodMove(BYTE position[10][9])
{
memcpy(CurPosition position 90);
CalculateInitHashKey(CurPosition);
m_nMaxDepth = m_nSearchDepth;
alphabeta(m_nMaxDepth -20000 20000);
MakeMove(&m_cmBestMove);
memcpy(position CurPosition 90);
}
int CAlphaBetaAndTT::alphabeta(int depth int alpha int beta)
{
int score;
int Counti;
BYTE type;
int side;
i = IsGameOver(CurPosition depth);
if (i != 0)
return i;
side = (m_nMaxDepth-depth)%2;
score = LookUpHashTable(alpha beta depth side);
if (score != 66666)
return score;
if (depth <= 0) //叶子节点取估值
{
score = m_pEval->Eveluate(CurPosition side );
EnterHashTable(exact score depth side );
return score;
}
Count = m_pMG->CreatePossibleMove(CurPosition depth side);
int eval_is_exact = 0;
for (i=0;i {
Hash_MakeMove(&m_pMG->m_MoveList[depth][i] CurPosition);
type = MakeMove(&m_pMG->m_MoveList[depth][i]);
score = -alphabeta(depth - 1 -beta -alpha);
Hash_UnMakeMove(&m_pMG->m_MoveList[depth][i]type CurPosition);
UnMakeMove(&m_pMG->m_MoveList[depth][i]type);
if (score >= beta)
{
EnterHashTable(lower_bound score depthside);
return score;
}
if (score > alpha)
{
alpha = score;
eval_is_exact = 1;
if(depth == m_nMaxDepth)
m_cmBestMove = m_pMG->m_MoveList[depth][i];
}
}
if (eval_is_exact)
EnterHashTable(exact alpha depthside);
else
EnterHashTable(upper_bound alpha
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3195 2002-06-13 06:59 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\AlphaBetaAndTT.cpp
文件 1778 2002-06-13 06:59 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\AlphaBetaAndTT.h
文件 3951 2002-06-13 06:59 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\AlphaBetaEngine.cpp
文件 1731 2002-06-13 06:59 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\AlphaBetaEngine.h
文件 2913 2002-06-13 06:58 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\Alphabeta_HH.cpp
文件 1762 2002-06-13 06:59 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\Alphabeta_HH.h
文件 2045 2002-06-13 06:59 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\AspirationSearch.cpp
文件 1681 2002-06-13 06:59 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\AspirationSearch.h
文件 1550 2002-06-21 06:52 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\chess.clw
文件 3049 2002-06-13 06:59 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\chess.cpp
文件 6634 2002-04-27 06:51 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\chess.dsp
文件 717 2001-10-28 20:22 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\chess.dsw
文件 2332 2002-06-13 06:59 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\chess.h
文件 1439 2002-06-21 06:52 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\chess.plg
文件 6314 2002-06-21 06:34 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\chess.rc
文件 10224 2002-06-21 06:52 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\chessDlg.cpp
文件 3126 2002-06-21 06:38 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\chessDlg.h
文件 155689 2002-06-21 06:34 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\Debug\chess.exe
文件 2085 2002-06-13 06:59 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\define.h
文件 18635 2002-06-13 06:59 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\Eveluation.cpp
文件 2444 2002-06-13 06:59 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\Eveluation.h
文件 3680 2001-11-30 02:58 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\FAlphaBetaAndTT.cpp
文件 787 2001-11-02 21:43 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\FAlphaBetaAndTT.h
文件 2681 2002-06-13 06:59 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\FAlphaBetaEngine.cpp
文件 1739 2002-06-13 06:59 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\FAlphaBetaEngine.h
文件 3920 2002-06-13 06:59 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\HistoryHeuristic.cpp
文件 2082 2002-06-13 06:59 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\HistoryHeuristic.h
文件 3293 2002-06-13 06:59 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\IDAlphabeta.cpp
文件 1714 2002-06-13 06:59 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\IDAlphabeta.h
文件 579 2001-10-31 18:52 PC 游戏编程(人机博弈)中国象棋和五子棋的算法讲解和vc源代码\boyi\chess\MinimaxEngine.cpp
............此处省略89个文件信息
- 上一篇:USB3.0 协议 规范 中文
- 下一篇:粒子群优化算法代码及资料
相关资源
- 中国象棋代码,参考象眼,AI算法相当
- MVC学生管理系统代码
- 两个吃一个棋类游戏
- springmvc+swaggerz整合项目.zip
- pdfview.ocx控件及一个小程序
- qt-vsaddin-msvc2017-2.2.2.vsix
- Visual CertExam Suite
- mvc小项目
- uvm+vcs+verdi基本平台搭建
- Spring+Spring-MVC+myBatis北大青鸟阶段项目
- vcs 2018 user guide
- 尚硅谷_-SpringMVC.docx
- 人机博弈 游戏源码解析以及基本搜索
- 《超市订单管理系统》项目源码 My
- qt-vsaddin-msvc2017 插件
- VC图像处理代码之—数字图像工程案例
- qt-vsaddin-msvc2017-2.2.0.vsix
- Cuvc 解码器
- VCLSkin5.60破解版(含233种皮肤和皮肤制
- 初学springmvc连接数据库
- 9038143VCLSkin5.40forXE10.1.rar
- DevComponents.DotNetBar2源码 VS2013全工程
- 中国象棋源码UCCI协议
- 指纹数据库 很全的 FVC2004指纹数据库
- SpringMvc自动任务调度之task实现项目源
- 动力节点-reyco郭-spring4讲义
- VCS USER GUIDE
- HCS Pre-Sales-监控-华为VCM视频内容管理
- vclskin5.6
- VC实现CAD可停靠面板
评论
共有 条评论