UNIX编程的艺术

围棋自动提子的算法

不败的石头 posted @ 2008-04-20 10:20PM in 编程
Linux 的 Out-of-Memory (OOM) Killer

可以仿照迷宫的算法来编制,假设是白棋提黑子:
1、以白棋当前下的点为例,遍历此白子的四个邻接子(上下左右)

2、如果此邻接子为黑子则分别向它的四个临接点做遍历;如果为白子则返回第1步取下一个邻接子
3、如果遇到白棋,则此个方向的遍历结束,此方向黑棋无气;
4、如果遇到棋盘边界,则此个方向的遍历结束,此方向黑棋无气;
5、如果遇到空(临界点处无棋子),则整个遍历结束,黑棋还有气;
6、如果遇到黑棋,则又向它的三个临接点遍历(去除掉来路的那个临接点),继续执行3-6部,直到遇到结束条件返回;

7、如果4个邻接子都遍历完则结束否则返回第1步,去下一个邻接子。

在整个遍历过程中要记住所有黑棋的位置,在整个遍历结束后,如果不是因为第四种情况结束的,则所有的黑棋将被删除。

Comments Feed


* Login
*