这个是小的编写的一个猜拳的小游戏,当中存在一些问题,大家帮忙看下。。
Option ExplicitPrivate Sub Command1_Click()
Dim r, k, s, l
Dim i As Integer, a As Integer, b As Integer, Computer As Integer
Dim UserSel As String
For i = 0 To 2
If Option1(i).Value Then
l = MsgBox("您的选择为" & Option1(i).Caption & " 是否继续?", vbQuestion + vbYesNo, "小游戏")
UserSel = Option1(i).Caption
Exit For
End If
Next
If l = vbNo Then Exit Sub
a = CoverUser(UserSel)
Randomize
b = Int(Rnd * 3 + 1)
b = CInt(b)
k = CoverComputer(b)
s = MsgBox("电脑准备和您较量,它出的是" & k, vbInformation, "小游戏")
Call Judger(a, b)End SubPrivate Sub Command2_Click()
Unload Me
End SubPrivate Sub Form_Load()
Option1(0).Value = True
End Sub
Private Function CoverUser(ByVal Title As String) As Integer
Select Case Title
Case "剪刀"
CoverUser = "1"
Case "石头"
CoverUser = "2"
Case "布"
CoverUser = "3"
End Select
End FunctionPrivate Function CoverComputer(ByVal ItrCom As Integer) As String
Select Case ItrCom
Case 1
CoverComputer = "剪刀"
Case 2
CoverComputer = "石头"
Case 3
CoverComputer = "布"
End Select
End Function
Private Function Judger(ByVal a As Integer, ByVal b As Integer) As String
If a > b Then
MsgBox "Celebrate, You Win!"
ElseIf a = b Then
MsgBox "Oh, You Draw!"
Else
MsgBox "Sorry,You Lost!"
End If
End Function以上程序执行后,只能识别出输的情况和平手的情况。。胜利的情况不能识别。。
请问上面的程序BUG在哪里?实在是找不出来错误了呀。。
Option ExplicitPrivate Sub Command1_Click()
Dim r, k, s, l
Dim i As Integer, a As Integer, b As Integer, Computer As Integer
Dim UserSel As String
For i = 0 To 2
If Option1(i).Value Then
l = MsgBox("您的选择为" & Option1(i).Caption & " 是否继续?", vbQuestion + vbYesNo, "小游戏")
UserSel = Option1(i).Caption
Exit For
End If
Next
If l = vbNo Then Exit Sub
a = CoverUser(UserSel)
Randomize
b = Int(Rnd * 3 + 1)
b = CInt(b)
k = CoverComputer(b)
s = MsgBox("电脑准备和您较量,它出的是" & k, vbInformation, "小游戏")
Call Judger(a, b)End SubPrivate Sub Command2_Click()
Unload Me
End SubPrivate Sub Form_Load()
Option1(0).Value = True
End Sub
Private Function CoverUser(ByVal Title As String) As Integer
Select Case Title
Case "剪刀"
CoverUser = "1"
Case "石头"
CoverUser = "2"
Case "布"
CoverUser = "3"
End Select
End FunctionPrivate Function CoverComputer(ByVal ItrCom As Integer) As String
Select Case ItrCom
Case 1
CoverComputer = "剪刀"
Case 2
CoverComputer = "石头"
Case 3
CoverComputer = "布"
End Select
End Function
Private Function Judger(ByVal a As Integer, ByVal b As Integer) As String
If a > b Then
MsgBox "Celebrate, You Win!"
ElseIf a = b Then
MsgBox "Oh, You Draw!"
Else
MsgBox "Sorry,You Lost!"
End If
End Function以上程序执行后,只能识别出输的情况和平手的情况。。胜利的情况不能识别。。
请问上面的程序BUG在哪里?实在是找不出来错误了呀。。
If a > b Then
MsgBox "Celebrate, You Win!"
ElseIf a = b Then
MsgBox "Oh, You Draw!"
Else
MsgBox "Sorry,You Lost!"
End If
改为
If a = IIf(b >= 3, 1, b + 1) Then
MsgBox "Celebrate, You Win!"
ElseIf a = b Then
MsgBox "Oh, You Draw!"
Else
MsgBox "Sorry,You Lost!"
End If