#nine #morris #mens

nmm_lib

九子棋的实现

3个不稳定版本

使用旧的Rust 2015

0.2.0 2020年6月25日
0.1.1 2020年3月16日
0.1.0 2018年6月5日

790 in 算法

Download history 1/week @ 2024-02-19 36/week @ 2024-02-26 56/week @ 2024-04-01

56 每月下载次数

MIT 协议

28KB
724

九子棋规则

7 o-----------o-----------o
  |           |           |
6 |   o-------o-------o   |
  |   |       |       |   |
5 |   |   o---o---o   |   |
  |   |   |       |   |   |
4 o---o---o       o---o---o
  |   |   |       |   |   |
3 |   |   o---o---o   |   |
  |   |       |       |   |
2 |   o-------o-------o   |
  |           |           |
1 o-----------o-----------o
  a   b   c   d   e   f   g

棋盘由二十四个交点或点的网格组成。每位玩家有九个棋子,或称为“人”,通常是黑白两色。玩家试图形成“磨坊”——三颗自己的棋子横向或纵向排列。创建磨坊允许玩家从棋盘上移除对手的一个棋子。属于磨坊的棋子除非没有其他棋子可以移除,否则不能被移除。玩家通过减少对手到两个棋子(他不能再形成磨坊并且无法获胜),或者让他没有合法的走法来获胜。

游戏分为三个阶段

在空点上放置棋子 将棋子移动到相邻的点 当玩家减少到三个棋子时,将棋子移动到任何空点上

第一阶段:放置棋子

九子棋从一个空棋盘开始。游戏从一个空棋盘开始。玩家决定谁先走,然后轮流在每个空点上放置一个棋子。如果玩家能够将他的三个棋子放在连续的点上,形成一条直线,垂直或水平,他就形成了磨坊,可以从棋盘上和游戏中移除对手的一个棋子,但有一个前提,即对手的磨坊中的棋子只有在没有其他棋子可用时才能移除。所有棋子都放置完毕后,第二阶段开始。

第二阶段:移动棋子

玩家继续轮流移动,这次是将一个棋子移动到相邻的点。棋子不能“跳过”另一个棋子。玩家继续尝试形成磨坊并移除对手的棋子,就像第一阶段一样。玩家可以通过将他的一个棋子从一个现有的磨坊中移出,然后将其移回以形成第二个相同的磨坊(或任何次数),每次移除他的一个对手的棋子来“打破”一个磨坊。移除对手棋子的行为有时被称为“锤击”对手。当一个玩家减少到三个棋子时,第三阶段开始。

第三阶段:“飞行”

当一个玩家减少到三个棋子时,不再限制该玩家只能移动到相邻的点:玩家的棋子可以从任何点飞到任何空点。

依赖关系

~360–760KB
~17K SLoC