Delphi-PRAXiS
Seite 10 von 15   « Erste     8910 1112     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Ein Spiel mit Delphi programmieren (https://www.delphipraxis.net/152246-ein-spiel-mit-delphi-programmieren.html)

haentschman 20. Jun 2010 11:07

AW: Ein Spiel mit Delphi programmieren
 
der nächste Schritt ist wie gesagt, das Projekt anhängen und den Programmablauf auf Papier aufschreiben.

danielZ 20. Jun 2010 11:10

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.

Sir Rufo 20. Jun 2010 11:12

AW: Ein Spiel mit Delphi programmieren
 
Zitat:

Zitat von danielZ (Beitrag 1030224)
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?

Nutze die Delphi-Tags (Das ist der lustige Delphi-Helm - wurde hier auch schon mal gesagt!)

haentschman 20. Jun 2010 11:15

AW: Ein Spiel mit Delphi programmieren
 
zu den Fehlern:

Zitat:

begin randomize; end;
- das end dürfte zu viel sein. Daraus resultieren einige Fehler.
- randomize nur einmal aufrufen. Am besten im OnCreate des Formulars.
Zitat:

end;//of case
- noch ein end zu viel

DeddyH 20. Jun 2010 11:16

AW: Ein Spiel mit Delphi programmieren
 
Irgendwie passt der Quelltext aber nicht zum geposteten Formular. Hast Du jetzt eine Imageliste oder 12 Einzelimages?

Teekeks 20. Jun 2010 11:18

AW: Ein Spiel mit Delphi programmieren
 
Zitat:

Zitat von danielZ (Beitrag 1030224)
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?

Du meinst abgesehen davon das du deine "Formeln" einfach nur da rein Kopiert hast ohne irgendwas zu verändern?
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...

danielZ 20. Jun 2010 11:21

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?

Sfaizst 20. Jun 2010 11:23

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....

DeddyH 20. Jun 2010 11:24

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.

Sir Rufo 20. Jun 2010 11:31

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 10:03 Uhr.
Seite 10 von 15   « Erste     8910 1112     Letzte »    

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