Thema: Delphi Memory für "Anfänger"

Einzelnen Beitrag anzeigen

Saul
(Gast)

n/a Beiträge
 
#23

Re: Memory für "Anfänger"

  Alt 30. Dez 2007, 18:02
BOAH ich habs satt. Ich finde meine Fehler nicht
Könnt ihr da nochmal einen blick drüber werfen?

irgendetwas stimmt da mit dem mischen nicht
Code:
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.
  Mit Zitat antworten Zitat