2016-12-08 7 views
0

ハングマンゲームを作っています。私がボタンを押すと、私は推測する必要がある単語になる言葉を入れる必要があります。私はボタンを押したときに入力ボックスに入れた文字を確認する方法に問題があります。その手紙がその言葉にあるならば、私が与えた手紙は*から手紙に変わる必要があります。例えばパスワード:パスワード文字と推測された文字に変換する必要のある単語:houseの場合は、* o ***になります。単語に複数の文字がある場合は、それらをすべて表示する必要があります。ハングマン/単語推測ゲームの問題

これは私のコードのオランダ語であるが、私はuがここに を助けることを願っていくつかの単語の翻訳である:woord、ワードSTER、スターaantalletters、nieuwwoord、newword GeefのHETのwoordをamountofletters、言葉にgeef EENのgeldigのwoordを与えますで、悪い間違った文字に、

コードの有効なワードジャマーミスを与える:これを行うには

Public Class Form1 
Dim woord, tip, ster As String 
Dim aantalletters As Integer 
Dim letter As String 
Dim nieuwwoord As String 

Private Sub btnnieuwspel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnnieuwspel.Click 
    txtwoord.Text = "" 
    Try 
     woord = InputBox("Geef het woord.", "Het woord") 
     Do While woord = "" Or woord < 0 Or woord > 0 
     If woord = "" Or woord < 0 Or woord > 0 Then 
      MessageBox.Show("geef een geldig woord in") 
     End If 
     woord = InputBox("Geef het woord.", "Het woord") 
     Loop 
    Catch 
    End Try 
    Try 
     tip = InputBox("Geef de tip", "De tip") 
    Catch 

    End Try 

    aantalletters = woord.Length 
    lblTip.Text = "Tip:" & tip 

    For i = 1 To aantalletters 
     txtwoord.Text = txtwoord.Text & "*" 
    Next 
End Sub 

Private Sub btnSluiten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSluiten.Click 
    Me.Close() 
End Sub 

Private Sub btnletter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnletter.Click 
    letter = InputBox("Geef een letter", "De Letter") 

    If woord.Contains(letter) Then 

    Else 
    MessageBox.Show("jammer mis") 
    End If   
End Sub 

End Class 

答えて

0

いくつかの方法、次のように1は、次のとおりです。

Option Compare Database 
Option Explicit 

Dim MyWord  As String 
Dim txtwoord As String 

' Just used for testing the loop. 
Sub Test_It() 
    MyWord = "house"  ' Set test word 
    txtwoord = "*****" ' Set test Mask 
    ' Call function with my 'guess' 
    Debug.Print "Result: " & Find_Characters("o") 
    Debug.Print "Result: " & Find_Characters("e") 
    Debug.Print "Result: " & Find_Characters("s") 
    Debug.Print "Result: " & Find_Characters("u") 
    Debug.Print "Result: " & Find_Characters("h") 
End Sub 

Function Find_Characters(letter As String) As String 
Dim i  As Integer 
    For i = 1 To Len(MyWord) ' Loop thru all characters 
     If Mid(MyWord, i, 1) = letter Then ' If found, replace asterisk 
      Mid(txtwoord, i, 1) = letter 
     End If 
    Next i 
    Find_Characters = MyWord & vbTab & txtwoord 
    ' Need to stop somehow... 
    if InStr(1,txtword, "*") = 0 then Msgbox "Finished guessing... Add code...' 
End Function