如何用vb做简单联合人对战五子棋

2025-03-05 01:57:03
推荐回答(1个)
回答1:

  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语句判断就行了。
  编程思路打开就好了,这要靠经验的。学习的过程就是打开思路的过程,需要的话可以再交流。