OOXX

OOXX 技巧

OOXX是款单人版的趣味智力谜题,它是基于我们小时候玩过的非常流行的井字游戏研发的。每道谜题都由一个网格组成,其间在不同的位置包含了一些X和O符号。游戏的目的是将剩余的空格填满X或O,使得每一行以及每一列没有多于俩个连续的X或O,每一行以及每一列的X的数量与O的数量相同,并且所有的行和列都彼此唯一。下面的例子介绍了一道6x6的OOXX谜题,也就是说它有6行6列。现在我们必须根据上述规则,将该谜题中其余的空格用X和O填满...但是如何呢?

Tic-Tac-Logic puzzle Tic-Tac-Logic solution

基本技巧

解决OOXX总是由一些比较简单的步骤开始——基于第一条规则及每一行每一列没有多于俩个连续的X或O。接下来的一些步骤,我们可以用游戏的第二条规则及每一行每一列必须包含相同数量的X和O,和游戏的第三条规则及没有俩个相同的行或列解出。下面是一些应用基本技巧的例子:

1. 避免三连续(一)

大多数的OOXX在开始时都包含了一些已经填充好了的俩个连续的X或O及XX或OO。根据游戏规则,不能有多于俩个的连续的X或O出现在任意一行或列中,我们可以迅速地将这对儿XX或OO的周围用与其相反的符号阻断起来,一边儿一个,如下图所示。

Avoiding triples 1 (A) Avoiding triples 1 (B)

2. 避免三连续(二)

另外一个非常常见的情况就是X_X和O_O,及俩个相同符号间有一个空格隔开。同样地,为了必须三个连续的相同符号出现,我们必须将X_X和O_O中间的空格填上与其相反的符号及XOX和OXO,如下图所示。

Avoiding triples 2 (A) Avoiding triples 2 (B)

3. 避免三连续(三)

有一些时候,符号X或O不能被填到某一些方格内,这是为了避免在随后几步中三个连续相同符号的出现。让我们观察一下谜题中第六行。如果我们将X填到左侧的方格中,那么我们根据规则——每一行或列中的X和O数量相同——即可判定出剩下的俩个空方格必须填上O。然后,这会造成一个连续的OOO出现,因此第六行中的左侧方格必须填上O。

Avoiding triples 3 (A) Avoiding triples 3 (B)

4. 完成行列

根据游戏的第二条规则,每一行或者每一列中X和O的数量相同。这也就意味着例如8x8的谜题中,每一行或者每一列的X和O都是4个。让我们观察一下下面谜题中被突出显示的行,我们找到了4个X和3个O,那么剩下的空方格必须是O。

Completing a row or a column (A) Completing a row or a column (B)

5. 避免重复的行列

OOXX的第三条规则告诉我们,每行每列都相对独立,没有俩个顺序一致的重复行列出现。如下图所示,我们观察一下被突出显示的俩列,一个已经完成而另外一个还有俩个空格。由于所剩的俩个空格必须填充一个X和一个O,我们为了避免重复的列出现(如第二幅图所示),这里只有一种填充方式。

Avoiding row or column duplication (A) Avoiding row or column duplication (B)

高级技巧

我们上面所述的技巧不足以解决困难的OOXX。因此,您需要一些高级的技巧去解决那些困难并充满趣味的谜题。高级技巧是基于假设法和冲突法,也就是说某一个空白格可以假设被填上X或O,然后你可以通过逻辑在接下来的几步判定这个填法是错的或对的。下面是一些应用高级技巧解决谜题的案例。当你接触更多的OOXX以后,你可以自己总结出自己的技巧。

1. 高级技巧(一)

让我们观察一下下面被突出显示的列。如果我们将O填到顶端第二个方格,意味着我们已经填上了此列中5个O的其中4个。然而,我们将O放置在任意一个剩余的空格中都会造成一个连续的XXX出现。这也意味着顶端第二个方格必须填上X,如下图右侧所示。

Advanced technique 1 (A) Advanced technique 1 (B)

2. 高级技巧(二)

有些时候,应用高级技巧也需要避免重复的行列出现。如下图所示,被突出显示的俩列中,其中一列已经完成而另外一列仍有3个空方格。让我们看下如果我们将O填到底端第二个空格中会有什么事情发生。由于此列中已经有了4个O,根据游戏规则中同一行列中拥有相同数量的X和O,填上第5个O也就意味着剩下俩个空方格必须是X。然而,这会造成被突出显示的俩列相同,这违背了游戏规则。因此,底端第二个空格必须填上X。

Advanced technique 2 (A) Advanced technique 2 (B)