Hey.
Ich habe mich dazu entschlossen mich in diesem Forum zu registrieren, da ich schon häufig bei Probleme hier Rat gefunden habe.
Jetzt ist jedoch so, dass ich keinen Beitrag finden kann, der sich mit meinem Problem befasst oder ich hab keinen gefunden...
Aber nun zu meinem Problem.
Ich bin dabei ein Spiel zu programmieren, soweit so gut.
Es geht um das vielleicht bekannte Spiel "Bewejeled" in einer vereinfachten Ausführung.
Dem Programm soll es möglich sein, den Inhalt von den einzelnen Zellen zu überprüfen und 2 Felder zu tauschen, per Mausklick, falls dadurch 3 Steine der selben Farbe nebeneinander gelangen. Diese 3 Felder sollen dann gelöscht werden und durch die oben liegenden ersetzt werden wodurch erreicht wird, dass die Steine von oben runterfallen und oben neue eingefügt werden.
Ich stecke nun jedoch fest, ich habe es schon geschafft, dass die Steine zufällig in meinem StringGrid angeordnet werden, jedoch stehe ich jetzt auf dem Schlauch
sitze jetzt schon was länger davor und es will mir einfach nicht in Kopf kommen, wie ich weiter machen muss...
Zunächst würde es mir schon reichen, wenn mir jemand beantworten könnte:
Wie erklär ich meinem Programm, wenn 3 Zellen nebeneinander mit dem gleichen Image gefüllt sind, dass er diese löschen soll und die von oben übernimmt, sofern oben ein Image geladen ist.
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, ExtCtrls;
type
TForm1 =
class(TForm)
StringGrid1: TStringGrid;
Image1: TImage;
Image2: TImage;
Image4: TImage;
procedure FormCreate(Sender: TObject);
procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure Image4Click(Sender: TObject);
private
procedure bimageload;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Steine:
array[0..6]
of TBitmap;
implementation
{$R *.dfm}
procedure TForm1.bimageload;
var x: integer;
begin
randomize;
x:= random(16);
Image1.Picture.LoadfromFile('
backdrop' + InttoStr(x) + '
.bmp');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
bimageload;
Image2.Picture.LoadfromFile('
Play_.bmp');
Image4.Picture.LoadFromFile('
Quit_.bmp');
end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var x,i:integer;
begin
randomize;
x:=random(6);
for i:=0
to 6
do begin
Steine[i]:=TBitmap.Create;
Steine[i].LoadfromFile(InttoStr(i)+'
.bmp');
end;
stringgrid1.Canvas.Draw(rect.left, rect.top, (steine[x]));
end;
procedure TForm1.Image4Click(Sender: TObject);
begin
close;
end;
Ich wäre froh wenn mir da jemand helfen könnte.