资源简介
中国象棋源码 陶善文编写 通过VC++2013编译 MFC 游戏编程
代码片段和文件信息
// AlphaBetaEngine.cpp: implementation of the CAlphaBetaEngine class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “AlphaBetaEngine.h“
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CAlphaBetaEngine::CAlphaBetaEngine()
{
}
CAlphaBetaEngine::~CAlphaBetaEngine()
{
}
int CAlphaBetaEngine::SearchAGoodMove(BYTE position[][9])
{
memcpy(CurPositionposition90); //将当前局面复制到CurPosition
m_nMaxDepth=m_nSearchDepth; //设定搜索深度
AlphaBeta(m_nMaxDepth-2000020000);//进行alphabeta搜索
m_umUndoMove.cmChessMove=m_cmBestMove;
m_umUndoMove.nChessID=MakeMove(&m_cmBestMove);
memcpy(positionCurPosition90); //将走过的棋盘传出
return 0;
}
int CAlphaBetaEngine::AlphaBeta(int nDepthint alphaint beta)
{
int score;
int Counti;
BYTE type;
i=IsGameOver(CurPositionnDepth);//检查是否游戏结束
if(i!=0)
return i;//结束,返回估值
//叶子节点取估值
if(nDepth<=0)
return m_pEval->Eveluate(CurPosition(m_nMaxDepth-nDepth)%2m_nUserChessColor);
//此函数找出当前局面所有可能的走法,然后放进m_pMG ->m_MoveList当中
Count=m_pMG->CreatePossibleMove(CurPositionnDepth(m_nMaxDepth-nDepth)%2m_nUserChessColor);
if(nDepth==m_nMaxDepth)
{
//在根节点设定进度条
m_pThinkProgress->SetRange(0Count);
m_pThinkProgress->SetStep(1);
}
//对所有可能的走法
for(i=0;i {
if(nDepth==m_nMaxDepth)
m_pThinkProgress->StepIt();//走进度条
type=MakeMove(&m_pMG->m_MoveList[nDepth][i]); //将当前局面应用此走法,变为子节点的局面
score=-AlphaBeta(nDepth-1-beta-alpha); //递归搜索子节点
UnMakeMove(&m_pMG->m_MoveList[nDepth][i]type);//将此节点的局面恢复为当前节点
if(score>alpha)
{
alpha=score;//保留极大值
//靠近根节点时保留最佳走法
if(nDepth==m_nMaxDepth)
m_cmBestMove=m_pMG->m_MoveList[nDepth][i];
}
if(alpha>=beta)
break;//剪枝,放弃搜索剩下的节点
}
return alpha;//返回极大值
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2215 2017-09-24 19:24 Source Code\Alphabeta_HH.cpp
文件 831 2017-09-24 19:24 Source Code\Alphabeta_HH.h
文件 2762 2017-09-24 19:24 Source Code\AlphaBeta_TTEngine.cpp
文件 845 2017-09-24 19:24 Source Code\AlphaBeta_TTEngine.h
文件 2125 2017-09-24 19:28 Source Code\AlphaBetaEngine.cpp
文件 823 2017-09-24 19:24 Source Code\AlphaBetaEngine.h
文件 1225 2017-09-24 19:24 Source Code\AspirationSearch.cpp
文件 708 2017-09-24 19:28 Source Code\AspirationSearch.h
目录 0 2017-11-24 17:46 Source Code\Backup\
文件 875 2017-09-28 15:48 Source Code\Backup\Chess.sln
文件 46080 2017-11-24 17:36 Source Code\Backup\Chess.v12.suo
文件 158292 2018-03-05 01:18 Source Code\Chess.aps
文件 2049 2004-07-05 11:48 Source Code\Chess.cpp
文件 7968 2016-07-06 10:46 Source Code\Chess.dsp
文件 535 2004-08-24 09:49 Source Code\Chess.dsw
文件 217088 2004-08-24 13:19 Source Code\Chess.exe
文件 1334 2004-08-23 20:19 Source Code\Chess.h
文件 20589568 2017-11-24 17:36 Source Code\Chess.ncb
文件 64000 2016-07-06 10:57 Source Code\Chess.opt
文件 3076 2016-07-06 10:46 Source Code\Chess.plg
文件 11322 2018-03-05 01:18 Source Code\Chess.rc
文件 74448896 2018-03-11 00:06 Source Code\Chess.sdf
文件 955 2017-11-24 17:46 Source Code\Chess.sln
文件 46080 2017-11-24 17:36 Source Code\Chess.suo
文件 93184 2018-03-11 00:06 Source Code\Chess.v12.suo
文件 18452 2017-09-24 18:55 Source Code\Chess.vcproj
文件 1421 2017-11-24 17:36 Source Code\Chess.vcproj.dujinfeng-PC.dujinfeng.user
文件 10759 2018-02-26 23:20 Source Code\Chess.vcxproj
文件 7363 2017-11-24 17:46 Source Code\Chess.vcxproj.filters
文件 165 2017-11-24 17:50 Source Code\Chess.vcxproj.user
文件 50869 2018-03-05 01:28 Source Code\ChessDlg.cpp
............此处省略203个文件信息
相关资源
- C++编程思想两卷合订本.pdf 电子书(完
- VC++深入详解
- VC6.0 MSDN
- VC++图像处理设计
- MATLAB软件的必备编程插件
- VC++6.0官方版
- Visual C++开发实战1200例(第2卷).(配
- Visual C++开发实战1200例(第2卷).(配
- vc_mbcsmfc
- 图像识别与项目实践:VC++、MATLAB技术
- VC++2010 VC上位机 20个教程 零基础 极速
- stm32f107vc_UCOSIII_3.03_CPP
- VC++ outlookbar控件CXTOutBarCtrl
- python扩展需要安装的VC++环境python2.x
-
在ob
jectARX(VC)中使用MFC-可停靠窗 - VC++ 实现自动升级 漂亮的界面效果
- VC++深入详解-完整带详细书签
- Visual C++ VC 2010 Express CHS 简体中文版
- VC++2012(VC++最新版!)
- 全套BT源代码,C++编写
- vc实现的telnet客户端的代码
- VC调用agilent矢量网络分析仪
- VC++实现考试系统源码客户端服务器
- 学生选课系统(VC+SQL Server)
- c/c++经典1000例100+900例 包括详细题目、
- VC++语法分析工具源代码附文档
- 图书管理系统纯c++编译,vc6轻松实现
- 8数码难题含代码,实验报告
- VC++俄罗斯方块完整源码
- 自制FFT频谱分析软件
评论
共有 条评论