黑白棋 Othello

题意翻译

你的任务是模拟黑白棋游戏的进程。黑白棋的规则为:黑白双方轮流放棋子,每次必 须让新放的棋子“夹住”至少一枚对方棋子,然后把所有被新放棋子“夹住”的对方棋子 替换成己方棋子。一段连续(横、竖或者斜向)的同色棋子被“夹住”的条件是两端都是 对方棋子(不能是空位)。如图所示,白棋有 $8$ 个合法操作,分别为 $(2,3)$,$(3,3)$,$(3,5)$,$(3,6)$,$(6,2)$,$(7,3)$,$(7,4)$,$(7,5)$。选择在 $(7,3)$ 放白棋后变成如图所示效果(注意有竖向和斜向的共两枚黑棋变白)。注意 $(4,6)$ 的黑色棋子虽然被夹住,但不是被新放的棋子夹住,因此不变白。 输入一个 $8\times 8$ 的棋盘以及当前下一次操作的游戏者,处理3种指令: L指令打印所有合法操作,从左到右的顺序排列(无合法操作时输出 `No legal move`)。 `M r c` 指令放一枚棋子在 $(r,c)$。如果当前游戏者没有合法操作,则是先切换游戏者再操作。保证输入合法。输出操作后的黑白棋子总数。 `Q` 指令退出游戏,并打印当前棋盘(同输入格式)。 感谢@BFD_qt提供的翻译

题目描述

[problemUrl]: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=4&page=show_problem&problem=156 [PDF](https://uva.onlinejudge.org/external/2/p220.pdf) ![](https://cdn.luogu.com.cn/upload/vjudge_pic/UVA220/b5889bd30005c81049d37026006a6185dc84752c.png)

输入输出格式

输入格式


![](https://cdn.luogu.com.cn/upload/vjudge_pic/UVA220/d349f8cb6a5e4314ba810d0da8255e00540da760.png)

输出格式


![](https://cdn.luogu.com.cn/upload/vjudge_pic/UVA220/431f7b6cf63c09fd2ce5d3d30c367ddda8b525f6.png)

输入输出样例

输入样例 #1

2
--------
--------
--------
---WB---
---BW---
--------
--------
--------
W
L
M35
L
Q
WWWWB---
WWWB----
WWB-----
WB------
--------
--------
--------
--------
B
L
M25
L
Q

输出样例 #1

(3,5) (4,6) (5,3) (6,4)
Black - 1 White - 4
(3,4) (3,6) (5,6)
--------
--------
----W---
---WW---
---BW---
--------
--------
--------
No legal move.
Black - 3 White - 12
(3,5)
WWWWB---
WWWWW---
WWB-----
WB------
--------
--------
--------
--------