用VB做井字过三关中的一个问题

来源:百度知道 编辑:UC知道 时间:2024/06/02 13:46:55
怎么能使一方胜出时就停止操作?
我作的井字过三关有一方胜出后还可以继续点击command,结果也会改变.我用了If Command1(0).Caption = Command1(1).Caption And _
Command1(1).Caption = Command1(2).Caption And _
(Command1(0).Caption <> "" And Command1(1).Caption <> "" And Command1(2).Caption <> "") Then
Label1.Caption = "胜者为" + Command1(Index).Caption And _
Command1(Index).Enabled = False 可是不对.能帮我想想,给出代码吗?
我当然知道有八组情况都可以胜利,这里只写出一组来让大家修改

按你这样写的话,你有想过有多少组可以进行胜利呢??
横的,竖的,斜的,而你这这样的话只有一种情况.?
而且你的代码有错.
【设计思路】

首先,我们要知道,“井字棋”游戏是一款典型的棋类游戏,游戏时一方式是电脑,另一方是玩家。所以,这类游戏在开始时有两种方式:一种是玩家先走;另一种是电脑先走。这是我们要考虑的第一个问题。

其次,由于与玩家对战的是计算机,所以我们要编写一个过程(出棋),它可以使程序模拟人的思维与人下棋(其实就是“人工智能”的体现),这个Chuqi过程也是本游戏软件的关键。此外,我们还要编写两个过程(连线和输赢),连线过程用来时刻判断棋盘中是否有三个棋子连成一线;输赢过程用来判断如果有三个棋子连成一线,是哪一方连成一线的,即判断哪一方获胜。
以上几个问题就是该“井字棋”游戏实现的关键思路

定义棋盘格子数据结构
Private Type Wells
Wells_X As Long
Wells_Y As Long
Wells_Value As Integer
End Type

定义棋盘格子的实例数组
Private usrWells(1 To 9) As Wells

定义响应点击操作的逻辑棋盘格子代号数组
Private intWellsIndex(1 To 3, 1 To 3) As Integer

定义玩家的玩过的盘数和积分
Private lngPlayerTurn As Integer, lngPlayerScore As Long

定义游戏开始标志
Private blnGameStart As Boolean

定义玩家胜利和失败标志
Private blnPlayerWin As Boolean, blnPlayerLost As Boolean

定义枚举常量标识玩家类型
Private Enum Player
MAN = 0