unit Raten3A;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Label1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

const Max = 12;  // Ein Dutzend ist genug
var
  Form1: TForm1;
  Eingabe, Zufall, Versuche: Integer;
  SpielEnde: Boolean;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if SpielEnde then Close;
  try
    Edit1.SetFocus;
    Eingabe := StrToInt (Edit1.Text);
    inc (Versuche);
    // Versuche mitzählen und bei Max warnen
    if Versuche <= Max then
     Label2.Caption := IntToStr (Versuche) + '. Versuch:'
    else
      Label2.Caption := 'Es reicht!';
    // Eingabe auswerten ob zu klein oder zu groß
    if Eingabe = Zufall then
      Label1.Caption := 'Richtig geraten!';
    if Eingabe < Zufall then
      Label1.Caption := 'Deine Zahl ist zu klein!';
    if Eingabe > Zufall then
      Label1.Caption := 'Deine Zahl ist zu groß';
    // Wenn richtig geraten oder zu viele Versuche
    if (Eingabe = Zufall) or (Versuche > Max) then
    begin
      Button1.Caption := 'Ende';
      SpielEnde := true;
    end;
  except
    Label1.Caption := 'Quatsch!';
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Edit1.SetFocus;
  // Wenn neues Spiel, Startwerte/Zufallszahl neu
  Label1.Caption := 'Ich denke mir eine neue Zahl!';
  Label2.Caption := 'Rate mal!';
  Button1.Caption := 'OK';
  Zufall := random(1000) + 1;
  Versuche := 1;
  SpielEnde := false;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  randomize;
  Zufall := random(1000) + 1;
  Versuche := 1;
  SpielEnde := false;
end;

procedure TForm1.Label1Click(Sender: TObject);
begin
  Label1.Caption := 'Klick auf den Knopf!';
end;

end.
