Versteckten Text Aufdecken

Wowan

Grünschnabel
hi, mach grad just4fun n kleines Spielchen und bin jetzt leider aufn problem gestoßen...

Ich rufe random ein Wort aus ner Datenbank auf, und würde gerne dieses Versteckt in einem Label anzeigen lassen also z.b für das Wort "Hallo" soll im Label stattdessen als "_ _ _ _ _" erscheinen.

Wenn man dann auf der Tastatur z.B die Taste "a" drückt soll es dann aufgedeckt werden, also "_ a _ _ _". Und wenn die falsche gedrückt wird soll eine Grafik erscheinen...das hängende Männle :-)

Jetzt wollt ich fragen wie ich das anstellen kann. Kann das Wort in einem Label versteckt werden oder muss ich für jeden Buchstaben sein eigenes Label aufmachen?

Wäre nett wenn man mir codeansätze geben könnte da ich noch recht neu in VB bin.
Falls es bloss mit, für jeden Buchstaben, einzelnnen Label geht, sollte am besten berücksichtigt werden das es verschieden lange Wörter gibt (max. 15Buchstaben groß)

Danke schonmal im voraus!

Mein Datenbankabuf und Darstellung auf Label zurzeit:

Code:
Dim zaehler As Integer
Dim rec_laenge As Integer
Dim DB As Database
Dim TB As Recordset

---------------------------------------------------------

  Sub Random()


    Set DB = OpenDatabase("G:\Dokumente und Einstellungen\Wowka\Eigene Dateien\Wortspiel\Wortspiel.mdb")
    Set TB = DB.OpenRecordset("Worte", dbOpenDynaset)

        rec_laenge = 0
        
    TB.MoveFirst             'Gehe zum beginn der Datenbank
    
    Do Until TB.EOF         'Führe fort bis ende der Datenbank
        TB.MoveNext         'Gehe zum nächsten datensatz
        rec_laenge = rec_laenge + 1     'Addiert Datensätze zusammen
    Loop                         'Wiederholt den vorgang bis zum ende der Datenbank
    
    zaehler = CInt(Rnd(Time) * rec_laenge) + 1      'Generiert zufällig Zahl innerhalb der Datenbank größe
        TB.MoveFirst                 'Geht zum ersten Datensatz
    
    Do Until zaehler = 0            'Geht jeweils einen Datensatz weiter, nach größer die zufallszahl ist
         TB.MoveNext
        zaehler = zaehler - 1
    Loop

fm_Game.Label1.Caption = TB("Wort")     'Ausgabe im Label
End Sub

MfG
Wowa
 
Hi!

Du nimmst einfach das generierte Wort und holst Dir von diesem die Länge (irgendwas wie String.length - hab schon lange nix mehr mit dem alten VB gemacht...).
Für diese Länge generierst Du Dir ein Array wobei jede Stelle zu Begin mit einem "_" gefüllt wird. Wenn jetzt jemand eine Taste drückt (sagen wir einfach "a") dann suchst Du in Deinem Zufalls-String nach diesem Buchstaben und nimmst die Position. Diese Position kannst Du dann in Deinem Array durch den Buchstaben ersetzen und stellst das Array wieder als String im Label dar...

Ich hoffe ich hab das irgendwie verständlich erklärt. Leider hab ich jetzt kein VB 6 zur Hand und möchte auch ungern Code posten, der nicht funktioniert. Versuch es erstmal umzusetzen, wenn Du dann etwas Code hast und Probleme dabei hast, dann meld Dich wieder.

MfG
..::SD::..
 
danke für den Vorschlage SixDark,

hm, kann leider kein array benützen, überleg mir das Spielchen als freiwillige Arbeit zur Schule mitzubringen damit ich doch noch auf meine 15 punkte komme (steh auf 14 wegen nem leichtsinnsfehler).

Das problem dran ist das ich bloss elemente benützen darf die ich bereits im Unterricht hatte... -.-
Bitte jetzt nicht herummotzen... ich weis das ihr nicht wissen könnt was ich schon im Unterricht hatte... weis ich selber nichtmal ^^
Aber würde mich über ein paar kleine "minderetwickelte" Vorschläge freuen :-)

Falls niemandem ne andere Lösung einfällt mach ich dann doch über array, aber meine 15 punkte kann ich vergessen ;)

MfG
Vladimir
 
Naja, gehen tut's auch ohne Array, aber meiner Meinung nach etwas sehr viel umständlicher.
Du müßtest den String genauso durchsuchen nach dem gedrückten Buchstaben. Merkst Dir hier in einer Var die Stelle an der er gefunden wird.
Dann gehst Du in Dein Textfeld und setzt in dem dort dargestellten String die Stelle x auf den Buchstaben. Theoretisch müsstest Du einen zweiten String haben, der zu Begin nur "_" enthält. Den überschreibst Du nach jedem Tastendruck einfach.

Hmmm, soviel komplizierter als ich dachte ist es doch gar nicht...

MfG
..::SD::..
 
danke für die hilfe SixDark habs aber schon hingekriegt ;-)

die "_" hab ich mit ner schleife erstellt, also zuerst die Buchstaben im wort gezählz len() und dann mit der schleife soviele buchstaben eingefügt.

die abfrage ob der buchstabe richtig ist mit InStr() verglichen und mit mid() dann im label den an der richtigen stelle den Buchstaben eingefügt.

nochmals danke für deine Antworten!

MfG
Vladimir
 
Zurück