循环棋盘上每个下了子的點,判断它横竖斜线方向是否有5个子挨着
没用过JAVA,说个思路希望对你有帮助
准备两个变量 一个 黑赢变量 一个白赢变量
为棋盘上每个点准备┅个变量 叫点变量
该变量空为0 下白棋加1 下黑棋加2
看看拥有超过4个点的线(包括斜线)有多少个 作为外循环次数
要6次重置起始点的位置,和內循环次数和内循环里面的起始点内存地址
以及距离一下个点的内存地址的距离,每循环一次是加还是减也要知道
只说说思路吧要想給你有效地代码所耗费的时间太多。
肯定用数组二维数组,要从横竖斜三个方向判断
并假定,数组中的某个元素值为0表示没有棋子1表示有黑子,2表示有白子
调用result()返回0表示没有人赢,返回1表示黑方赢2表示白方赢
我是学Pascal的,但是大体思想可以给你说说
每次落字判断這个子颜色并向8个方向延伸,如果延伸到5个则赢如果眼神到5个之前就遇到不同颜色的子则直接退出这个方向的延伸。
时间复杂度最多O(40)
用┅位数组模拟二维数组存储各点的位置,然后直接写个算法判断遍历后的数组是否符合输赢条件