Programmierung mit Delphi

    • Programmierung mit Delphi

      Heissa,
      ich habe zwei Probleme mit einem selbstgebastelten Spiel für ein Info-Projekt, was mit Delphi programmiert werden soll.
      Projekt ist folgendes: Man sieht eine Wiese und vier Tiere: Reh, Wildschwein, Hase und Delphin. Je nachdem welches Tier man durch Anklicken abschießt, bekommt man 1, 2, 3 oder -3 Punkte.
      Nun haben sich aber mit der Zeit drei Probleme ergeben:

      1.) Die Tiere tauchen nach einmaligem Klicken alle vier auf einmal auf. Sie sollten aber nacheinander und zufällig erscheinen.
      2.) Der Spieler kann seinen Namen in einem Edit-Feld eingeben. Es soll eine Datei mit dem Spielernamen angelegt werden. Hab's mal damit versucht, den Spieler als Variable zu definieren und ihn dann mit "AssignFile(Datei, x.dat);" zu speichern...was irgendwie nicht klappt.
      3.) Wie kann ich ein Fenster aufrufen, was mir den Namen des Spielers mit der höchsten Punktzahl und dieselbige anzeigt?

      Wäre sehr froh, wenn ihr mir weiterhelfen können.
      Danke schonmal im Voraus!
      Zf.
      Es sind üblicherweise die, die die, die die die, die nichts wissen, aber im Gegensatz zu diesen glauben, zu wissen, im Wissen, dass sie wissen, belehren können.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von ZeldaFreak ()

    • Muss mal schauen ob ich den Code auch außerunterrichtlich kriege ^^". Könnte ihn also frühestens morgen on stellen.
      Welche Teile braucht ihr denn genau..? Oder den ganzen Code?
      Es sind üblicherweise die, die die, die die die, die nichts wissen, aber im Gegensatz zu diesen glauben, zu wissen, im Wissen, dass sie wissen, belehren können.
    • [Eintrag umeditiert]

      Ich post' jetzt gleich mal den ganzen Code, ja?


      unit Unit1;

      interface

      uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls;

      type
      TForm1 = class(TForm)
      Panel1: TPanel;
      Button1: TButton;
      Button2: TButton;
      Image1: TImage;
      Edit1: TEdit;
      Label1: TLabel;
      Button4: TButton;
      Edit2: TEdit;
      Label2: TLabel;
      Timer1: TTimer;
      Image2: TImage;
      Image3: TImage;
      Image4: TImage;
      Image5: TImage;
      Button5: TButton;
      Button3: TButton;
      procedure Button1Click(Sender: TObject);
      procedure Button2Click(Sender: TObject);
      procedure FormCreate(Sender: TObject);
      procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
      procedure Button4Click(Sender: TObject);
      procedure Image2Click(Sender: TObject);
      procedure Image3Click(Sender: TObject);
      procedure Image4Click(Sender: TObject);
      procedure Image5Click(Sender: TObject);
      procedure Timer1Timer(Sender: TObject);
      procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
      procedure Button5Click(Sender: TObject);
      procedure Button3Click(Sender: TObject);
      private
      { Private declarations }
      public
      { Public declarations }
      end;

      var
      Form1: TForm1;
      var Treffer, Delfin, Reh, Hase, Wildschwein, Kontrolle : Integer;

      type TSpieler = record
      Name:String[30];
      Treffer:Integer;
      end;

      var Datei : File of TSpieler;

      implementation

      {$R *.dfm}

      procedure TForm1.Button1Click(Sender: TObject);
      begin
      ShowMessage ('Schieße die Tiere ab, indem du auf sie klickst. Rehe bringen 1 Punkt, Windschweine 2 und Hasen 3 Punkte. Delfine bringen 3 Minuspunkte. Wenn du deinen Spielstand sichern willst, gib deinen vollständigen Namen an.');
      end;

      procedure TForm1.Button2Click(Sender: TObject);
      begin
      close;
      end;

      procedure TForm1.FormCreate(Sender: TObject);
      begin
      Randomize;
      Treffer:=0;
      Delfin:=0;
      Timer1.Enabled:=false;
      Timer1.Interval:=1000;

      Randomize;
      Treffer:=0;
      Reh:=0;
      Timer1.Enabled:=false;
      Timer1.Interval:=1000;

      Randomize;
      Treffer:=0;
      Hase:=0;
      Timer1.Enabled:=false;
      Timer1.Interval:=1000;

      Randomize;
      Treffer:=0;
      Wildschwein:=0;
      Timer1.Enabled:=false;
      Timer1.Interval:=1000;
      end;

      procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
      Var X,Y:Integer;
      begin
      X:=Image2.Left;
      Y:=Image2.Top;
      case key of
      VK_Escape: Close;
      VK_Up: Y:=Y-20;
      VK_Down: Y:=Y+20;
      VK_Left: X:=X-20;
      VK_Right: X:=X+20;
      end;
      Image2.Left:=X;
      Image2.Top:=Y;

      X:=Image3.Left;
      Y:=Image3.Top;
      case key of
      VK_Escape: Close;
      VK_Up: Y:=Y-20;
      VK_Down: Y:=Y+20;
      VK_Left: X:=X-20;
      VK_Right: X:=X+20;
      end;
      Image3.Left:=X;
      Image3.Top:=Y;

      X:=Image4.Left;
      Y:=Image4.Top;
      case key of
      VK_Escape: Close;
      VK_Up: Y:=Y-20;
      VK_Down: Y:=Y+20;
      VK_Left: X:=X-20;
      VK_Right: X:=X+20;
      end;
      Image4.Left:=X;
      Image4.Top:=Y;

      X:=Image5.Left;
      Y:=Image5.Top;
      case key of
      VK_Escape: Close;
      VK_Up: Y:=Y-20;
      VK_Down: Y:=Y+20;
      VK_Left: X:=X-20;
      VK_Right: X:=X+20;
      end;
      Image5.Left:=X;
      Image5.Top:=Y;
      end;

      procedure TForm1.Button4Click(Sender: TObject);
      begin
      Delfin:=0;
      Reh:=0;
      Hase:=0;
      Wildschwein:=0;
      Treffer:=0;
      Edit2.Text:=IntToStr(Treffer);
      Timer1.Enabled:=true;
      end;



      procedure TForm1.Image2Click(Sender: TObject);
      begin
      if (Delfin<11) AND (Kontrolle=1) then
      begin
      Treffer:=Treffer-3;
      Edit2.Text:=IntToStr(Treffer);
      Kontrolle:=0;
      end;
      end;

      procedure TForm1.Image3Click(Sender: TObject);
      begin
      if (Reh<11) AND (Kontrolle=1) then
      begin
      Treffer:=Treffer+1;
      Edit2.Text:=IntToStr(Treffer);
      Kontrolle:=0;
      end;
      end;

      procedure TForm1.Image4Click(Sender: TObject);
      begin
      if (Hase<11) AND (Kontrolle=1) then
      begin
      Treffer:=Treffer+3;
      Edit2.Text:=IntToStr(Treffer);
      Kontrolle:=0;
      end;
      end;

      procedure TForm1.Image5Click(Sender: TObject);
      begin
      if (Wildschwein<11) AND (Kontrolle=1) then
      begin
      Treffer:=Treffer+2;
      Edit2.Text:=IntToStr(Treffer);
      Kontrolle:=0;
      end;
      end;

      procedure TForm1.Timer1Timer(Sender: TObject);
      Var X1,Y1,X2,Y2,X3,Y3,X4,Y4:Integer;
      begin
      X1:=8+random(576);
      Y1:=64+random(304);
      X2:=8+random(632);
      Y2:=64+random(272);
      X3:=8+random(736);
      Y3:=64+random(368 );
      X4:=8+random(624);
      Y4:=64+random(320);
      Image2.Left:=X1;
      Image2.Top:=Y1;
      Image3.Left:=X2;
      Image3.Top:=Y2;
      Image4.Left:=X3;
      Image4.Top:=Y3;
      Image5.Left:=X4;
      Image5.Top:=Y4;
      Delfin:=Delfin+1;
      Reh:=Reh+1;
      Hase:=Hase+1;
      Wildschwein:=Wildschwein+1;
      Kontrolle:=1;
      if Delfin+Reh+Hase+Wildschwein>19 then
      Timer1.Enabled:=false;
      end;

      procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
      begin
      Image2.Left:=X;
      Image2.Top:=Y;
      Image3.Left:=X;
      Image3.Top:=Y;
      Image4.Left:=X;
      Image4.Top:=Y;
      Image5.Left:=X;
      Image5.Top:=Y;
      end;

      procedure TForm1.Button5Click(Sender: TObject);
      var Spieler : TSpieler;
      begin
      Spieler.Name:=(Edit1.Text);
      Spieler.Treffer:=StrToInt(Edit2.Text);
      AssignFile(Datei, 'spieler.dat');
      Reset(Datei);
      CloseFile(Datei);
      end;

      procedure TForm1.Button3Click(Sender: TObject);
      var Spieler : TSpieler;
      begin
      Spieler.Name:=Edit1.Text;
      AssignFile(Datei, Name.dat);
      Reset(Datei);
      ShowMessage(Spieler,Treffer);
      end;

      end.




      ~*~

      Button1: Spielanleitung
      Button2: Beenden
      Button3: Bisherige Ergebnisse
      Button4: Start
      Button5: Punkte speichern
      Image1: Wiese (Hintergrund)
      Image2: Delfin
      Image3: Reh
      Image4: Hase
      Image5: Wildschwein
      Edit1: Eingabe des Namens
      Edit2: Erreichte Punktzahl
      Es sind üblicherweise die, die die, die die die, die nichts wissen, aber im Gegensatz zu diesen glauben, zu wissen, im Wissen, dass sie wissen, belehren können.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von ZeldaFreak ()