用VB编程如何编写游戏《猴子选大王》?
'form中加一个文本框,一个按钮 Dim a() As String '猴子名称的数组,分别用A,B,C....代替
Dim s As String '通报谁进行角逐的字符串
Dim houzi As Double '抢王的猴子数
Private Sub Command1_Click()
Dim i, ttag As Integer 'i是第几只猴子,ttag是报数的旗标
If Not IsNumeric(Text1.Text) Then
MsgBox "请输入猴子的个数(正整数)"
Exit Sub
Else
houzi = Val(Text1.Text) - 1
If houzi = 0 Then
MsgBox "一只猴子怎么抢?"
Exit Sub
End If
If houzi <= 0 Or Int(houzi) <> houzi Then
MsgBox "请输入猴子的个数(正整数)"
Exit Sub
End If
End If
ReDim a(houzi)
For i = 0 To houzi
a(i) = Chr(i + 65)
s = s & a(i) & Space(2)
Next
MsgBox s & "进行角逐!"
i = 0 '从第一只猴子开始数
ttag = 1 '从1开始数
ub = UBound(a) '数组长度
Do '不断循环
If ub <= 0 Then '如果只剩一只猴子,那么...
MsgBox "The King is : " & a(0) '通报谁是王
'----------------------------------
s = ""
Erase a '初始数据
houzi = 0
Exit Sub
'----------------------------------
End If
If ttag = 3 Then
If i < ub Then '如果报数的猴子不是最后一只
For j = i To ub - 1
a(j) = a(j + 1) '把这只干掉,把后面的推上来
Next
End If
ub = ub - 1 '猴子,又少了一个
ReDim Preserve a(ub) '重定义数组
ttag = 0 '重新开始数1,2,3 0是因为配合后面的+1
i = i - 1 '本来的a(4)变成了a(3),所以还是从a(3)数,只是a(3)的位置是另一个猴子了, 配合后面的+1
End If
If i = ub Then
i = -1 '如果报到3的猴子是最后一只,那么重新从第一只开始数,配合后面+1
End If
i = i + 1 '下一只猴子准备
ttag = ttag + 1 '上一个数1,那么下一个呢?
Loop
End Sub