实现1个五子棋算法引擎。
五子棋分为黑方和白方。
正常情况下,黑方和白方交替落子。引擎自动判断胜负。
为了处理的简便,引擎支持黑方和白方不是交替落子的情况。比如,黑方落3子,白方落2子。黑方再落1子,白方落3子 等。
程序输出有3种可能的结果。black win,white win,not end。
棋盘采用标准棋盘 19行,19列。编号各为1~19。
黑棋用1号表示,白棋用2号表示。落子过程表示为:角色 棋盘坐标。
比如下面这种输入
1 1 1
1 1 2
1 1 3
1 1 4
1 1 5
输出
black win
解释
黑方从第1行1列到第1行5列 连续落子5颗。
黑方胜。程序退出
五子棋有如下的禁手规则。如果触犯了禁手,则系统判负。
1. 只有黑方有禁手,白方自由
2. 走了禁手,自动输
3. 四四禁手:2个或者以上的冲四或者活四
4. 三三禁手:2个或者以上的活三形成的禁手
5. 活三:再下一子能形成活四的棋形
6. 活四:四子相连,2端都是空格
7. 冲四:五个连续的位置中,有4个黑子,1个空格,
空格可以在任意的位置
8. 特殊的四四禁手,在1条线上形成2个冲四。
9. 刚好五联子,优先于任何禁手,禁手失效。
禁手的详细图解请查询互联网