Problem1363--围棋对战算法引擎1363: 围棋对战算法引擎
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 1426 Solved: 121
[Submit] [Status] [Web Board] [Creator:]Description
围棋是世界范围内非常流行的棋类运动,是竞技体育项目。围棋的规则非常简单,做为编程初学者逻辑思维训练非常合适。
标准围棋棋盘是19行19列。为了简化起见,此处简化成9行9列。
标准围棋对弈方法是黑方和白方轮番下棋,为了简化,本算法引擎,支持任意的落子顺序,即落子顺序由程序输入
输入(棋子角色,棋子行号,棋子列号)
1 2 3
表示白子放第2行第3列
2 3 3
表示黑子放第3行第3列
本算法引擎实现的是。从落子序列到棋盘状态的映射,当落子完成后,输出最终的棋盘状态。
+代表空白,o代表白棋,#代表黑棋
例如
1 1 1
1 1 2
1 2 1
1 2 2
输出
四颗白子形成的正方形状
围棋对战算法引擎需要实现各种围棋规则(提子,禁入点,反扑,劫)。具体的规则示意图请自行网上查阅。
Input
1 1 1
2 2 2
Output
1 2 3 4 5 6 7 8 9
1 o + + + + + + + +
2 + # + + + + + + +
3 + + + + + + + + +
4 + + + + + + + + +
5 + + + + + + + + +
6 + + + + + + + + +
7 + + + + + + + + +
8 + + + + + + + + +
9 + + + + + + + + +
Sample Input
1 1 1
2 2 2
Sample Output
1 2 3 4 5 6 7 8 9
1 o + + + + + + + +
2 + # + + + + + + +
3 + + + + + + + + +
4 + + + + + + + + +
5 + + + + + + + + +
6 + + + + + + + + +
7 + + + + + + + + +
8 + + + + + + + + +
9 + + + + + + + + +
HINT
//显示整个棋盘,由黑棋,白棋,空白组成。
void showChessBoard(void)
{
printf(" ");
for (int i=0; i < COLS; i++)
{
printf("%3d",i+1);
}
printf("\n");
for (int i=0; i < ROWS; i++)
{
printf("%2d ",i+1);
for (int j=0; j < COLS; j++)
{
enum chessType data = chessData[i][j];
printf("%3c",chessChar[data]);
}
printf("\n");
}
}
Source/Category
[Submit] [Status]