黑白棋算法分析

╮(╯▽╰)╭

从小不怎么喜欢五子棋,下的不好~也没怎么研究过,我的水平也就是想人机对战算法那样见到三个的就堵一下的那种~

但是我很喜欢玩黑白棋~简单嘛O(∩_∩)O哈!

做完五子棋以后,我想把我喜欢玩的黑白棋也做一个出来,下面是我想的黑白棋游戏的算法分析:

界面和五子棋一样
但是最开始在棋盘中央有四个棋子(两黑两白,交错)

 

在每下一个棋子以后进行判断:
分别从所下棋子位置向左,向右,向上,向下,左上,右上,左下,右下寻找相同棋子(黑子值为1,白子值为-1)直到没有子(值为0)或者找到相同颜色的子

如果找到相同颜色的子,那么中间的棋子全变为相同颜色(改变值,再将棋子重绘)

 

输赢条件:棋盘全部下满,哪个颜色的棋子多,哪个赢

 

不能下子情况:
下子前判断是否可以下子:若不满足下子条件,提示不可以下子,然后让对手下
若要下的位置八个方向上没有相同颜色的子或者与相同颜色的子相邻

 

下子判断方法:
取得将要放棋子的位置
向右检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色
否则返回NULL
向左检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色
否则返回NULL
向上检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色
否则返回NULL
向下检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色
否则返回NULL
向右上检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色
否则返回NULL
向右下检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色
否则返回NULL
向左上检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色
否则返回NULL
向左下检测是否有相同颜色棋子,如果有且不相邻,改变中间棋子颜色
否则返回NULL
如果返回值都为NULL 将数据初始化,并提示不能放子。

 

先把上面的基本功能写出来~然后再搞别的吧~哈~

你可能感兴趣的:(算法)