- 5
- 0
- 约1.16万字
- 约 18页
- 2023-09-18 发布于上海
- 举报
实用文档
实用文档
文案大全
文案大全
#include iostream #include string #include cmath using namespace std;
enum TResult
{//结局状态
WHITEWIN = 1,//白方赢BLACKWIN,//黑方赢STALEMATE,//僵局
DRAW,//和局DEAD,//过多的输入
PUZZLE,//无法决定移动棋子ILLEGAL //非法
};
const char RESULT[8][20]=
{//结局状态输出表示,
White Win, Black Win, Stalemate, Draw,
Dead Moves, Puzzle Move, Illegal Move
};
enum TPieceType
{//棋子类型SPACE = 0,
PAWN,//兵KING,//王QUEEN,//后ROOK,//车BISHOP,//象KNIGHT //马
};
enum TSide
{
NONE = 0,
WHITE,//黑方BLACK //白方
};
typedef struct
{//棋盘每个位置的表示
TSide side;//所属玩家TPieceType pt;//棋子类型
}TPiece;
const int BOARDSIZE = 8;//棋盘大小
typedef TPiece TBoard[BOARDSIZE][BOARDSIZE];//棋盘int n;//棋谱步数
TResult result;//最后结局
/*
*用来进行王车易位的布尔变量
*
* whitecastled:白方是否已经王车易位
blackcastled:黑方是否已经王车易位
white0rookMoved: 白方号位的车是否已经移动
white7rookMoved: 白方号位的车是否已经移动
black0rookMoved: 黑方号位的车是否已经移动
black7rookMoved: 黑方号位的车是否已经移动
whitekingMoved: 白方王是否已经移动
blackkingMoved: 黑方王是否已经移动
*
*/ bool
whitecastled,blackcastled,white0rookMoved,white7rookMoved,black0rookMoved,black 7rookMoved,whitekingMoved,blackkingMoved;
TPieceType ChessType(const string move)
{
switch(move[0])
{
case K://王return KING;
case Q://后return QUEEN;
case R://车return ROOK;
case B://象return BISHOP;
case N://马return KNIGHT;
}
return PAWN;//兵
}
TSide Opponent(TSide side)
{//获取对手类型
if (side==WHITE)
return BLACK; return WHITE;
}
void clear(TBoard b,int x,int y)
{//清空棋盘b 的(x,y)位置b[x][y].side = NONE;//所属玩家b[x][y].pt = SPACE;//棋子类型
}
void init(TBoard b)
{//初始化棋盘int i,j;
//清空整个棋盘for(i=0;iBOARDSIZE;++i)
for(j=0;jBOARDSIZE;++j)
{
clear(b,i,j);
}
//摆放各个棋子for(i=0;iBOARDSIZE;++i)
{
//棋盘前两行是白方b[0][i].side = WHITE;
b[1][i].side = WHITE;
b[1][i].pt = PAWN;//上面第二行是白方的兵
//棋盘最后两行是黑方b[6][i].side = BLACK;
b[7][i].side = BLACK;
b[6][i].pt = PAWN;//倒数第二行是黑方的兵
}
b[0][0].pt = b[0][7].pt = b[7][0].pt = b[7][7].pt = ROOK;/ 初/
置
始化车的位
b[0][1].pt = b[0][6].pt = b[7][1].pt = b[7][6].pt = KNIGHT;//初始化马的
位置
b[0][2].pt = b[0][5].pt = b[7][2].pt = b[7][5].pt = BISHOP;//初始化象的
位置
b[0][3].pt = b[7][3].pt = QUEEN;//初始化后的位置b[0][4].p
您可能关注的文档
- 固体物理第三章.docx
- 关爱帮助外来务工人员子女融入城市.docx
- 关爱留守儿童活动背景.docx
- 关爱留守儿童结对帮扶制度.docx
- 关爱留守儿童演讲稿.docx
- 关爱员工标语.docx
- 关键处驻足慢绘细微处.docx
- 关键岗位培训持证上岗制度.docx
- 关键岗位人才盘点工具.docx
- 关键工序基本知识培训试题.docx
- 山西天一大联考2025-2026学年高二上学期期末学情监测语文试题(试卷+解析).docx
- 山西忻州部分学校2025-2026学年高一上学期2月质量检测数学试题(人教B版)(试卷+解析).docx
- 山西运城市2025-2026学年高二第一学期期末调研测试数学试题(试卷+解析).docx
- 陕西省榆林市榆阳区2025-2026学年八年级上学期期末地理试题(试卷+解析).docx
- 陕西西安市碑林区2025-2026学年度第一学期期末八年级生物试题(试卷+解析).docx
- 四川省广元市苍溪县2025-2026年八年级上学期期末道德与法治试题(试卷+解析).docx
- 江苏泰州市姜堰区2025-2026学年七年级上学期1月期末数学试题(试卷+解析).docx
- 江苏省扬州市邗江区2025-2026学年九年级上学期期末考试化学试题(试卷+解析).docx
- 江西上饶市铅山县2025-2026学年第一学期期末考试八年级数学试题(试卷+解析).docx
- 江苏扬州市高邮市2025-2026学年度第一学期期末学业质量监测试题九年级英语(试卷+解析).docx
原创力文档

文档评论(0)