介绍
九个人的莫里斯(Mills)(也称为米尔斯)是一款由两名玩家组成的棋盘游戏,在以下棋盘上进行播放(图片摘自链接的Wikipedia页):
每个玩家有9个人,黑白相间。具体规则对于此挑战并不重要,但如果您有兴趣,请查看Wikipedia页面。
挑战
给定一个网格作为输入,它表示在一定boardstate,输出的总研磨计数m
用0<=m<=8
。
当三个相同颜色的人在相连点的直排中时,他们就形成了磨坊。 b2
到f2
不是因为磨的人具有不同的颜色。另外d2
,d5
由于必须连接三个点,因此也不会形成磨机。
上图中的木板包含两个磨房。一个从f2
到f6
一个从e3
到e5
。
输入项
该板表示为具有24个点的2D网格,如上面的示例图像所示,这些点已连接。该示例a-g
在列中使用字母,1-7
在行中使用数字,但是您可以选择任何合理的输入格式,只要它将24个唯一坐标映射到以下状态之一即可:
- 空的
- 黑色拍摄
- 采取白色
具体的表达方式取决于您,而颜色并不限于“ b”或“ w”。
除此之外,您的输入内容可能不包含任何其他信息。
附加条款
- 您不必通过任何值来映射点。如果要将输入作为2D数组,也可以。但是请记住,并不是所有的点都被使用,并且您必须考虑它们之间的连接。
- 输入可能为空,在这种情况下,您必须输出零(空板->无磨)。
- 由于每个玩家有9个人,因此输入的总得分不会超过18。
- 您可以在输入中省去空点,因此只取取输入点。
- 可以以任何方式订购输入。您不能依赖特定的顺序。
- 您可以假设输入将始终有效。这意味着每种颜色的人不会超过9个人,并且每个点都是唯一的。
规则
测试用例
这里的输入格式是一个元组列表,其中的坐标如上例中所示为第一个元素,点的状态为第二个元素。白色标记的点标记为“ w”,黑色标记的点标记为“ b”。所有其他点均被忽略,并且为空。
[(“ a4”,“ w”),(“ b2”,“ b”),(“ b4”,“ b”),(“ c4”,“ b”),(“ d1”,“ w”) ,(“ d2”,“ w”),(“ e3”,“ w”),(“ e4”,“ w”),(“ e5”,“ w”),(“ f2”,“ b”) ,(“ f4”,“ b”),(“ f6”,“ b”),(“ g4”,“ w”)]-> 2 [(“ a1”,“ b”),(“ a4”,“ b”),(“ a7”,“ b”),(“ b4”,“ b”),(“ c4”,“ b”) ,(“ d3”,“ w”),(“ d2”,“ w”),(“ d1”,“ w”)]-> 3 []-> 0 [(“ b4”,“ b”),(“ a4”,b“),(” c4“,w”)]-> 0 [(“ b4”,“ b”),(“ a4”,b“),(” c4“,b”)]-> 1 [(“ a1”,“ b”),(“ a4”,“ b”),(“ a7”,“ b”),(“ b2”,“ b”),(“ b4”,“ b”) ,(“ b6”,“ b”),(“ c3”,“ b”),(“ c4”,“ b”),(“ c5”,“ b”),(“ e3”,“ w”) ,(“ e4”,“ w”),(“ e5”,“ w”),(“ f2”,“ w”),(“ f4”,“ w”),(“ f6”,“ w”) ,(“ g1”,“ w”),(“ g4”,“ w”),(“ g7”,“ w”)]-> 8
编码愉快!
d3
和d5
没有连接。规则说: Three men of the same color form a mill when they are in a straight row of connected points.
。我在本节中添加了一些示例,以使其更加清楚,感谢您的评论!