HangMan

Hi,

immer mit der Ruhe will dir deine Mittagspause nicht nehmen!
mach erstmal deine Pause ich kann warten :smile:

jetzt habe ich aber die meiste Zeit!

Ohne Bild, daber das hast Du ja.

Getestet, läuft:

Public Class picHangman
 Dim Suchwort As String
 Dim Zielwort As String
 Dim Fehler As Integer

 Private Sub BtnStart\_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnStart.Click
 Dim i As Integer
 Zielwort = ""
 Suchwort = zufaelligeWortWahl()
 Suchwort = UCase(Suchwort)
 For i = 1 To Suchwort.Length
 Zielwort = Zielwort + "\_"
 Next
 lblBuchstaben.Text = ""
 Ausgabe()
 End Sub

 Private Sub Ausgabe()
 Dim I As Integer
 lblsuchwort.Text = ""
 For i = 1 To Zielwort.Length
 lblsuchwort.Text = lblsuchwort.Text + Mid(Zielwort, I, 1) + " "
 Next
 End Sub

 Private Sub buchstabenfinden()
 Dim SuchBuchstabe As Char
 Dim i As Integer, Flag As Boolean

 SuchBuchstabe = BuchstabenEingabe.Text
 For i = 1 To Suchwort.Length
 If SuchBuchstabe = Mid(Suchwort, i, 1) Then
 Mid(Zielwort, i, 1) = SuchBuchstabe
 Flag = True
 Else
 If InStr(lblBuchstaben.Text, SuchBuchstabe) = 0 Then
 lblBuchstaben.Text = lblBuchstaben.Text + SuchBuchstabe + " "
 End If
 End If
 Next
 Ausgabe()
 BuchstabenEingabe.Text = ""
 If Flag = False Then
 Fehler = Fehler + 1
 'Bild anzeigen
 End If
 If InStr(Zielwort, "\_") = 0 Then MsgBox("Gewonnen")
 End Sub

 Private Function zufaelligeWortWahl() As String
 zufaelligeWortWahl = "Hallo"
 End Function

 Private Sub btnÜberschreiben\_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnÜberschreiben.Click
 BuchstabenEingabe.Text = UCase(BuchstabenEingabe.Text)
 buchstabenfinden()
 End Sub
End Class

OK?

Gruß Rainer

Ok meine Buchstaben kann ich jetzt unten sehen aber immer gleich 6 mal und Label1 steht auch weiter hin da…
wenn lblBuchstaben.Text nach dem = weg lasse dann kann ich die buchstaben solange sehn bis der nächste Falsche dran ist dann steht der dort…
Liebe Grüße Skandalös

Hi,

Du hast die Antwort nicht gesehen, gleichzeitig getippt? :smile:

Gruß Rainer

oh man Danke!!! Es läuft endlich… :smile: so toll…
Vielen Danke nochmal
Liebe Grüße Skandalös
Ach mist eine Frage hab ich da doch noch (Sorry)
Kann ich auch mehrere Begriffe angeben die sich dann automatisch abwechseln oder nur mein „Hallo“ ??

Hi,

Kann ich auch mehrere Begriffe angeben die sich dann
automatisch abwechseln oder nur mein „Hallo“ ??

ja klar, sonst macht es ja keinen Sinn.

Dann deklarieren wir uns erst mal ein Array, ich hab’s mal Wortliste getauft und im Moment auf 100 Variablen definiert, das soll für den Anfang reichen.

Der Anfang des Programmst sieht dann jetzt so aus:

Public Class picHangman
 Dim Suchwort As String
 Dim Zielwort As String
 Dim Fehler As Integer
 Dim Wortliste(100) As String

Dann habe ich beim Form_Load-Ereignis ein paar daten in das array eingefügt, im ‚Ernstfall‘ würde man die aus einer textdatei laden. Dafür war ich jetzt aber zu faul. :smile:

 Private Sub picHangman\_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 Wortliste(0) = "Test"
 Wortliste(1) = "Hallo"
 Wortliste(2) = "Versuch"
 Wortliste(3) = "Probe"
 End Sub

Dann blieb nur noch Deine Funktion zu ändern:

 Private Function zufaelligeWortWahl() As String
 Dim r As New System.Random()
 zufaelligeWortWahl = Wortliste(r.Next(0, 3))
 End Function

und da zufällig ein Wort aus der Liste zu nehmen.

In r.Next(0, 3) ist Null der kleinste, 3 der größte Wert der ‚gewürfelt‘ wird. Wenn Du die Texte aus einer Textdatei holst, gehört da statt ‚3‘ natürlich der Zähler hin, der mitzählt, wie viele Wörter geladen wurden.

Gruß Rainer

Hi Rainer
danke viel mals für deine Geduld und deine Zeit die du mit meinem Problem gebraucht hast!!
Es klappt einwandfrei!! Nochmal vielen dank!!
Liebe Grüße Skandalös
ps: Beim nächsten Problem das ich durch deine Hilfe selbst löse denk ich an dich :smile: