编程题:h0108. 三字棋

三字棋是一种在3x3格子上玩的儿童游戏。一名玩家X首先将X放置在一个未占据的网格位置。然后另一个玩家O在一个空的格子位置放置一个O。游戏在X和O之间交替,直到网格被填满,或者一个玩家的符号占据网格中的整条线(垂直、水平或对角线)。
我们将用九个点来表示最初的空的三字棋网格。当X或O出场时,我们在适当的位置填入X或O。下面的例子演示了从游戏开始到结束的每个网格配置,其中X获胜。
... X.. X.O X.O X.O X.O X.O X.O
... ... ... ... .O. .O. OO. OO.
... ... ... ..X ..X X.X X.X XXX
你的工作是阅读网格,并确定它是否可能是一个有效的三字棋游戏的一部分。也就是说,是否存在一系列玩法能够在游戏开始和结束之间产生这种网格?
### 输入格式:
输入的第一行包含N,测试用例的数量。后面是4N-1行,指定N个网格配置,用空行分隔。
### 输出格式:
对于每一种情况,打印“yes”或“no”单独一行,表明是否配置可以是一个三字棋游戏的一部分。
### 输入样例:
in
2
X.O
OO.
XXX
O.X
XX.
OOO
### 输出样例:
out
yes
no
答案:若无答案欢迎评论