2017-02-18 5 views
0

So heute in meiner Computer Programming Class, haben wir ein Projekt namens CaseStudy erstellt. Ich sah einen Weg, um das Programm mehr Replay-Wert zu haben. Ich beschloss, den Code und die Schnittstelle so zu verändern, dass sie wie ein Hangman-Spiel aussehen. Ich habe die Gliedmaßen zu erscheinen, aber erst nach dem Klicken auf Ok auf der MessageBox.Bilder werden nicht sichtbar

Ich frage mich, ob jemand eine Möglichkeit hat, diese Gliedmaßen in Echtzeit erscheinen zu lassen.

Hier ist der wichtige Code:


Dim SECRET_WORD As String = newSecretWord 
     Const FLAG As Char = "!" 
     Const GUESS_PROMPT As String = "Enter a letter or " & FLAG & " to guess word:" 
     Dim numGuesses As Integer = 0 
     Dim letterGuess As Char 
     Dim wordGuess As String 
     Dim tempWord As String 
     Dim endGame As Boolean 

     Dim wordGuessedSoFar As String = "" 
     Dim lenght As Integer = SECRET_WORD.Length 
     wordGuessedSoFar = wordGuessedSoFar.PadLeft(lenght, "_") 
     Me.lblSecretWord.Text = wordGuessedSoFar 

     Dim tempLetterGuess = InputBox(GUESS_PROMPT, Me.Text) 
     If tempLetterGuess = Nothing Then 
      endGame = True 
     Else 
      letterGuess = tempLetterGuess 
     End If 
     Do While letterGuess <> FLAG And wordGuessedSoFar <> SECRET_WORD And Not endGame 
      numGuesses += 1 
      For letterPos As Integer = 0 To SECRET_WORD.Length - 1 
       If SECRET_WORD.Chars(letterPos) = Char.ToUpper(letterGuess) Then 
        tempWord = wordGuessedSoFar.Remove(letterPos, 1) 
        wordGuessedSoFar = tempWord.Insert(letterPos, Char.ToUpper(letterGuess)) 
        Me.lblSecretWord.Text = wordGuessedSoFar 


       End If 
      Next letterPos 


      If wordGuessedSoFar <> SECRET_WORD Then 
       tempLetterGuess = InputBox(GUESS_PROMPT, Me.Text) 
       If tempLetterGuess = Nothing Then 
        endGame = True 
       Else 
        letterGuess = tempLetterGuess 
       End If 
      End If 
     Loop 


      If wordGuessedSoFar = SECRET_WORD Then 
      MessageBox.Show("You guessed it in " & numGuesses & " guesses!") 
     ElseIf letterGuess = FLAG Then 
      wordGuess = InputBox("Enter a word: ", Me.Text) 
      If wordGuess.ToUpper = SECRET_WORD Then 
       MessageBox.Show("You guessed it in " & numGuesses & " guesses!") 
       Me.lblSecretWord.Text = SECRET_WORD 
      Else 
       MessageBox.Show("Sorry, you lose.") 
      End If 
     Else 
      MessageBox.Show("Game over.") 
      lblSecretWord.Text = Nothing 
     End If 

     Dim place As Integer = SECRET_WORD.Length - 1 

     If tempLetterGuess <> SECRET_WORD.Chars(place) Then 
      numWrong += 1 
     End If 

     If numWrong = 1 Then 
      picHead.Visible = True 
     End If 
     If numWrong = 2 Then 
      picBody.Visible = True 
     End If 
    End Sub 


End Class 

ich andere Bilder machen können, wenn Sie möchten.

+0

Sie haben noch keine * Bilder im Code *, so klar kann man nicht machen * Bilder * zeigen sich. Kannst du deutlicher machen, was du verlangst? –

+0

Sie können ein Label auf dem Formular anstelle von MessageBox verwenden – Slai

+0

Der Code ist nicht [tag: vbscript]. – Lankymart

Antwort

0

Wenn ich Sie richtig verstehe, möchten Sie Ihre "Bilder" zeigen, bevor der Benutzer die Nachricht sieht. Wenn ja, müssen Sie den folgenden Code in einen Bereich bewegen, gerade vor dem MessageBox und kurz nach dem InputBox:

Dim place As Integer = SECRET_WORD.Length - 1 

    If tempLetterGuess <> SECRET_WORD.Chars(place) Then 
     numWrong += 1 
    End If 

    If numWrong = 1 Then 
     picHead.Visible = True 
    End If 
    If numWrong = 2 Then 
     picBody.Visible = True 
    End If 
Verwandte Themen