我确信有一种我不知道的聪明技术可以帮助解决这个问题,但我很难找到任何接近的例子,所以我希望有人可以帮我指出正确的方向。
我有一些全局变量,我想在子程序中编辑它们,具体取决于传递给它的变量。
基本上,这是一个想法(虽然在实践中规模更大):
<Script Language="VBScript">
game1won=0
game1full=0
game2won=0
game2full=0
Sub Game11
playerMove 1,1
End Sub
Sub Game12
playerMove 1,2
End Sub
Sub Game21
playerMove 2,1
End Sub
Sub Game22
playerMove 2,2
End Sub
Sub playerMove(firstNumber, secondNumber)
If [code to check if game is won] Then
game[firstNumber]won=1
End If
End Sub
</Script>
<Body>
<input id=runButton type="button" value="1.1" onClick="Game11><br>
<input id=runButton type="button" value="1.2" onClick="Game12><br>
<input id=runButton type="button" value="2.1" onClick="Game21><br>
<input id=runButton type="button" value="2.2" onClick="Game22><br>
</Body>
正如您所看到的,我想编辑包含传递给子playerMove的第一个数字的变量,但无论我在尝试什么,我都会继续创建新变量,而不是编辑现有的全局变量。
有没有一种聪明的方法可以在没有IF / CASE语句的情况下编辑它,这可以帮到这里吗?
谢谢你们!
答案 0 :(得分:2)
我不能同意“你不能用vbscript做那个”声明。看看ExecuteGlobal。
game1won = 0
playerMove 1
MsgBox game1won
Sub playerMove(firstNumber)
ExecuteGlobal "game" & firstNumber & "won=1"
End Sub
答案 1 :(得分:0)
不,你不能用vbscript做到这一点。最好的选择是使用数组:
Dim gameWon(2)
Dim gameFull(2)
gameWon(0) = 0
gameWon(1) = 0
gameFull(0) = 0
gameFull(1) = 0
Sub playerMove(firstNumber, secondNumber)
If [code to check if game is won] Then
gameWon(firstNumber-1)=1
End If
End Sub