#include <cstdio>
using namespace std;
const int dr[] = { -1,-1,0,1,1, 1, 0,-1 };
const int dc[] = { 0, 1,1,1,0,-1,-1,-1 };
char col;
char board[15][15];
char cmd[5];
bool legal(int r, int c)
{
return r > 0 && r <= 8 && c > 0 && c <= 8;
}
char next()
{
return col == 'W' ? 'B' : 'W';//const char SUM = 'W' + 'B';
}
bool one_line(int r, int c, int dir)
{
int enemy_cnt = 0, my_cnt = 0;
while (legal(r + dr[dir], c + dc[dir]))
{
r += dr[dir], c += dc[dir];
char cur = board[r][c];
if (cur == '-')break;
if (cur == col) { my_cnt++;break; }
enemy_cnt++;//对方的棋子
}
if (my_cnt&&enemy_cnt)return true;
return false;
}
bool visit(int r, int c)
{
if (board[r][c] != '-')return false;
for (int i = 0;i < 8;i++)
if (one_line(r, c, i))return true;
return false;
}
void L_fun()
{
int num = 0;
for(int i=1;i<=8;i++)
for(int j=1;j<=8;j++)
if (visit(i, j))
{
if (num++)printf(" ");
printf("(%d,%d)", i, j);
}
if (num)
printf("
");
else printf("No legal move.
");
}
void move(int r,int c)
{
for (int i = 0;i < 8;i++)
if (one_line(r, c, i))
{
int nr = r, nc = c;//千万千万不要改变r,c的值,八个方向都要用到--bug了一天 热
while (legal(nr + dr[i], nc + dc[i]))
{
nr += dr[i], nc += dc[i];
if (board[nr][nc] == col)break;
board[nr][nc] = col;
}
}
board[r][c] = col;
col = next();//换子了兄弟
}
void WandB_cal()
{
int W_cnt = 0, B_cnt = 0;
for (int i = 1;i <= 8;i++)
for (int j = 1;j <= 8;j++)
if (board[i][j] == '-')continue;
else if (board[i][j] == 'W')W_cnt++;
else B_cnt++;
printf("Black - %2d White - %2d
", B_cnt, W_cnt);
}
void M_fun()
{
int r = cmd[1] - '0', c = cmd[2] - '0';
if (!visit(r, c))col = next();
move(r, c);
WandB_cal();
}
void print_board()
{
for (int i = 1;i <= 8;i++)
printf("%s", board[i] + 1);//自带换行fgets
}
int main()
{
int n;
scanf("%d%*c", &n);
while (n--)
{
for (int i = 1;i <= 8;i++)//从1开始!!!!!!
fgets(board[i] + 1, 12, stdin);
scanf("%s%*c", cmd);
col = cmd[0];
while (scanf("%s%*c", cmd) == 1)//加%*c免得坑了后面的fgets队友
{
char ch = cmd[0];
if (ch == 'Q') {
print_board();break;
}
//if (ch == 'W' || ch == 'B')col = ch;
else if (ch == 'L')L_fun();
else if (ch == 'M')M_fun();
}
//打印
if (n != 0)printf("
");
}
return 0;
}