Thema: Delphi Schleife wohin und wie?

Einzelnen Beitrag anzeigen

Benutzerbild von Jean-Luc_Picard
Jean-Luc_Picard

Registriert seit: 25. Feb 2009
6 Beiträge
 
#1

Schleife wohin und wie?

  Alt 5. Mär 2009, 11:54
Hallo zusammen,

ich habe mir hier ein Proggi geschrieben was folgendes tut.
Einlesen 2 Spielernamen, Würfelbereich (später zufallszahl) und Anzahl der Runden.

Wenn das Proggi dann startet und man die Felder füllt und auf start klickt erscheint eine 2. Form wo Spieler 1 und Spieler 2 eine Zahl eingeben dürfen.
Jetzt ermittelt das Programm wer näher dran ist und zeigt den Sieger an.

Jetzt kommt mein Problem:
Ich wollte eine Schleife bauen die so lange durch läuft wie man am Anfang die Anzahl der Runden eingibt.
Wenn ich im 2. Fenster auf den Button Würfeln klicke läuft die erste Runde, dann soll man wieder 2 Zahlen eingeben dürfen und
die nächste runde wenn wieder auf Würfeln geklickt wird.
Habe mir n Tutos durchgelesen wie Schleifen geschrieben werden.

Muss ich ich die Schleife über dem: procedure Tspiel.Button1Click(Sender: TObject); einstellen?
also so:
Zitat:
FOR...
procedure Tspiel.Button1Click(Sender: TObject);
...
FOR ENDE
Weil ich will ja immer das man in jeder Runde der Spieler1 und Spieler2 eine andere Zahl eingeben können und dann wieder auf den Button Würfeln klicken sollen.

Bis hier hin läuft das Proggi übrigens super.
Könnt ihr mir weiterhelfen bzw. eventuell zeigen wie ich das am besten Lösen kann?

Ich nutze auch Variablen die von einer Form in die andere übergeben werden für die Übernahme der Namen und runden und bereich.
Stehen unter PUBLIC. Hatte ich so nachgelesen und funktioniert super.

Das ist der erste Teil meines Programmes, für die Aufnahme der Spieloptionen:
Delphi-Quellcode:
unit start_programm;

interface

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

type
  Tstart = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    spieler1: TEdit;
    Label2: TLabel;
    spieler2: TEdit;
    ueberschrift: TLabel;
    GroupBox2: TGroupBox;
    Label3: TLabel;
    bereich: TEdit;
    Label4: TLabel;
    runden: TEdit;
    start: TButton;
    beenden: TButton;
    procedure beendenClick(Sender: TObject);
    procedure startClick(Sender: TObject);
  private
    { Private declarations }
  public
  player1, player2: String;
  range, round : integer;
    { Public declarations }
  end;

var
  start: Tstart;

implementation

uses das_spiel;

{$R *.dfm}

procedure Tstart.beendenClick(Sender: TObject);
begin
close;
end;

procedure Tstart.startClick(Sender: TObject);
begin
player1 := spieler1.Text;
player2 := spieler2.Text;

range := StrToInt(bereich.Text);
round := StrToInt(runden.Text);

spiel.showModal;
end;

end.

Hier ist der 2. Teil das Spiel selbst:
Delphi-Quellcode:
unit das_spiel;

interface

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

type
  Tspiel = class(TForm)
    ueberschrift: TLabel;
    p1: TGroupBox;
    Label1: TLabel;
    zahl_p1: TEdit;
    p2: TGroupBox;
    Label2: TLabel;
    zahl_p2: TEdit;
    Image1: TImage;
    Button1: TButton;
    Label3: TLabel;
    procedure FormActivate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  spiel: Tspiel;

implementation

uses start_programm;

{$R *.dfm}

procedure Tspiel.FormActivate(Sender: TObject);
begin
p1.Caption := start.player1;
p2.Caption := start.player2;
end;

procedure Tspiel.Button1Click(Sender: TObject);
var zahl_sp1, zahl_sp2, Erg1, Erg2, zufallszahl : integer;
begin
zahl_sp1 := StrToInt(zahl_p1.Text);
zahl_sp2 := StrToInt(zahl_p2.Text);

zufallszahl := 1 + Random(start.range);

Label3.Caption := IntToStr(zufallszahl);

Erg1 := Abs(zahl_sp1 - Zufallszahl);
Erg2 := Abs(zahl_sp2 - Zufallszahl);

if Erg1 = Erg2 then
begin
  ShowMessage('Beide Gleich');
end
else
if Erg1 > Erg2 then
begin
  ShowMessage('Spieler 2 hat gewonnen');
end
else
  ShowMessage(start.player1+' hat gewonnen');
end;

end.
Ich hoffe es ist nicht zu viel. Aber dachte mir ich Poste alles damit ihr besser klar kommt.
Ich bin neu in Delphi, habe vorher nur PHP,SQL, JavaScript und Makro und so programmiert und Versuche mich jetzt in Delphi

Vielen Dank schonmal!!!

Gruß, Picard
David
  Mit Zitat antworten Zitat