![]() |
Hangman Problem
Ersteinmal ein Hallo an alle hier im Forum
Ich habe ein Problem mit der Programmierung des Spieles Hangman^^ ich hänge im Grunde genommen an dem Punkt, wo, wenn der richtige Buchstabe vom Benutzer eingeben wurde ,das Programm den Buchstaben in das Label einfügen soll Hier mal etwas genauer ;) x:= Length(suchwort); for i=0 to x do ratewort.caption:=ratewort.caption +'_ '; Das pasiert beim Button und bei Key Press fügt der in ein Label ("Eingabe") den vom Benutzer gewählten Buchstaben ein..bis dahin geht alles aber jetzt kommt meint Problem. proceduer OnkeyPress(...) y:=Pos(key,suchwort); if y > 0 then Was soll hier jetzt hin? else showmessage('Nicht vorhanden') Ich würde mich über eine Antwort sehr freuen, da die Frage mir recht zu schaffen macht :pale: Vielleicht könntet ihr mir eine Erklärung zumindest vom Ansatz her geben Danke! :D |
Re: Hangman Problem
Hi, herzlich willkommen!
Ich vermute, dich bist noch kein fortgeschrittener Programmierer, daher bleibe ich auf einem leichten (Anfänger-)Level und keinem performance-optimierten Code, was du aber nicht merken wirst. Ich hoffe, ich liege hier nicht falsch in meiner Annahme. ;) Lösen könntest du es beispielsweise so in der Art:
Delphi-Quellcode:
Viel Spaß.
// auktuelles Wort auf dem label ausgeben
procedure WortAusgeben(WortAngezeigt: string); var i: Integer; begin Form1.Ratewort.Caption := ''; for i := 1 to Length(WortAngezeigt) do begin Form1.Ratewort.Caption := Form1.Ratewort.Caption + UpperCase(WortAngezeigt[i]); if i < Length(WortAngezeigt) then Form1.Ratewort.Caption := Form1.Ratewort.Caption + ' '; end; end; procedure TForm1.FormCreate(Sender: TObject); var i: Integer; begin Wort := 'DasKannstDuJaIrgendwoSelbstZuweisen'; // alles klein schreiben, damit der Vergleich nicht von // Groß-/Kleinbuchstaben abhängig ist Wort := LowerCase(Wort); Ratewort.Caption := ''; for i := 1 to Length(Wort) do WortAngezeigt := WortAngezeigt + '_'; WortAusgeben(WortAngezeigt); end; procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); var i: Integer; begin if Pos(LowerCase(Key), Wort) > 0 then begin for i := 1 to Length(Wort) do begin if Wort[i] = Key then WortAngezeigt[i] := Key; end; end; WortAusgeben(WortAngezeigt); end; Grüße, Matze |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz