1

我确信有一种我不知道的聪明技术可以帮助解决这个问题,但我正在努力寻找任何接近的例子,所以我希望有人能帮助我指出正确的方向。

我有一些全局变量,我想根据传递给它的变量从子例程中编辑它们。

基本上,这是一个想法(尽管在实践中规模更大):

<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 语句的情况下对此进行编辑?

多谢你们!

4

2 回答 2

2

我不能同意“你不能用 vbscript 做到这一点”的说法。看看ExecuteGlobal

game1won = 0
playerMove 1
MsgBox game1won
Sub playerMove(firstNumber)
    ExecuteGlobal "game" & firstNumber & "won=1"
End Sub
于 2013-06-23T14:02:24.953 回答
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
于 2013-06-22T12:55:33.920 回答