Public Piece() As Integer '声明棋子变量数组,0表示位置空闲,1为玩家1,2为玩家2
Public Flag As Byte '行棋变量,表示该谁下棋,数值与棋子变量相同
Public X%, Y% '水平与垂直坐标
Public Function JudgeNum(ByRef Piece() As Integer, ByVal XFluctuate%, ByVal YFluctuate%, ByVal Flag As Byte) As Integer
'判断最多有多少棋子共线(连续),这是执行效率较高的一种算法
Dim i%, j%, Value%: i = X: j = Y: Value = 0
Do
If Piece(i, j) <> Piece(X, Y) Then Exit Do
i = i + XFluctuate: j = j + YFluctuate '分别在两个方向上加上改变量,下同
Value = Value + 1
Loop Until i < 1 Or i > 15 Or j < 1 Or j > 15
i = X: j = Y
Do
If Piece(i, j) <> Piece(X, Y) Then Exit Do
i = i - XFluctuate: j = j - YFluctuate
Value = Value + 1
Loop Until i < 1 Or i > 15 Or j < 1 Or j > 15
JudgeNum = Value - 1 '减去落子点本身所代表的重复计算过一次的1
End Function
这是我大一时所做五子棋时的胜利判断函数。
上述函数返回值为5时刻盘胜利。
计时器写计时语句就行了,实现的方法很多,举个例子可以设几个变量,用if语句判断就行了。
编程思路打开就好了,这要靠经验的。学习的过程就是打开思路的过程,需要的话可以再交流。