![]() |
Re: hangman programm - delphi 3
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Abend,
habe mal in deinem Quelltext herumgeschrieben. - eine ImageList hinzugefügt (die Bilder mußt Du noch selber hineinladen) - einen Fehlerzähler implementiert (wie Rollstulfahrer schon beschrieben hat) Was passiert wenn der Galgen fertig ist (nach 12 Fehlversuchen)? Das mußt Du auch noch implementieren. Meine Schritte habe ich soweit wie möglich kommentiert. Grüße Klaus |
Re: hangman programm - delphi 3
Danke an euch, wir werden uns morgen oder am Mittwoch mal im Informatik-Unterricht dransetzen und dannach Bericht erstatten :)
|
Re: hangman programm - delphi 3
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Leute,
Erstmals danke an alle die uns weiter geholfen haben. Im Moment funktioniert das Programm, jedoch haben wir mit dem Zeichnen wir noch ein paar Schwierigkeiten. Wir können nur einen Stirch beim 1. Fehler zeichen. Beim 2. Fehler zeichnet das Programm nicht weiter und reagiert überhaupt nicht. Es wäre sehr nett, wenn sich jemand nochmal unseren Quelltext angucken könnte. Wir kommen leider kein Stück weiter. Viele Grüße Eduard |
Re: hangman programm - delphi 3
Delphi-Quellcode:
Da fehlen begin und end.with ImBild.Canvas do begin if falsch = 1 then moveto (50,150); lineto (50,250); if falsch = 2 then moveto (50,250); lineto (150,250);
Delphi-Quellcode:
if falsch = 1 then begin moveto (50,150); lineto (50,250); end; if falsch = 2 then begin moveto (50,150);//50, 250 gibt es nicht, da das TImage nur eine Höhe von 225 Pixeln hat lineto (150,150); end; |
Re: hangman programm - delphi 3
Außerdem würde ich das ganze Zeichnen ins OnPaint des Image verschieben (noch besser statt des Image eine Paintbox nehmen) und dort falsch auswerten.
[edit] Ich meine damit natürlich die Variable "falsch" :lol: [/edit] |
Re: hangman programm - delphi 3
Hallo,
in Deinem Code fehler so einige begin und ends. Wenn Du in einer if Abfrage mehrere Befehle ausführen wills solltest Du diese in begin end einfassen. Ansonsten wird nur der erste Befehl ausgeführt. Der zweite wird unabhängig vom Ausgang der if Abfrage im ausgegührt.
Delphi-Quellcode:
Übersichtlicher würde es auch, wenn Du case statements verwenden würdest:
if erraten = 0 then
begin falsch := falsch + 1; LbFehler.Caption := IntToStr(falsch); with ImBild.Canvas do begin if falsch = 1 then begin // fehlt bei Dir moveto (50,150); lineto (50,250); end // fehlt auch bei Dir end; end;
Delphi-Quellcode:
Grüße
with ImBild.Canvas do
begin ... case falsch of 1: begin ... end; 2: begin ... end; end //case end // with Klaus |
Re: hangman programm - delphi 3
case halte ich in diesem Fall nicht für sinnvoll. Ich würde das eher so machen:
Delphi-Quellcode:
procedure TFrmHangman.ImBildPaint(Sender: TObject);
begin ImBild.Canvas.Pen.Color := clBlack; if falsch > 0 then begin ImBild.Canvas.moveto (50,150); ImBild.Canvas.lineto (50,220); end; if falsch > 1 then begin ImBild.Canvas.moveto (50,220); ImBild.Canvas.lineto (80,220); end; end; |
Re: hangman programm - delphi 3
Zitat:
Ich denke, die anderen Zeichenschritte hat Eduard noch nicht in den Code geschrieben. |
Re: hangman programm - delphi 3
Das war mir auch klar, ich schreib doch anderen nicht das Programm fertig, es ging mir um das Prinzip *koppschüttel*
|
Re: hangman programm - delphi 3
Warum in dem Zitat von bigben37 das steht:
Delphi-Quellcode:
und im Original von DeddyH
if falsch < 1 then
Delphi-Quellcode:
ist mir ein Rätsel.
if falsch > 1 then
Aber es macht schon Sinn immer auf if falsch > x zu prüfen, denn dann wird die Grafik immer wieder neu gezeichnet. Im Fall von Case werden nur die neuen Teile des Hangmans gezeichnet. Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:53 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