Hi Leute
ich bins mal wieder… hab ne neue Aufgabe
also ich soll etz HangMan programmieren! hab auch
scho angefangen etz hab ich des problem das ich
ned weiß, wie ich des machen kann das wenn ein
Buchstabe richtig ist er von der Textbox ins Label
bekomme und wenn er falsch ist wie ich dann mein
erstes bild herbekomme… bitte helft mir…
Danke im voraus mfg skandalös
Hallo,
ich bins mal wieder… hab ne neue Aufgabe
also ich soll etz HangMan programmieren! hab auch
scho angefangen etz hab ich des problem das ich
ned weiß, wie ich des machen kann das wenn ein
Buchstabe richtig ist er von der Textbox ins Label
bekomme
von der Textbox ins Label ist falsch. Das sind zwei befehle.
Ein mal aus der Textbox löschen ( .Text = „“ ) und ein mal in das Label an der richtigen Stelle eintragen. Dazu solltest Du das ergebnis in einer Textvariablen halten und die gesamte Variable an das Label übergeben. Für die noch nicht erratenen Zeichen zeigst Du Sterne an?
und wenn er falsch ist wie ich dann mein
erstes bild herbekomme… bitte helft mir…
Danke im voraus mfg skandalös
Entweder Du malst tatsächlich un die Picturebox, oder Du bereitetst die Bilder vor und zeigst sie dann nur an. Da kannst Du entweder alle Bilder unsichtbar auf der Form halten und mit PictureAnzeige.Image = PictureResouce1.Image das Bild übergeben oder mii PictureAnzeige.Image = Loadpicture(Pfad) von der Platte laden.
Das ist alles etwa gleich gut, reine Geschmackssache. Ich persönlich bevorzuge die Bilder von der Platte zu laden, das hält das Projekt klein und ist flexibel. Man kann die Bilder ändern ohne das Programm ändern zu müssen.
Gruß Rainer
von der Textbox ins Label ist falsch. Das sind zwei befehle.
Ein mal aus der Textbox löschen ( .Text = „“ ) und ein mal in
das Label an der richtigen Stelle eintragen. Dazu solltest Du
das ergebnis in einer Textvariablen halten und die gesamte
Variable an das Label übergeben. Für die noch nicht erratenen
Zeichen zeigst Du Sterne an?
nee Unterstriche auf die die buchstaben die richtig sind drauf geschrieben werden sollen! wie soll na ich des dann machen mit dem in die Variable übergeben? ich kenn mich echt gar nicht aus… sorry
Entweder Du malst tatsächlich un die Picturebox, oder Du
bereitetst die Bilder vor und zeigst sie dann nur an. Da
kannst Du entweder alle Bilder unsichtbar auf der Form halten
und mit PictureAnzeige.Image = PictureResouce1.Image das Bild
übergeben oder mii PictureAnzeige.Image = Loadpicture(Pfad)
von der Platte laden.
also ich hab die bilder selbst gemalen und dann in eine imageliste eingefügt… muss ich das dann mit einer if abfrage herholen oder wie?
ich bin echt totaler anfänger… tut mir leid wegen der dummen fragen…
liebe grüße skandalös
Hi,
nee Unterstriche auf die die buchstaben die richtig sind drauf
geschrieben werden sollen!
OK, auch ne Idee.
wie soll na ich des dann machen mit
dem in die Variable übergeben? ich kenn mich echt gar nicht
aus… sorry
Nimm Eine Variable, in der das Wort steht.
Nimm eine Variable, in der Du das Wort aufbaust, wie Du es anzeigen möchtest.
Wie Du Instr() in einer Schleife verwendest und weißt Du?
Zeig doch mal den Code, den Du schon hast, vergiss dabei den pre-tag nicht. (Sieh mal an den unteren Rand des Eingabefensters).
Entweder Du malst tatsächlich un die Picturebox, oder Du
bereitetst die Bilder vor und zeigst sie dann nur an. Da
kannst Du entweder alle Bilder unsichtbar auf der Form halten
und mit PictureAnzeige.Image = PictureResouce1.Image das Bild
übergeben oder mii PictureAnzeige.Image = Loadpicture(Pfad)
von der Platte laden.also ich hab die bilder selbst gemalen und dann in eine
imageliste eingefügt… muss ich das dann mit einer if abfrage
herholen oder wie?
Die Imagelist hat einen Index, Du musst nur in einer Variablen die Fehler zählen und diese Variable als Index verwenden.
Gruß Rainer
also mein Code bis jetzt ist:
Public Class Form1
Private Suchwort As String
Private Sub BtnStart\_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnStart.Click
'picHangman.Image = imlHangman.Images(7)
Suchwort = zufaelligeWortWahl()
lblSuchwort.Text = unterstriche(Suchwort)
End Sub
Private Function zufaelligeWortWahl() As String
zufaelligeWortWahl = "Hallo"
End Function
Private Function unterstriche(ByVal Wort As String) As String
Dim i As Integer
Dim dummy As String
dummy = ""
For i = 1 To Wort.Length
dummy = dummy & "\_ "
Next
unterstriche = dummy
End Function
Private Function AnzahlBuchstaben(ByVal Wort As String) As String
Dim dummy As String = ""
Dim ez As String
Dim i As Integer = 0
Dim Buchstabe As Boolean = False
For i = 1 To Wort.Length
ez = Mid(Wort, i, 1)
Select Case UCase(ez)
Groß (UCase("b") = "B")
Case "A" To "Z"
If Buchstabe = False Then
dummy = dummy & UCase(ez)
Buchstabe = True
End If
Case Else
End Select
Next
AnzahlBuchstaben = dummy
End Function
Private Sub btnÜberschreiben\_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnÜberschreiben.Click
'MsgBox(Suchwort)
BuchstabenEingabe.Text = AnzahlBuchstaben(BuchstabenEingabe.Text)
End Sub
also bis etz hat mein chef mir auch recht gegeben das ich des richtig mache…
liebe grü´ße Skandalös
[MOD] - Pre-Tag eingefügt
Hi,
ich hzabe ersat mal nur den Pre-Tag eingefügt, nun muss ich mir den Code erst mal ansehen. Bis später.
Gruß Rainer
Hallo,
so, ich habe mal etwas an Deinem Code herumgefummelt, entfernt, was überflüssig war oder gestört hat … Nur die Formatierung Deiner Ausgabe ist im Moment zerbröselt, die war mir erst mal nicht so wichtig.
Bilder habe ich nicht, deshalb habe ich den Teil auch erst mal noch weg gelassen, nur die Textausgabe geht jetzt und Gewonnen wird schon mal angezeigt, die Fehler hochgezählt, das wird Dein Index für die Bilder.
Bevor wir mit der Grafik anfangen, verstehst Du den Code? Fragen?
Gruß Rainer
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
lblsuchwort.Text = Zielwort
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
End If
Next
lblsuchwort.Text = Zielwort
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
Guten Morgen Rainer,
Nur die Formatierung Deiner Ausgabe ist im Moment zerbröselt, die war
mir erst mal nicht so wichtig.
Was heißt das genau? Meine Ausgabe ist im Moment zerbröselt? Das ich im Moment das Programm nicht starten kann?!
Bevor wir mit der Grafik anfangen, verstehst Du den Code?
Fragen?
Ja den Code verstehe ich soweit! Fragen hab ich im Moment keine zum Code eigentlich nur noch dir Frage mit den Bildern? Wie ich die nun einfügen kann und so…
Vielen Dank für deine Hilfe und auch für die weitere Hilfe!
Liebe Grüße Skandalös
Guten Morgen,
Was heißt das genau? Meine Ausgabe ist im Moment zerbröselt?
Das ich im Moment das Programm nicht starten kann?!
nein. Das heißt, daß zwischen Deinen Unterstrichen kein Leerzeichen ist und die Anzahl Zeichen deshalb schwerer zu erkennen.
Das zu ergänzen ist ja aber nur eine Funktion mit drei Zeilen.
Bevor wir mit der Grafik anfangen, verstehst Du den Code?
Fragen?Ja den Code verstehe ich soweit! Fragen hab ich im Moment
keine zum Code eigentlich nur noch dir Frage mit den Bildern?
Wie ich die nun einfügen kann und so…
Hmmm, dazu müsste ich nun wieder Code schreiben. Wann ich dafür Zeit habe, kann ich nicht versprechen, ich möchte keinen Ärger mit meinem Chef bekommen.
Gruß Rainer
Hallo Rainer,
nein. Das heißt, daß zwischen Deinen Unterstrichen kein
Leerzeichen ist und die Anzahl Zeichen deshalb schwerer zu
erkennen.
Das zu ergänzen ist ja aber nur eine Funktion mit drei Zeilen.
Hab ich etz durch herumspielen schon gesehen dann werd ich jetzt schon versuchen denn code herauszu bekommen! und wenn du später da bist werd ich dir sagen was ich bis dahin geschafft habe
Hmmm, dazu müsste ich nun wieder Code schreiben. Wann ich
dafür Zeit habe, kann ich nicht versprechen, ich möchte keinen
Ärger mit meinem Chef bekommen.
Bitte keinen Ärger mit deinem Chef einfangen! Ich kann noch warten und werde einfach noch selbst einiges versuchen und dich auf dem laufenden halten…
Liebe Grüße Skandalös
Hi Rainer,
Also das mit den Bildern hab ich jetzt schon ein bisschen gelöst, es erscheint beim ersten Falschen Buchstaben schon das erste Bild
Jetzt weiß ich da aber leider nicht weiter wie ich dann beim zweiten Fehler das zweite Bild herhole und so weiter…
mein Code fürs erste Bild:
If Flag = False Then
Fehler = Fehler + 1
picHangman.Image = imlHangman.Images(0)
End If
Liebe Grüße Skandalös
Hallo,
Also das mit den Bildern hab ich jetzt schon ein bisschen
gelöst, es erscheint beim ersten Falschen Buchstaben schon das
erste Bild
Jetzt weiß ich da aber leider nicht weiter wie ich dann beim
zweiten Fehler das zweite Bild herhole und so weiter…mein Code fürs erste Bild:
If Flag = False Then
Fehler = Fehler + 1
picHangman.Image = imlHangman.Images(0)
End If
na bite, Du braichst mich doch gar nicht.
Warum schreibst Du die Variable ‚Fehler‘ nicht einfach in die Klammer?
If Flag = False Then
picHangman.Image = imlHangman.Images(Fehler)
Fehler = Fehler + 1
End If
Gruß Rainer
Hi
na bite, Du braichst mich doch gar nicht.
Naja nicht brauchen ist da was anderes bin froh endlich jemanden fragen zu können
Übrigens es klappt auf die Idee hätt ich auch mal kommen können…
jetzt ist eig nur noch das problem mit den Leerzeichen… und das wenn mein letztes Bild erscheint eine Box aufgeht „Verloren“. Habs schon probiert funktioniert aber i.wie nicht!
Könntest du mir vll wieder einen Denk-Anstoß geben wie ich anfangen muss danke!!
Liebe Grüße Skandalös
Hi,
Übrigens es klappt auf die Idee hätt ich auch mal kommen
können…
*gg* sag ich doch. Beim nächsten mal kommst Du drauf.
jetzt ist eig nur noch das problem mit den Leerzeichen.
Das ist doch kein Problem
Der bereits erratene Teildes Wortes und die Unterstriche werden ja mit
lblsuchwort.Text = Zielwort
ausgegeben.
An die Stelle schreibst Du den Namen einer Prozedur, z.B. ‚Ausgabe‘
Und die Prozedur Ausgabe: … (Ich tipp’s mal nur hier, ungetestet, achte bitte auf mögliche Tippfehler!)
Private Sub Ausgabe()
Dim I as Integer
lblsuchwort.Text =""
For i = 1 To Zielwort.Length
lblsuchwort.Text = lblsuchwort.Text + Mid(Zeilwort, i, 1) + " "
Next
End Sub
OK?
Was noch fehlt: Die falsch geratenen Buchstaben solltest Du auch noch anzeigen, das wird nur eine Zeile in einem ‚Else‘ Zweig.
Findest Du die Stelle?
und das wenn mein letztes Bild erscheint eine Box aufgeht
„Verloren“. Habs schon probiert funktioniert aber i.wie nicht!
If Fehler \> 11 Then 'Wenn Du elf Bilder hast. Oder 10 ...?
'Fehlermeldung
End If
Gruß Rainer
Hi Rainer
Private Sub Ausgabe()
Dim I as Integer
lblsuchwort.Text =""
For i = 1 To Zielwort.Length
lblsuchwort.Text = lblsuchwort.Text + Mid(Zeilwort, i,
- " "
Next
End Sub
und lblSuchwort.Text = Ausgabe()
Ok wenn ich das so mache, dann bekomme ich einen neuen Fehler und zwar: Der Ausdruck ergibt keinen Wert.
Was noch fehlt: Die falsch geratenen Buchstaben solltest Du
auch noch anzeigen, das wird nur eine Zeile in einem ‚Else‘
Zweig.Findest Du die Stelle?
Leider nicht, ich verstehe leider auch nicht ganz was ich da genau machen soll?! Ich verstehe zwar was der Sinn dahinter ist aber leider nicht wie ich das am besten anstelle…
If Fehler > 11 Then 'Wenn Du elf Bilder hast. Oder 10 …?
'Fehlermeldung
End If
Das Klappt wieder! Man mit dir werd ich ja irgendwann ein Profie Danke!!
Liebe Grüße Skandalös
Hi,
Private Sub Ausgabe()
Dim I as Integer
lblsuchwort.Text =""
For i = 1 To Zielwort.Length
lblsuchwort.Text = lblsuchwort.Text + Mid(Zeilwort, i,
- " "
Next
End Subund lblSuchwort.Text = Ausgabe()
Ok wenn ich das so mache, dann bekomme ich einen neuen Fehler
und zwar: Der Ausdruck ergibt keinen Wert.
Tippfehler nicht gesehen. Ich habe das e i vertauscht, ‚Zeilwort‘ statt ‚Zielwort‘ geschrieben. Das ist der Nachteil, wenn ich nicht teste.
Was noch fehlt: Die falsch geratenen Buchstaben solltest Du
auch noch anzeigen, das wird nur eine Zeile in einem ‚Else‘
Zweig.Findest Du die Stelle?
Leider nicht, ich verstehe leider auch nicht ganz was ich da
genau machen soll?! Ich verstehe zwar was der Sinn dahinter
ist aber leider nicht wie ich das am besten anstelle…
Dann zeige ich Dir die Stelle.
For i = 1 To Suchwort.Length
If SuchBuchstabe = Mid(Suchwort, i, 1) Then
Mid(Zielwort, i, 1) = SuchBuchstabe
Flag = True
**Else**
'Zeichen in ein Label einfügen, da es im Moment noch nicht gibt.
End If
Next
Gruß Rainer
Tippfehler nicht gesehen. Ich habe das e i
vertauscht, ‚Zeilwort‘ statt ‚Zielwort‘ geschrieben. Das ist
der Nachteil, wenn ich nicht teste.
ja aber ich habs nicht abkopiert ich habs selber getippt und deshalb ist bei mir kein Fehler einer solchen art vorhanden…
Dann zeige ich Dir die Stelle.
For i = 1 To Suchwort.Length
If SuchBuchstabe = Mid(Suchwort, i, 1) Then
Mid(Zielwort, i, 1) = SuchBuchstabe
Flag = True
Else
'Zeichen in ein Label einfügen, da es im
Moment noch nicht gibt.
End If
Next
ok habs jetzt gefunden und ein Label angelegt Namens lblBuchstaben so und nun muss ich da rein schreiben
Else
lblBuchstaben = lblBuchstaben + ??
End If
Soweit glaub ich ist es richtig… Mein Problem ist was kommt an stelle der Fragezeichen? oder denk ich komplett falsch?!
Liebe Grüße Skandalös
Hi,
ja aber ich habs nicht abkopiert ich habs selber getippt und
deshalb ist bei mir kein Fehler einer solchen art vorhanden…
dann muss ich testen. Wenn alle Variablen richtig deklariert sind soll das so funktionieren. Geht gleich los, Mittagspause.
ok habs jetzt gefunden und ein Label angelegt Namens
lblBuchstaben so und nun muss ich da rein schreiben
Else
lblBuchstaben = lblBuchstaben + ??
End If
Soweit glaub ich ist es richtig… Mein Problem ist was kommt
an stelle der Fragezeichen?
Der eingegebene Buchstabe. An der Stelle im Programm steckt der in der Variablen: SuchBuchstabe
also:
Else
lblBuchstaben = lblBuchstaben + SuchBuchstabe + " "
End If
Noch ein Leerzeichen mit übergeben, damit es übersichtlich wird.
Gruß Rainer
Hi,
dann muss ich testen. Wenn alle Variablen richtig deklariert
sind soll das so funktionieren. Geht gleich los, Mittagspause.
immer mit der Ruhe will dir deine Mittagspause nicht nehmen! mach erstmal deine Pause ich kann warten
Der eingegebene Buchstabe. An der Stelle im Programm steckt
der in der Variablen: SuchBuchstabealso:
Else
lblBuchstaben = lblBuchstaben + SuchBuchstabe
- " "
End IfNoch ein Leerzeichen mit übergeben, damit es übersichtlich
wird.
Bekomme dann leider wieder eine Fehlermeldung: Der ±Operator ist für die Typen „System.Windows.Forms.Label“ und „Char“ nicht definiert.
und was kann ich nun machen?
Also wie gesagt mach erstmal deine Pause ich kann warten und wenn du zeit hast schreib einfach…
Liebe Grüße Skandalös
Nachtrag
Hallo,
Else
lblBuchstaben = lblBuchstaben + SuchBuchstabe
- " "
End If
Mist! .Text vergessen!
For i = 1 To Suchwort.Length
If SuchBuchstabe = Mid(Suchwort, i, 1) Then
Mid(Zielwort, i, 1) = SuchBuchstabe
Flag = True
Else
lblBuchstaben.Text = lblBuchstaben.Text + SuchBuchstabe + " "
End If
Next
Gruß Rainer