资源简介

VC++源码版的中国象棋游戏,人机对战。在电脑上是不是经常见到这款游戏啊?以前很喜欢玩中国象棋游戏的,你是不是还和电脑下过一盘呢?今天终于见到它的神秘面纱了,它的VC源代码文件。超强难度的搜索引擎和算法、估值函数以及开局库,还有大量的开局库资料都将为您展现出来。研究VC++游戏编程的朋友可绝不要错过哦!

资源截图

代码片段和文件信息

//Download by http://www.NewXing.com
// GetAllCB.cpp : Defines the entry point for the console application.
//

#include “stdafx.h“
#include “GetAllCB.h“
#include 

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// The one and only application object

//--------棋子--------
#define NOCHESS    0 //没有棋子

#define B_KING    1 //黑帅
#define B_CAR    2 //黑车
#define B_HORSE    3 //黑马
#define B_CANON    4 //黑炮
#define B_BISHOP   5 //黑士
#define B_ELEPHANT 6 //黑象
#define B_PAWN     7 //黑卒

#define R_KING    8 //红将
#define R_CAR      9 //红车
#define R_HORSE    10//红马
#define R_CANON    11//红炮
#define R_BISHOP   12//红士
#define R_ELEPHANT 13//红相
#define R_PAWN     14//红兵
//--------------------

struct CHESSINFO
{
BYTE byChess;
int iPos;
};

void GetAllCBCnt(int iint j);  //得到所有合法布局的总数
int CreateAllChess(int iint j);//产生所有合法的棋子

bool IsLegalChess(int iint jBYTE byChess);//在位置(ij)放棋子byChess是否合法
bool IsHaveGen(bool bIsRed); //是否已经放置了将帅

BYTE MakeMove(int iint jCHESSINFO ciChessInfo);
void UnMakeMove(int iint jCHESSINFO ciChessInfoBYTE byChess);

void PrintChessBoard(BYTE byChessBoard[10][9]);//打印棋盘

CWinApp theApp;

using namespace std;

float iAllCnt=0;
BYTE byCurChess[33]=
{
NOCHESS
B_CARB_HORSEB_ELEPHANTB_BISHOPB_KINGB_BISHOPB_ELEPHANTB_HORSEB_CARB_CANONB_CANONB_PAWNB_PAWNB_PAWNB_PAWNB_PAWN
R_CARR_HORSER_ELEPHANTR_BISHOPR_KINGR_BISHOPR_ELEPHANTR_HORSER_CARR_CANONR_CANONR_PAWNR_PAWNR_PAWNR_PAWNR_PAWN
};
CHESSINFO ciAllPsbChess[10][9][32];//每一个格子对应的可以放的棋子
BYTE byCurChessBoard[10][9];//当前棋盘

int _tmain(int argc TCHAR* argv[] TCHAR* envp[])
{
int nRetCode = 0;

// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL) NULL ::GetCommandLine() 0))
{
// TODO: change error code to suit your needs
cerr << _T(“Fatal Error: MFC initialization failed“) << endl;
nRetCode = 1;
}

int ij;

//初始化byCurChessBoard
for(i=0;i<10;i++)
for(j=0;j<9;j++)
byCurChessBoard[i][j]=NOCHESS;

GetAllCBCnt(00);
cout<
getch();

return nRetCode;
}

void GetAllCBCnt(int iint j)
{
int k;
int iCnt=CreateAllChess(ij);
BYTE byChess;

for(k=0;k {
byChess=MakeMove(ijciAllPsbChess[i][j][k]);
if(j+1>8)
{
if(i+1>9)//得到一种布局布局数加1
{
PrintChessBoard(byCurChessBoard);
getch();
iAllCnt++;
UnMakeMove(ijciAllPsbChess[i][j][k]byChess);
return;
}
else
GetAllCBCnt(i+10);
}
else
GetAllCBCnt(ij+1);
UnMakeMove(ijciAllPsbChess[i][j][k]byChess);
}
}

int CreateAllChess(int iint j)
{
int iCnt=0;
int k;
bool bFlag=0;//空棋子是否已经使用

for(k=0;k<33;k++)
{
if(IsLegalChess(ijbyCurChess[k]))
{
if(byCurChess[k]==NOCHESS)
{
if(!bFlag)
{

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      66769  2013-12-02 03:39  主程序\baseEveluation.cpp

     文件      20214  2013-12-02 03:39  主程序\baseEveluation.h

     文件      11008  2013-12-02 03:39  主程序\baseSearchEngine.cpp

     文件       3268  2013-12-02 03:39  主程序\baseSearchEngine.h

    .......    493056  2001-03-30 11:46  主程序\CBLibXControl.ocx

     文件       2627  2013-12-02 03:39  主程序\Chess.cpp

    .......      9315  2004-12-03 20:37  主程序\Chess.dsp

    .......       535  2004-08-24 09:49  主程序\Chess.dsw

     文件       1453  2013-12-02 03:39  主程序\Chess.h

    .......     15436  2004-12-21 09:48  主程序\Chess.rc

     文件      73263  2013-12-02 03:39  主程序\ChessDlg.cpp

     文件       7433  2013-12-02 03:39  主程序\ChessDlg.h

     文件       6187  2013-12-02 03:39  主程序\CoolButton.cpp

     文件       1565  2013-12-02 03:39  主程序\CoolButton.h

     文件       2411  2013-12-02 03:39  主程序\Define.h

     文件      69811  2013-12-02 03:39  主程序\Eveluation.cpp

     文件        760  2013-12-02 03:39  主程序\Eveluation.h

     文件       4577  2013-12-02 03:39  主程序\GradientProgressCtrl.cpp

     文件       2259  2013-12-02 03:39  主程序\GradientProgressCtrl.h

     文件       1392  2013-12-02 03:39  主程序\HelpDlg.cpp

     文件       1281  2013-12-02 03:39  主程序\HelpDlg.h

     文件       2683  2013-12-02 03:39  主程序\HistoryHeuristic.cpp

     文件       1440  2013-12-02 03:39  主程序\HistoryHeuristic.h

     文件      12031  2013-12-02 03:39  主程序\Hyperlink.cpp

     文件       3303  2013-12-02 03:39  主程序\Hyperlink.h

     文件       1300  2013-12-02 03:39  主程序\MemDC.cpp

     文件        719  2013-12-02 03:39  主程序\MemDC.h

     文件      18955  2013-12-02 03:39  主程序\MoveGenerator.cpp

     文件       2357  2013-12-02 03:39  主程序\MoveGenerator.h

    .......     20798  2003-05-10 19:01  主程序\MoveHint.wav

............此处省略315个文件信息

评论

共有 条评论