资源简介
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 主程序\ba
文件 20214 2013-12-02 03:39 主程序\ba
文件 11008 2013-12-02 03:39 主程序\ba
文件 3268 2013-12-02 03:39 主程序\ba
....... 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 主程序\Hyperli
文件 3303 2013-12-02 03:39 主程序\Hyperli
文件 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个文件信息
相关资源
- VC++基于OpenGL模拟的一个3维空间模型
- 打飞机小游戏57466
- 基于VC++的SolidWorks二次开发SolidWorks
- 俄罗斯方块游戏源码(Tetris)
- c++ 猜拳小游戏
- 扫雷游戏.cpp
- 杨中科游戏开发引擎
- 智商超高的中国象棋游戏源码(C++版
- 派克变换VC++源码(附文档)
- VC++ 串口
- c++ 扫雷游戏源码(控制台)
- C++跑跑卡丁车
- C++“倒忌时”小游戏
- XX游戏客户端源码
- c++小游戏源码.doc
- 基于ege图形的推箱子游戏
- C语言ege贪吃蛇游戏
- C++小游戏4款(源码)
- 推箱子小游戏源码
- 五子棋游戏源码(控制台)
- 猜数字游戏.sb3
- C++贪吃蛇控制台小游戏代码
- 扫雷游戏.cpp(较简单)
- MFC五子棋游戏
- VC++ 大富翁4_大富翁游戏源码
- c++常用游戏算法及数据结构设计
- c++的飞行鸟游戏
- VC++ 摄像头视频采集与回放源程序
- 2048小游戏c语言实现
- 转 VC++ 实现电子邮件(Email)发送
评论
共有 条评论