设计的是像QQ游戏里的一样,与对手下,想看与电脑下的可以闪了。。。。。
五子棋属于棋类游戏的一种,规则为五子连珠为赢,废话不说了。。
五子棋属于棋类游戏的一种,规则为五子连珠为赢,废话不说了。。
例:
02001220
12201002
22221020
11212211
02020222
(0:无子 1:黑子 2:白子)
主要算法如下:
首先绘制棋盘,标准五子棋好像是15*15,用Graphics类中的DrawLine加上loop进行控制,很简单。
用一个二唯数组(15*15)如上图,0:无子 1:黑子 2:白子...
接着是下子,点一下绘制一个点,但要判断鼠标点的点,用循环来控制在鼠标点击的最近的点下子就OK,这个很简单。。
最后也是难点,判断输赢,写8个方法,分别是:toLeft(),toRight(),toUp(),toDown(),toLeftUp(),toRightDown(),toRightUp(),toLeftDown()。相信很容易看明白,让棋盘上已经下子(即为!0的点),定义一个整形得变量(如:count),分别从8个方向进行搜索,相同的子count+1,碰到余自己不同的子就不用继续了,然后toLeft()+toRight()。。toUp()+toDown()。。toLeftUp()+toRightDown()。。。toRightUp()+toLeftDown()。。在看count=5就为赢,这些完了其他的就好说了,客户端用多线程完成。。
这只是自己的一个算法,很麻烦,有问题欢迎大家多多指正。^_^,有更好的方法希望大家分享。。
02001220
12201002
22221020
11212211
02020222
(0:无子 1:黑子 2:白子)
主要算法如下:
首先绘制棋盘,标准五子棋好像是15*15,用Graphics类中的DrawLine加上loop进行控制,很简单。
用一个二唯数组(15*15)如上图,0:无子 1:黑子 2:白子...
接着是下子,点一下绘制一个点,但要判断鼠标点的点,用循环来控制在鼠标点击的最近的点下子就OK,这个很简单。。
最后也是难点,判断输赢,写8个方法,分别是:toLeft(),toRight(),toUp(),toDown(),toLeftUp(),toRightDown(),toRightUp(),toLeftDown()。相信很容易看明白,让棋盘上已经下子(即为!0的点),定义一个整形得变量(如:count),分别从8个方向进行搜索,相同的子count+1,碰到余自己不同的子就不用继续了,然后toLeft()+toRight()。。toUp()+toDown()。。toLeftUp()+toRightDown()。。。toRightUp()+toLeftDown()。。在看count=5就为赢,这些完了其他的就好说了,客户端用多线程完成。。
这只是自己的一个算法,很麻烦,有问题欢迎大家多多指正。^_^,有更好的方法希望大家分享。。
下面的链接是核心代码...