国庆假期宅家,极度无聊中,想起一个“花园”小游戏,用Excel的VBA做了一个,消磨一下时光。
说有四个小朋友在花园玩耍,一个扮将军,三个扮土匪。将军误入山中,偶遇悍匪,立马派出斥候搬兵。但是将军要与悍匪斗过N个回合,才能等来援军。
每个回合,将军可以往上下左右四个方向(如果没有障碍)任意选一个方向走一步,土匪选择三个中的一个,也往没有障碍的方向走一步。当将军无路可走的时候,游戏结束。
如果你是将军,能坚持到援军到达吗?
说是要有代码才更有价值,就摘抄一段动态绑定事件的代码段:
' 动态添加的控件,可以这样绑定Click事件?
For x = 0 To Garden.Width * Garden.Height - 1
Set Beta(x) = New CBeta
Set Halo(x) = Controls.Add("Forms.Label.1", "L" & Right(1000 + x, 3), True)
With Halo(x)
.Left = 10 + (x Mod Garden.Width) * Size
.Top = 10 + (x \ Garden.Width) * Size
.Width = Size - 1
.Height = Size - 1
.Caption = ""
.BackColor = IIf(Garden.Value(x) < 0, BLUE, LIGHT_ORANGE)
.ForeColor = ORANGE
.Font.Name = "Courier New"
End With
Beta(x).SetID x, Me
Set Beta(x).OnClick = Halo(x) ' 关键看这里
Next
似乎这里不能发RAR文档。