unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ComCtrls, Menus;
type
TForm1 = class(TForm)
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Image6: TImage;
Button1: TButton;
Button2: TButton;
TrackBar1: TTrackBar;
procedure FormCreate(Sender: TObject);
procedure ImageClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
zweiteKarte: Boolean = True;
Bild1, Bild2, Bild3, Anzahl, zufall, i, k: Integer;
Bild: Array[1..3] of String; //Bildernamen
Platz: Array[1..6] of Integer; //Bildnummer
Nummer: Array[1..6] of Integer; //Bildnummer 2
Name1, Name2 ,Name3: String; //Imagename für Deckblatt
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
randomize; // Zufallszahlengenerator aktivieren
Button1.OnClick(self);
end;
// Karten neu
procedure TForm1.Button1Click(Sender: TObject);
begin
// verdeckt
Image1.Picture.LoadFromFile('Bilder/Deckblatt.bmp');
Image2.Picture.LoadFromFile('Bilder/Deckblatt.bmp');
Image3.Picture.LoadFromFile('Bilder/Deckblatt.bmp');
Image4.Picture.LoadFromFile('Bilder/Deckblatt.bmp');
Image5.Picture.LoadFromFile('Bilder/Deckblatt.bmp');
Image6.Picture.LoadFromFile('Bilder/Deckblatt.bmp');
// offen
Bild[1]:= 'Bilder/HUND01.BMP';
Bild[2]:= 'Bilder/HUND02.BMP';
Bild[3]:= 'Bilder/HUND03.BMP';
// gemischt platzieren
Platz[1]:= 1;
Platz[2]:= 2;
Platz[3]:= 3;
Platz[4]:= 1;
Platz[5]:= 2;
Platz[6]:= 3;
Anzahl := 6;
while Anzahl > 0 do { Die Karten mischen }
begin
zufall:= random(Anzahl)+1; // eine Karte aus dem Stapel ziehen
Nummer[Anzahl]:= Platz[zufall]; // und auf letzten freien Platz auslegen
for k:= zufall to Anzahl-1 do // restliche Karten einen Platz nach vorn
begin
Platz[k]:= Platz[k+1];
end;
Anzahl:= Anzahl - 1; // Der Stapel ist nun kleiner geworden
end;
end;
// Karten aufdecken
procedure TForm1.ImageClick(Sender: TObject);
begin
zweiteKarte:= not(zweiteKarte);
i:= StrToInt(TImage(sender).Name[6]);
TImage(sender).Picture.LoadFromFile(Bild[Platz[i]]);
Name1:= TImage(sender).Name;
If zweiteKarte
then begin
Bild1:= i;
Name1:= TImage(Sender).Name;
end
else begin
Bild2:= i;
Name2:= TImage(Sender).Name;
end;
If zweiteKarte
then If Platz[Bild1] <> Platz[Bild2]
then begin
MessageDlgPos('Gesehen?', mtConfirmation, mbYesNoCancel,0,400,400);
for k:= 0 to componentcount-1 do
if (TImage(components[k]).Name=Name1) or (TImage(components[k]).Name=Name2)
Then TImage(components[k]).Picture.LoadFromFile('Bilder/Deckblatt.bmp');
end
else
end;
end.