然而,我正在尝试设置这个刽子手游戏,到目前为止它只适用于步进模式。
按下播放后会发生什么,如果我选择了一个错误的字母,它不会显示“刽子手”形状,直到我做出正确的猜测。
因此,例如,如果我做出 2 个不正确的猜测(因此在重复循环之前应该显示 2 个形状),在我的第 3 个猜测正确之前什么都不会发生,那么它会同时显示两个形状。
代码在步进模式下工作正常,如果我用 F8 浏览代码,没有问题,形状按顺序显示。不太确定这里可能是什么问题。
Option Explicit
Dim wks As Worksheet
Dim word As Range
Dim rect As Shape
Sub Hangman()
Dim fletter As Variant
Dim myLetter As String
Dim i As Byte
Set wks = ThisWorkbook.ActiveSheet
Set word = wks.Range("B1:J1")
i = 1
Do Until wks.Range("b1:j1").Font.Color = VBA.ColorConstants.vbBlack Or i = 9
myLetter = VBA.InputBox("What is the next letter")
Set word = Range("B1:J1").Find(myLetter)
If Not word Is Nothing Then
word.Font.Color = VBA.ColorConstants.vbBlack
fletter = word.Address
Do
Set word = Range("B1:J1").FindNext(word)
word.Font.Color = VBA.ColorConstants.vbBlack
If word.Address = fletter Then Exit Do
Loop
Else
Set rect = ThisWorkbook.ActiveSheet.shapes("Shape" & i)
rect.Visible = msoTrue
i = i + 1
End If
Loop
End Sub