資源簡(jiǎn)介
蔣鵬、雷貽祥、陳園園編著的《C/C++中國(guó)象棋程序入門與提高》的源代碼,很難下載到的。

代碼片段和文件信息
//?Board.cpp:?implementation?of?the?CBoard?class.
//
//////////////////////////////////////////////////////////////////////
#include?“Board.h“
#ifdef?_DEBUG
#undef?THIS_FILE
static?char?THIS_FILE[]=__FILE__;
#define?new?DEBUG_NEW
#endif
CBoard?g_Board;
//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////
CBoard::CBoard()
{
StackTop?=?0;
ply?=0;
MaxDepth?=?4;
}
CBoard::~CBoard()
{
}
//棋子整數(shù)值轉(zhuǎn)換成字符表示
char?CBoard::IntToChar(int?a)
{
if(a?<32)
{
switch(a)
{
case?16: return?‘K‘;
case?17:
case?18: return?‘A‘;
case?19:
case?20: return?‘B‘;
case?21:
case?22: return?‘N‘;
case?23:
case?24: return?‘R‘;
case?25:
case?26: return?‘C‘;
case?27:
case?28:
case?29:
case?30:
case?31: return?‘P‘;
default: return?0;
}
}
else
{
a?=?a-16;
switch(a)
{
case?16: return?‘k‘;
case?17:
case?18: return?‘a(chǎn)‘;
case?19:
case?20: return?‘b‘;
case?21:
case?22: return?‘n‘;
case?23:
case?24: return?‘r‘;
case?25:
case?26: return?‘c‘;
case?27:
case?28:
case?29:
case?30:
case?31: return?‘p‘;
default: return?0;
}
}
}
void?CBoard::ClearBoard()?//清空棋盤數(shù)組
{
int?i;
side?=?0;
for?(i?=?0;?i?256;?i?++)?
{
board[i]?=?0;
}
for?(i?=?0;?i?48;?i?++)?
{
piece[i]?=?0;
}
StackTop=0;
ZobristKey?=?0;
ZobristKeyCheck?=?0;
}
//FEN串中棋子對(duì)應(yīng)的數(shù)組下標(biāo)
//下標(biāo)0,1,2,3,4,5,6分別對(duì)應(yīng)表示將,仕,象,馬,車,炮,兵
int?CBoard::CharToSubscript(char?ch)?
{
switch(ch)
{
case?‘k‘:
case?‘K‘:return?0;
case?‘a(chǎn)‘:
case?‘A‘:return?1;
case?‘b‘:
case?‘B‘:return?2;
case?‘n‘:
case?‘N‘:return?3;
case?‘r‘:
case?‘R‘:return?4;
case?‘c‘:
case?‘C‘:return?5;
case?‘p‘:
case?‘P‘:return?6;
default:return?7;
}
}
void?CBoard::AddPiece(int?pos?int?pc)?//增加棋子
{
int?pt;
board[pos]?=?pc;
piece[pc]?=?pos;
pt?=?PieceNumToType[pc];
if?(pc>=32)
{
pt?+=?7;
}
ZobristKey?^=?ZobristTable[pt][pos];
ZobristKeyCheck?^=?ZobristTableCheck[pt][pos];
}
//將FEN串表示的局面轉(zhuǎn)換成一維數(shù)組
void?CBoard::StringToArray(const?char?*FenStr)?
{
int?i?j?k;
int?pcWhite[7]={16171921232527};
int?pcBlack[7]={32333537394143};
const?char?*str;
??
ClearBoard();
str?=?FenStr;
if?(*str?==?‘\0‘)?
{
return;
}
??
i?=?3;
j?=?3;
while?(*str?!=?‘?‘)?
{
if?(*str?==?‘/‘)?
{
j?=?3;
i?++;
if?(i?>?12)?
{
break;
}
}?
else?if?(*str?>=?‘1‘?&&?*str?<=?‘9‘)?
{
for?(k?=?0;?k?(*str?-?‘0‘);?k?++)?
{
if?(j?>=?11)?
{
break;
}
j?++;
}
}?
else?if?(*str?>=?‘A‘?&&?*str?<=?‘Z‘)?
{
if?(j?<=?11)?
{
k?=?CharToSubscript(*str);
if?(k?7)?
{
if?(pcWhite[k]?32)?
{
AddPiece((i<<4)+jpcWhite[k]);
pcWhite[k]++;
}
}
j?++;
}
}
else?if?(*str?>=?‘a(chǎn)‘
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????4477??2008-05-10?21:48??第10章?算法分析與測(cè)試技術(shù)\chessengine9-7\Board.cpp
?????文件???????3372??2008-06-14?11:05??第10章?算法分析與測(cè)試技術(shù)\chessengine9-7\Board.h
?????文件???????5011??2008-05-10?21:41??第10章?算法分析與測(cè)試技術(shù)\chessengine9-7\chessengine.dsp
?????文件????????547??2007-09-19?12:54??第10章?算法分析與測(cè)試技術(shù)\chessengine9-7\chessengine.dsw
?????文件?????328704??2008-06-14?15:31??第10章?算法分析與測(cè)試技術(shù)\chessengine9-7\chessengine.ncb
?????文件?????268800??2008-06-14?15:31??第10章?算法分析與測(cè)試技術(shù)\chessengine9-7\chessengine.opt
?????文件???????2019??2008-06-14?11:05??第10章?算法分析與測(cè)試技術(shù)\chessengine9-7\chessengine.plg
?????文件???????1478??2008-06-07?10:48??第10章?算法分析與測(cè)試技術(shù)\chessengine9-7\def.h
?????文件???????2422??2008-06-14?11:05??第10章?算法分析與測(cè)試技術(shù)\chessengine9-7\engine.cpp
?????文件????????539??2008-06-07?11:23??第10章?算法分析與測(cè)試技術(shù)\chessengine9-7\evaluate.cpp
?????文件??????10334??2008-06-14?11:05??第10章?算法分析與測(cè)試技術(shù)\chessengine9-7\genmoves.cpp
?????文件???????2283??2008-06-06?00:19??第10章?算法分析與測(cè)試技術(shù)\chessengine9-7\hash.cpp
?????文件???????2670??2007-09-19?13:02??第10章?算法分析與測(cè)試技術(shù)\chessengine9-7\pipe.cpp
?????文件????????476??2007-09-19?13:00??第10章?算法分析與測(cè)試技術(shù)\chessengine9-7\pipe.h
?????文件???????5073??2008-06-07?15:42??第10章?算法分析與測(cè)試技術(shù)\chessengine9-7\search.cpp
?????文件???????5293??2007-09-19?13:03??第10章?算法分析與測(cè)試技術(shù)\chessengine9-7\ucci.cpp
?????文件???????3935??2007-09-19?13:03??第10章?算法分析與測(cè)試技術(shù)\chessengine9-7\ucci.h
?????文件??????20732??2008-06-07?10:01??第10章?算法分析與測(cè)試技術(shù)\第六章\6-2.cpp
?????文件??????21036??2008-06-07?10:01??第10章?算法分析與測(cè)試技術(shù)\第六章\6-3.cpp
?????文件???????4361??2008-06-07?11:21??第10章?算法分析與測(cè)試技術(shù)\第六章\象棋程序.dsp
?????文件????????541??2007-08-28?13:59??第10章?算法分析與測(cè)試技術(shù)\第六章\象棋程序.dsw
?????文件??????91136??2008-06-23?23:50??第10章?算法分析與測(cè)試技術(shù)\第六章\象棋程序.ncb
?????文件?????266752??2008-06-23?23:50??第10章?算法分析與測(cè)試技術(shù)\第六章\象棋程序.opt
?????文件???????1262??2008-06-07?09:45??第10章?算法分析與測(cè)試技術(shù)\第六章\象棋程序.plg
?????文件???????4275??2008-05-20?23:38??第11章?時(shí)間控制策略\11-1\Board.cpp
?????文件???????2564??2008-05-20?22:24??第11章?時(shí)間控制策略\11-1\Board.h
?????文件???????4952??2007-09-19?13:20??第11章?時(shí)間控制策略\11-1\chessengine.dsp
?????文件????????547??2007-09-19?12:54??第11章?時(shí)間控制策略\11-1\chessengine.dsw
?????文件??????99328??2008-06-14?13:48??第11章?時(shí)間控制策略\11-1\chessengine.ncb
?????文件?????268800??2008-06-14?13:48??第11章?時(shí)間控制策略\11-1\chessengine.opt
............此處省略453個(gè)文件信息
評(píng)論
共有 條評(píng)論