Honeycomb GO
想到一个好玩的游戏, 是围棋的变种.
棋盘是蜂窝状的(六边形表格).
规律:
4x, 4x+3 为 n + 1 个
4x+1, 4x+2 为 n 个
表格矩阵生成算法:
lock_line_number = 3
def make_table():
table = []
for i in range(block_line_number):
for ii in range(4):
if ii in (0, 3):
table.append([0 for _ in range(block_line_number+1)])
else:
table.append([0 for _ in range(block_line_number)])
return table
def format_table(table):
for line in table:
if len(line) % 2 != 0:
print ' ',
for item in line:
print item, ' ',
print ''
format_table(make_table())
运行结果:
0 0 0 0
0 0 0
0 0 0
0 0 0 0
0 0 0 0
0 0 0
0 0 0
0 0 0 0
0 0 0 0
0 0 0
0 0 0
0 0 0 0
-
规则: 对于下面两种的case:
-
case 1:
c c 0 b 0 c a c b b c c
-
case 2:
c c b b c a c 0 b 0 c c
-
落子在 a 处时, 若 b 与 a 不是同一阵营, 且 b 后面的两个 c 与 a 是同一阵营时, 交换 a b 位置. 若存在多个 b 可以交换, 则随机选定一对 a b 交换.
算法上, 回溯是比较符合直觉的算法, 使用广度优先算法, 算两层就能知道结果.
-
规则: 当一个六边形被一方占据了超过4颗棋子, 则这块六边形算作被该方占据. 33对分, 该六边形各算0.5. 边角只有填满才能占据.
-
规则: 除非一方认输, 在所有六边形被占满时比赛结束, 占据六边形多的一方获胜.