AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hangman Problem

Ein Thema von ection · begonnen am 2. Mai 2007 · letzter Beitrag vom 2. Mai 2007
Antwort Antwort
ection

Registriert seit: 2. Mai 2007
1 Beiträge
 
#1

Hangman Problem

  Alt 2. Mai 2007, 18:01
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
Vielleicht könntet ihr mir eine Erklärung zumindest vom Ansatz her geben

Danke!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Hangman Problem

  Alt 2. Mai 2007, 18:36
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:
// 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;
Viel Spaß.

Grüße, Matze
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz