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]