![]() |
AW: Ein Spiel mit Delphi programmieren
der nächste Schritt ist wie gesagt, das Projekt anhängen und den Programmablauf auf Papier aufschreiben.
|
AW: Ein Spiel mit Delphi programmieren
habe sie jetzt einfach so hingemacht, nur bei mir zeigen sich noch 14 Fehler an.
Kann mir da jemand bei den proceduren helfen, was ich falsch gemacht habe etc. Muss bis morgen fertig werden. Danke schonmal Hier meine proceduren: Was haltet ihr davon, was muss ich da verbessern?
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ImgList, ExtCtrls; type TForm1 = class(TForm) EinsatzLbl: TLabel; EndeBtn: TButton; ImageList1: TImageList; GuthabenLbl: TLabel; EinsatzCbB: TComboBox; Label1: TLabel; TButton: TButton; Image1: TImage; Image2: TImage; procedure EndeBtnClick(Sender: TObject); procedure TButtonClick(Sender: TObject); private { Private-Deklarationen} public { Public-Deklarationen} end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.EndeBtnClick(Sender: TObject); begin close; end; procedure TForm1.TButtonClick(Sender: TObject); var einsatz, guthaben, wurf1, wurf2, augensumme: byte; begin randomize; end; Image1.Visible:=false; Image2.Visible:=false; Image3.Visible:=false; Image4.Visible:=false; Image5.Visible:=false; Image6.Visible:=false; Image7.Visible:=false; Image8.Visible:=false; Image9.Visible:=false; Image10.Visible:=false; Image11.Visible:=false; Image12.Visible:=false; einsatz:=strtoint (einsatzCbB.text); Wurf1:=random(6)+1; wurf2:=random(6)+1; augensumme:=wurf1+wurf2; case augensumme OF 2..6:BEGIN ErgebnisPanel.Caption:='Einsatz verloren'; faktor:= 0 ; end; 7,8,9:BEGIN ErgebnisPanel.Caption:='Einsatz zurück'; faktor:= 1; end; 10:=BEGIN ErgebnisPanel.Caption:=Einsatz verdoppelt'; faktor:= 2; end; 11:=BEGIN ErgebnisPanel.Caption:='Einsatz verdreifacht'; faktor:= 3; end; 12:=BEGIN ErgebnisPanel.Caption:='Einsatz vervierfacht'; faktor:= 4; end; else ErgebnisPanel.Caption:='Würfel auf Kippe :P'; case wurf1 OF 1: BEGIN Image1.visible:=true; Image1.width:=80;end; 2: BEGIN Image2.visible:=true; Image2.width:=80;end; 3: BEGIN Image3.visible:=true; Image3.width:=80;end; 4: BEGIN Image4.visible:=true; Image4.width:=80;end; 5: BEGIN Image5.visible:=true; Image5.width:=80;end; 6: BEGIN Image6.visible:=true; Image6.width:=80;end; END; case wurf2 OF 1:BEGIN Image7.visible:=true; Image7.width:=80;end; 2.BEGIN Image8.visible:=true; Image8.width:=80;end; 3.BEGIN Image9.visible:=true; Image9.width:=80;end; 4.BEGIN Image10.visible:=true; Image10.width:=80;end; 5.BEGIN Image11.visible:=true; Image11.width:=80;end; 6.BEGIN Image12.visible:=true; Image12.width:=80;end; end; end;//of case ;-) Ergebnis2Panel.caption:=inttostr(faktor*einsatz); end; end. |
AW: Ein Spiel mit Delphi programmieren
Zitat:
|
AW: Ein Spiel mit Delphi programmieren
zu den Fehlern:
Zitat:
- randomize nur einmal aufrufen. Am besten im OnCreate des Formulars. Zitat:
|
AW: Ein Spiel mit Delphi programmieren
Irgendwie passt der Quelltext aber nicht zum geposteten Formular. Hast Du jetzt eine Imageliste oder 12 Einzelimages?
|
AW: Ein Spiel mit Delphi programmieren
Zitat:
Du könntest z.B. schon mal das ganze an nur 2 Images anpassen und nicht in deinen "Formeln" noch munter weiter die 12 Images verwenden wollen. Dann könntest du bei der Gelegenheit auch gleich die Namen der anderen Knöpfe mit anpassen. Ich fasse es einfach nicht das du nach 10 Seiten Diskussion was du wie machen sollst immer noch exakt den selben Sorcecode verwendest... |
AW: Ein Spiel mit Delphi programmieren
ich habe eine imageliste und dann habe ich die bilder da von allen sechs möglichkeiten hinzugefügt
was meinte ihr damit:- randomize nur einmal aufrufen. Am besten im OnCreate des Formulars? |
AW: Ein Spiel mit Delphi programmieren
Von einer Imagelist sieht man ein deiner Source gar nichts,
deine Fehler kommen daher, dass du ein end; nach dem randomize im button hast und danach fleißig weiter schreibst, zudem hast du ein else nach einer case anweisung (...) und einige andere nette fehler *edit: sorry, eine Imagelist sieht man schon, aber nicht deren verwendung.... |
AW: Ein Spiel mit Delphi programmieren
*Nach Luft schnapp* Mach einen Doppelklick auf die Form und pack dann dort in den Quältext das Randomize rein, an der anderen Stelle wieder raus. Herrgott, stell Dich doch nicht so dusselig an.
|
AW: Ein Spiel mit Delphi programmieren
So jetzt sind die gröbsten (Schreib-)Fehler raus (und auch mal vernünftig formatiert)
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ImgList, ExtCtrls; type TForm1 = class( TForm ) EinsatzLbl : TLabel; EndeBtn : TButton; ImageList1 : TImageList; GuthabenLbl : TLabel; EinsatzCbB : TComboBox; Label1 : TLabel; Button1 {TButton} : TButton; // Eine Instanz NIE wie die Klasse benennen! Image1 : TImage; Image2 : TImage; procedure EndeBtnClick( Sender : TObject ); procedure TButtonClick( Sender : TObject ); private { Private-Deklarationen} public { Public-Deklarationen} end; var Form1 : TForm1; implementation {$R *.DFM} procedure TForm1.EndeBtnClick( Sender : TObject ); begin close; end; procedure TForm1.Button1Click( Sender : TObject ); var einsatz, guthaben, wurf1, wurf2, augensumme : byte; begin randomize; // Das sollte nur EINMAL in der Anwendung aufgerufen werden // end; // <- Das muss weg Image1.Visible := false; Image2.Visible := false; Image3.Visible := false; Image4.Visible := false; Image5.Visible := false; Image6.Visible := false; Image7.Visible := false; Image8.Visible := false; Image9.Visible := false; Image10.Visible := false; Image11.Visible := false; Image12.Visible := false; einsatz := strtoint( EinsatzCbB.text ); wurf1 := random( 6 ) + 1; wurf2 := random( 6 ) + 1; augensumme := wurf1 + wurf2; case augensumme of 2 .. 6 : begin ErgebnisPanel.Caption := 'Einsatz verloren'; faktor := 0; end; 7, 8, 9 : begin ErgebnisPanel.Caption := 'Einsatz zurück'; faktor := 1; end; 10 : {=} begin // Das = muss weg! ErgebnisPanel.Caption := 'Einsatz verdoppelt '; // Ein ' fehlte faktor := 2; end; 11 : {=} begin // Das = muss weg! ErgebnisPanel.Caption := 'Einsatz verdreifacht'; faktor := 3; end; 12 : {=} begin ErgebnisPanel.Caption := 'Einsatz vervierfacht'; faktor := 4; end; else ErgebnisPanel.Caption := 'Würfel auf Kippe '; end; // Das fehlte hier case wurf1 of 1 : begin Image1.Visible := true; Image1.width := 80; end; 2 : begin Image2.Visible := true; Image2.width := 80; end; 3 : begin Image3.Visible := true; Image3.width := 80; end; 4 : begin Image4.Visible := true; Image4.width := 80; end; 5 : begin Image5.Visible := true; Image5.width := 80; end; 6 : begin Image6.Visible := true; Image6.width := 80; end; end; case wurf2 of 1 : begin Image7.Visible := true; Image7.width := 80; end; // . durch : ersetzt 2 : begin Image8.Visible := true; Image8.width := 80; end; 3 : begin Image9.Visible := true; Image9.width := 80; end; 4 : begin Image10.Visible := true; Image10.width := 80; end; 5 : begin Image11.Visible := true; Image11.width := 80; end; 6 : begin Image12.Visible := true; Image12.width := 80; end; end; // end; // of case // Da ist das End, was oben fehlte ... hier ist es zu viel Ergebnis2Panel.Caption := inttostr( faktor * einsatz ); end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:42 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 by Thomas Breitkreuz