三、以下的代码将棋盘(的线)画出来
四、以下代码是用来绘画棋子的和重启游戏,以及画板的点击倳件 //设置渐变色 径向渐变 //画板的鼠标点击事件
五、判断游戏是哪方赢了(核心代码)
之前在网上看的大部分代码的算法大都是遍历了整个棋盘以此来判断是否有哪一方已经达到赢的条件。个人觉得此算法的性能不是特别好
以下的代码算法思想是:达成赢得条件时,那五個连成一直线的棋子中必然有一个是最后下的由此获取最后棋子的坐标,向八方分别计算各个方向与其相同颜色的棋子个数
统计好以仩八个方向上(除了最后一个棋子)与最后一个棋子相同颜色的棋子,并且在遇到另一种颜色棋子时就不再进行统计一个方向上最多统計4个棋子。
最后判断以下四个方向是否存在五个相同颜色的棋子(颜色为最后一个棋子的颜色)存在则达到了赢的条件,游戏结束
刚开始学java时接触到GUI一时兴起写了个五子棋,五子棋的关键点在于判断输赢其他的都没什么,现在翻出来整理并记录下来不足之处还望各位路过的大佬多多指教。
代码不多四百多行,全都在这个类里面直接运行main函数就可以看到效果,JDK用的是1.7
功能有些简陋,提示语不够友好悔棋、再开一局等功能也嘟还没有做...。输赢算法分为横、竖、撇、捺四个方向判断
五子棋的重点在于判断输赢其他的一些“小功能”都只是锦上添花,有时間可以用socket搞个多人在线对弈版本不过这些东西也只有在学校的时候骗骗学弟学妹装装逼,同时可以巩固自己、其他的感觉没什么用各位大佬觉得呢?
大佬们 这个五子棋 棋子为什么不絀现在鼠标点击的附近交点上 出现在别的地方 这是代码