
-----------------------------------
cwlvc
Wed Jun 11, 2008 7:25 pm

Why doesn't this statement work?
-----------------------------------
ok, so i had this other thread, but after 35 views, there was NO reply, so i had to figure out myself, even though it took a long time. but now that i've figured out, there's a small problem. for a hangman game, when there's 2 mistakes, the head comes on, after 3 mistakes, the left arm comes on, but i want it after one mistake, the head comes on, after 2 mistakes, the left arm comes on. this is my coding. 

Option Explicit
Private Const strWord As String = "water"
Private Const strWordTwo As String = "cross"
Private Const StrWordThree As String = "spark"
Private Const strWordFourth As String = "minus"
Private intNumber As Integer
Private strText As String
Private intWrong As Integer

Private Sub Form_Load()
    Randomize
    intNumber = Int(4 * Rnd + 1)
    
    intWrong = 0
    
End Sub


Private Sub cmdA_Click()
    If intWrong = 1 Then
    shpHead.Visible = True
    ElseIf intWrong = 2 Then
    lneBody.Visible = True
    ElseIf intWrong = 3 Then
    lnelefthand.Visible = True
    ElseIf intWrong = 4 Then
    lnerighthand.Visible = True
    ElseIf intWrong = 5 Then
    lneleftleg.Visible = True
    ElseIf intWrong = 6 Then
    lnerightleg.Visible = True
    End If
    
    If intNumber = 1 Then
    lbl2.Caption = "a"
    ElseIf intNumber = 2 Then
    lblmessage.Caption = "guess Again"
    ElseIf intNumber = 3 Then
    lbl3.Caption = "a"
    ElseIf intNumber = 4 Then
    lblmessage.Caption = "guess again"
    End If
    cmdA.Visible = False
    
    If intNumber = 2 Or intNumber = 4 Then
        intWrong = intWrong + 1
        lblCount = intWrong
    
    End If
End Sub
Private Sub cmdB_Click()

    If intWrong = 1 Then
    shpHead.Visible = True
    ElseIf intWrong = 2 Then
    lneBody.Visible = True
    ElseIf intWrong = 3 Then
    lnelefthand.Visible = True
    ElseIf intWrong = 4 Then
    lnerighthand.Visible = True
    ElseIf intWrong = 5 Then
    lneleftleg.Visible = True
    ElseIf intWrong = 6 Then
    lnerightleg.Visible = True
    End If

    If intNumber = 1 Then
    lblmessage.Caption = "guess again"
    
    ElseIf intNumber = 2 Then
    lblmessage.Caption = "guess again"
    
    ElseIf intNumber = 3 Then
    lblmessage.Caption = "guess again"
    
    ElseIf intNumber = 4 Then
    lblmessage.Caption = "guess again"
    
    End If
    cmdB.Visible = False
    
    If intNumber = 1 Or intNumber = 2 Or intNumber = 3 Or intNumber = 4 Then
        intWrong = intWrong + 1
        lblCount = intWrong
    End If
End Sub



i only gave you "A" and "B", but the rest of the code are the same...

-----------------------------------
lordroba
Wed Jun 11, 2008 7:37 pm

Re: Why doesn't this statement work?
-----------------------------------
this sounds a bit counter intuitive, but try changing 

intWrong = 0 

to 

intWrong = 1

you're only off by one mistake, so this might be the easiest way to fix the problem.

-----------------------------------
cwlvc
Thu Jun 12, 2008 11:10 am

RE:Why doesn\'t this statement work?
-----------------------------------
yea, but after i change it to 1, then the head appears before i even make an mistake.
