我无法弄清楚我犯了什么错误。制作风险式论坛游戏的脚本,一直无法正常工作。
intHighNumber = 10000
intLowNumber = 1
intNumbers = 1
For i = 1 To intNumbers
Randomize
intNumber = Int((intHighNumber - intLowNumber + 1) * Rnd + intLowNumber)
strnum = strnum& " " & CStr(intNumber)
Next
If strnum=0000 Or 1111 Or 2222 Or 3333 Or 4444 Or 5555 Or 6666 Or 7777 Or 8888 Or 9999 Or 1234 Or 2345 Or 3456 Or 4567 Or 5678 Or 6789 Then
x = MsgBox(100)
ElseIf strnum=123 Or 234 Or 345 Or 456 Or 567 Or 678 Or 789 Or 1123 Or 1345 Or 1456 Or 1567 Or 1678 Or 1789 Or 2123 Or 2234 Or 2456 Or 2567 Or 2678 Or 2789 Or 3123 Or 3234 Or 3345 Or 3567 Or 3678 Or 3789 Or 4123 Or 4234 Or 4345 Or 4456 Or 4678 Or 4789 Or 5123 Or 5234 Or 5345 Or 5456 Or 5567 Or 5789 Or 6123 Or 6234 Or 6345 Or 6456 Or 6567 Or 6678 Or 7123 Or 7234 Or 7345 Or 7456 Or 7567 Or 7678 Or 7789 Or 8123 Or 8234 Or 8345 Or 8456 Or 8567 Or 8678 Or 8789 Or 9123 Or 9234 Or 9345 Or 9456 Or 9567 Or 9678 Or 9789 Then
x = MsgBox(50)
Else
x = MsgBox(3)
End If
答案 0 :(得分:1)
你的If
很糟糕;看到我对你的同一个question的答案。另外:连接循环中的数字并在循环之后将单个数字与字符串进行比较是无意义的。
答案 1 :(得分:0)
假设您已声明(暗淡)变量,我仍然会看到一些问题:
strnum&安培;应该是strnum&
但主要是,我没有看到你的“if”语句如何工作,因为你将字符串变量与整数值列表进行比较,而字符串变量有多个(根据玩家数量)数字块。
我无法重现“预期的”错误,但我相信您需要重写“If”语句。
答案 2 :(得分:0)
if语句中的表达式可能不是您想要的。它应该像
If (strnum=0) Or (strnum=1111) Or (strnum=2222) ... Then
你应该知道switch语句:
Select Case strOption
Case 0, 1111, 2222, 3333, 4444, 5555, 6666, 7777, 8888, 9999, 1234, 2345, 3456, 4567, 5678, 6789
MsgBox(100)
Case 123, 234, 345, 456, 567, 678, 789, 1123, 1345, 1456, 1567, 1678, 1789, 2123, 2234, 2456, 2567, 2678, 2789, 3123, 3234, 3345, 3567, 3678, 3789, 4123, 4234, 4345, 4456, 4678, 4789, 5123, 5234, 5345, 5456, 5567, 5789, 6123, 6234, 6345, 6456, 6567, 6678, 7123, 7234, 7345, 7456, 7567, 7678, 7789, 8123, 8234, 8345, 8456, 8567, 8678, 8789, 9123, 9234, 9345, 9456, 9567, 9678, 9789
MsgBox(50)
Case Else
MsgBox(3)
End Select
但这仍然非常丑陋且无法维持。
这不是您的问题的一部分,但您可能想要查看更多现代语言,例如vb.net(因为您正在使用vb)或Python。 Here are some reasons为什么vbscript根本不是很有趣,因为你好像这样做是为了好玩。