Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Hangman Projekt für Info: Fragen über Fragen (https://www.delphipraxis.net/24805-hangman-projekt-fuer-info-fragen-ueber-fragen.html)

Blub 30. Jun 2004 19:42

Re: Hangman Projekt für Info: Fragen über Fragen
 
Zitat:

Zitat von Toxman
Warum probiert ihr denn jeden Buchstaben aus? einamam pos anwenden und wenn ein ergebniss zurückkommt (>0) ist der Buchstabe drin.

:wiejetzt:

bitte ne kleine erklärung ^^

xineohp 30. Jun 2004 19:44

Re: Hangman Projekt für Info: Fragen über Fragen
 
Zitat:

Zitat von Toxman
Warum was neu schreiben, was es doch schon frei Haus gibt???

Mein Vorschlag:

Delphi-Quellcode:
Buchstabe:=edit1.text;
Wort:=edit2.text;
if pos(Buchstabe,Wort)>0 then
  label1.caption:='drin'
else
  label1.caption:='draussen';

Zitat:

Zitat von The Fine Manual
Beschreibung
Pos sucht in dem String S nach dem Teil-String Substr. Wird der Teil-String gefunden, gibt Pos den Integer-Index des ersten Zeichens von Substr in S zurück. Ist Substr nicht vorhanden, wird der Wert Null zurückgegeben.



Blub 30. Jun 2004 21:02

Re: Hangman Projekt für Info: Fragen über Fragen
 
ahh ja.... gut. Habsch vorher nich gesehn :mrgreen:

Blub 10. Jul 2004 11:21

Re: Hangman Projekt für Info: Fragen über Fragen
 
sooo.....

Hab mich mal durchgerungen und mich mal wieder an mein Hangman Projekt gesetzt.
Hab mal die Toxman'sche Variante ausprobiert, allerdings mit dem gleichen Problem, wie mit meiner if-then-else Konstruktion:Das Ausgabelabel springt ständig zwischen "drin" und "draußen" hin und her!
Ich schätze mal, das irgendwas mit dem Timer noch nicht so stimmt.

vlees91 10. Jul 2004 11:41

Re: Hangman Projekt für Info: Fragen über Fragen
 
Liste der Anhänge anzeigen (Anzahl: 1)
ich hab(ohne das ich hiervon wusste) zufällig ein billiges hangman programmiert
es ist nichts grafisches einfach nur schlicht und einfach

Nikolas 10. Jul 2004 11:42

Re: Hangman Projekt für Info: Fragen über Fragen
 
Was war das denn? Einmal reicht doch.

Kleine Frage: Für was hast du einen Timer?
Ich würde doch dagen, du checkst einmal nach dem der User einen Button gedrückt hat ob der Buchstabe vorhanden ist oder nicht. Wenn du in dem Timer den Buchstaben aus dem edit ziehst und dann vergleichst, fänd ich dass als User nicht so gut, denn vielleicht überleg ich's mir nochmal und will einen anderen Buchstaben eingeben und nun ist's zu spät.
Ein Timer ist nur dann sinnvoll, wenn der Benutzer das Spiel auf Zeit spielen soll. Zeig doch mal deinen Timer, ist wahrscheinlich nur ein kleiner Fehler drin.

Blub 14. Jul 2004 09:04

Re: Hangman Projekt für Info: Fragen über Fragen
 
Ich find meine Idee mit dem Timer garnet schlecht :D Der User muss sich halt vorher überlegen, ob er den Buchstaben eingibt, den er in dem gesuchten Wort vermutet. Mich als User würde es glaub ich mehr abstressen, wenn ich jedesmal nen Buton drücken müsste, um den Buchstaben zu checken. Ich geh immer von extrem faulen usern aus *g*

Blub 25. Aug 2004 13:59

Re: Hangman Projekt für Info: Fragen über Fragen
 
HILFE!!!!
Mein Hangman muss bis nächsten Dienstag fertig sein!! Aber wie das eigentlich immer so ist fängt der Schüler von heute ca. eine Woche vorher an sich gedanken zu machen, wie er denn sein Projekt fertigstellen soll!!!:wall:
Auf jedenfall hab ich mich grad wieder hingesetzt und meinen Quelltext durchgeschaut, und der sieht für mich auch irgendwie logisch aus! Allerdings funzter net :evil:

Hier soweit mein Code, bei dem ich igendwo Fehler vermute:

Delphi-Quellcode:
//Funktion zum prüfen, ob der Buchstabe enthalten ist.

function BuchstabeEnthalten (Buchstabe,RateWort:String): boolean;
var i,n: integer;
    Enthalten: boolean;
begin
 Enthalten:=false;
 n:=WortLaenge(RateWort);
  for i:=1 to n do
   if RateWort[i]=Buchstabe then
   Enthalten:= true else                            
   Enthalten:=false;

 BuchstabeEnthalten:= Enthalten;
end;
und

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var B:String;
begin
B:=Edit1.Text;

If Edit1.Text <> '' then
 if BuchstabeEnthalten(B,RateWort)=true then
 Label2.Caption:='ok' else
 Label2.Caption:='nö'
else
Label2.Caption:='bitte was eingeben';
end;
Ich hoffe echt, dass ihr mir hierbei weiterhelfen könnt.

Außerdem müsst ich noch wissen, ob bzw. wie ich Delphi sagen kann, dass der bei einer Canvas jedesmal einen Strich mehr macht, wenn ein Fehler gemacht wurde, bzw wie ich Delphi sagen kann, dass er jedesmal ein neues Bild lädt, wenn ein Fehler gamcht wurde. Wobei mir das mit den Bildern irgendwie lieber wär :-D

VIELEN DANK FÜR EURE HILFE!!!

Steve 25. Aug 2004 14:07

Re: Hangman Projekt für Info: Fragen über Fragen
 
Hi,
lass mal den Else-Teil weg, sonst wird nur zurückgegeben, ob der LETZTE Buchstabe dem geratenen entspricht.

Delphi-Quellcode:
//Funktion zum prüfen, ob der Buchstabe enthalten ist.

function BuchstabeEnthalten (Buchstabe,RateWort:String): boolean;
var i,n: integer;
    Enthalten: boolean;
begin
Enthalten:=false;
n:=WortLaenge(RateWort);
  for i:=1 to n do
   if RateWort[i]=Buchstabe then
   Enthalten:= true
// Else-Teil weglassen!!
// else                            
//   Enthalten:=false;

BuchstabeEnthalten:= Enthalten;
end;
PS: Zum Prüfen, wo genau Dein Fehler auftritt, debugge an der entsprechenden Stelle via Haltepunkt (F5) und schrittweiser Ausführung des Codes (F7,F8)

Gruß
Stephan

Nikolas 25. Aug 2004 14:28

Re: Hangman Projekt für Info: Fragen über Fragen
 
äähm, Blub? Warum nimmst du nicht einfach pos??? Wurde doch schon früher vorgeschlagen und ist genau das, was du da grad so schön umschreiben willst.
Delphi-Quellcode:
function BuchstabeEnthalten (Buchstabe,RateWort:String): boolean;
begin
result:=false;
if pos(Buchstabe, RateWort)>0 then result := true;
end;
Fertig. :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:36 Uhr.
Seite 4 von 5   « Erste     234 5      

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