目录

一,米字棋(移一格版)

1,规则

2,先手必胜策略

二,米字棋(任意移动版)

1,规则

2,策略

三,Three Man Morris


一,米字棋(移一格版)

1,规则

1,棋盘:棋盘是一个米字的形状,有9个地方是可以落子的,

棋盘由8条长为1的线段和8条长为根号2的线段组成,如下图。

javascript米字棋 米字棋下载_分类讨论

             

javascript米字棋 米字棋下载_ci_02

2,邻居:根据16条线段,点1的邻居是2、4、5,点2的邻居是1、3、5,

而点5的的邻居是1、2、3、4、6、7、8、9

3,棋子:蓝红双方各有3个棋子。

4,胜负:一旦有一方的3个棋子在一条直线上,游戏结束,该方胜利。

(这样的直线有8条,3横,3竖,2对角线)

5,开局:如上图,刚开始的时候棋盘上面没有棋子。

6,行棋:分落子阶段和移子阶段,如果落子阶段结束的时候游戏结束,那么就没有移子阶段。

7,落子:蓝红双方交替在双方均未落子的任何一个地方落子。

8,移子:可以把3个子中的任何一个子移动一步,即移到她的邻居的地方,除非围禁。

9,围禁:有的棋子被围住了,那么她是无法移动的,比如下图的4号。(编号在上图)

javascript米字棋 米字棋下载_javascript米字棋_03

10,移子规则的正确性:这是最后一条规则,准确的来说,不是规则,而是对移子规则的正确性的解释。

在移子规则里面,只有不围禁的棋子才能移动,现在来证明,至少有一个棋子是满足的,是可以移动的。

其实很简单,要想三个子都被围住,有2种情况。

第一种:

javascript米字棋 米字棋下载_javascript米字棋_04

这个图是真实的,落子阶段刚结束我就输了。

第二种:

javascript米字棋 米字棋下载_javascript米字棋_05

这个图是不真实的,是我把三行拼起来的。

这个情况是不可能出现的,因为在一方形成一行之后,游戏就结束,另外一方不可能也形成一行。

总之,只要游戏没结束,就至少有一个棋子是可以移动的。

这样,规则就说完了,规则很简单,哪怕是五六岁的孩子,只要玩几局这个游戏,也能自己理解规则。

事实上,我在很小的时候,应该是在五岁左右,下过很多局这个游戏。

在我们那里,这个游戏就叫米字棋。

2,先手必胜策略

今天重新思考这个游戏,居然意外的发现了先手有必胜策略,原本我一直以为双方都有不败策略的。

下面介绍先手的必胜策略:

首先,先手下5号,那么后手有2种情况,一种是下1号,一种是下2号,其他的位置都是对称的。

(以下将不再对对称的地方进行专门说明)

第一种情况:如果后手下1号

javascript米字棋 米字棋下载_javascript米字棋_06

那么先手下8号的话,后手就只能下2号

javascript米字棋 米字棋下载_算法_07

那么先手下3号的话,后手就只能下7号

javascript米字棋 米字棋下载_分类讨论_08

到了这个时候,先手的取胜方法就很明显了。

第二种情况:如果后手下2号

javascript米字棋 米字棋下载_ci_09

那么先手下7号的话,后手就只能下3号

javascript米字棋 米字棋下载_ci_10

这个时候先手只能下1号,然后后手又只能下4号

javascript米字棋 米字棋下载_分类讨论_11

到了这个时候,先手的取胜方法就很明显了。

这样,必胜策略就介绍完毕了。

必胜策略如此简单,我想着也是这个游戏玩的人不多的重要原因吧。

这么多年了,还是前不久才偶然发现应用商店里面有这个游戏的。

必胜策略简单,代表着这个游戏偏离平衡比较严重。

二,米字棋(任意移动版)

1,规则

任意移动版的米字棋,是移子时可以移到任意位置,其他规则不变。

2,策略

首先分类讨论,圆形是先手,三角形是后手。

按照先手下的位置分成3种情况,每种情况又可以细分。

(1)如果先手下 2 2,那么后手只能下 1 1

即 2 2 1 1

javascript米字棋 米字棋下载_javascript米字棋_12

如果双方有一定的思考能力,不乱下(下同),那么就只有如下4种情况:

(1.1)先手下 1 2 后手下 3 2

即 2 2 1 1 1 2 3 2

javascript米字棋 米字棋下载_算法_13

(1.1.1)先手下 2 1 后手下 2 3

即 2 2 1 1 1 2 3 2 2 1 2 3

javascript米字棋 米字棋下载_算法_14

 (1.1.2)先手下 2 3 后手下 2 1

即 2 2 1 1 1 2 3 2 2 3 2 1

javascript米字棋 米字棋下载_分类讨论_15

(1.1.3)先手下 3 1 后手下 1 3

即 2 2 1 1 1 2 3 2 3 1 1 3

javascript米字棋 米字棋下载_javascript米字棋_16

(1.1.4)先手下 3 3 后手

可以下 1 3也可以下别的地方,所以这种情况不需要讨论。

(1.2) 先手下 1 3 后手下 3 1,先手下 2 1 后手下 2 3

javascript米字棋 米字棋下载_应用商店_17

同(1.1.3)

(1.3)先手下 2 3 后手下 2 1,先手下 3 1 后手下 1 3

javascript米字棋 米字棋下载_javascript米字棋_18

(1.4)先手下 3 3 后手下 1 3,先手下 1 2 后手下 3 2

同(1.2)

(2)如果先手下 1 1

javascript米字棋 米字棋下载_应用商店_19

(2.1)先手下 1 1 后手下 2 2

即 1 1 2 2

javascript米字棋 米字棋下载_分类讨论_20

(2.1.1)先手下 1 2 后手下 1 3,先手下 3 1 后手下 2 1

即1 1 2 2 1 2 1 3 3 1 2 1

javascript米字棋 米字棋下载_ci_21

 (2.1.2)先手下 1 3 后手下 1 2,先手下 3 1

即1 1 2 2 1 3 1 2 3 2

然后又可以分2种情况

(2.1.3)先手下 2 3 

即 1 1 2 2 2 3

javascript米字棋 米字棋下载_算法_22

 (2.1.4)先手下 3 3 后手下 1 2 ,先手下 3 2 后手下 3 1

即 1 1 2 2 3 3 1 2 3 2 3 1

javascript米字棋 米字棋下载_算法_23

 (2.2)先手下 1 1 后手下 3 3

即1 1 3 3

javascript米字棋 米字棋下载_算法_24

先手下1 3就赢了

 (3)如果先手下 1 2

javascript米字棋 米字棋下载_分类讨论_25

(3.1)先手下 1 2 后手下 1 1

javascript米字棋 米字棋下载_ci_26

(3.2) 先手下 1 2 后手下 2 2

即 1 2 2 2

 

javascript米字棋 米字棋下载_javascript米字棋_27

(3.2.1)先手下1 1

同(2.1.1)

(3.2.2)先手下2 1

即 1 2 2 2 2 1

javascript米字棋 米字棋下载_算法_28

(3.2.3)先手下3 1

即 1 2 2 2 3 1

javascript米字棋 米字棋下载_算法_29

(3.3)先手下 1 2 后手下 3 2

javascript米字棋 米字棋下载_ci_30

 综上,一共有如下13种情况需要继续讨论:

(1.1.1)(1.1.2)(1.1.3)(1.2)(1.3)(2.1.1)(2.1.2)(2.1.3)(2.1.4)(3.1)(3.2.2)(3.2.3)(3.3)

我感觉,先后手可能都有必不败策略,即最后会是和局一直循环。

PS:先手下1 1 时,后手只能下2 2,否则后手就输了,这个结论和圈叉棋一样。

三,Three Man Morris

在应用商店里面有个下棋游戏,叫做Three Man Morris

这个链接里面写的游戏规则:

Each player has three pieces. The winner is the first player to align their three pieces on a line drawn on the board. The board is empty to begin the game, and players take turns placing their pieces on empty intersections. Once all pieces are placed , play proceeds with each player moving one of their pieces per turn. A piece may move to any vacant point on the board, not just an adjacent one.

其实就是米字棋,最后一句话说明它是任意移动版,但是这个游戏做的其实是移一格版,最后一句应该改成A piece may move to a adjacent vacant point on the board.