Registriert seit: 2. Jun 2005
125 Beiträge
|
Re: Kartenspiel dynamische liste
17. Jul 2005, 11:48
es geht immer noch nicht:
ich poste mal was ich biser alles geschrieben hab.
Delphi-Quellcode:
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
Button1: TButton;
Edit1: TEdit;
Image1: TImage;
Image2: TImage;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
kortn : Timage;
public
{ Public declarations }
end;
Tforb = (herz,oachel,lupsn,schell);
Tschlog = (siebmor,ochtor,neiner,zehner,
unter,ober,kinig,ass);
Tzeiger = ^Tkortn;
Tkortn = record
forb : Tforb;
schlog : Tschlog;
next : Tzeiger;
end;
var
Form1: TForm1;
spieler : Tzeiger; // Kortn fan spieler
computer : Tzeiger; // Kortn fan pc
stapel : Tzeiger; // Kortn in Stapel
spiel : Tzeiger; // oiglege kortn
stapelanz : integer; // verbleibende kortn
implementation
{$R *.dfm}
procedure initstapel;
var
neu : Tzeiger;
i : Tforb;
j : Tschlog;
begin
stapel:=nil;
for i:=herz to schell do
for j:=siebmor to ass do
begin
new(neu);
neu^.next:=nil;
neu^.forb:=i;
neu^.schlog:=j;
if (stapel=nil) then
stapel:=neu
else
begin
neu^.next:=stapel;
stapel:=neu;
end;
end;
stapelanz:=32;
end;
procedure sortieren;
var
i,j,k : integer;
p,hilf : Tzeiger;
begin
randomize;
p:=stapel;
for i:=1 to 99999 do
begin
j:=random(30)+1;
for k:=1 to j do
begin
hilf:=p;
p:=p^.next;
end;
hilf^.next:=p^.next;
p^.next:=p^.next^.next;
hilf^.next^.next:=p;
p:=stapel;
end;
end;
procedure ausgeben;
begin
if stapelanz>0 then
form1.image2.Picture.LoadFromFile('C:\lol.jpg')
else
form1.image2.Picture.LoadFromFile('C:\lol2.jpg');
form1.kortn:= TImage.Create(form1);
form1.kortn.Parent:=form1;
form1.kortn.Left:=100;
form1.kortn.Top:=100;
form1.kortn.Width:=100;
form1.kortn.Height:=50;
form1.kortn.Picture.LoadFromFile('C:\bild005.jpg');
end;
procedure kortengeben(var liste : Tzeiger;anz : integer);
var
i : integer;
p : Tzeiger;
begin
liste:=stapel;
p:=stapel;
for i:=1 to anz do
stapel:=stapel^.next;
for i:=1 to (anz-1) do
p:=p^.next;
p^.next:=nil;
stapelanz:=stapelanz-anz;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
initstapel;
sortieren;
kortengeben(spieler,5);
kortengeben(computer,5);
kortengeben(spiel,1);
ausgeben;
end;
end.
|
|
Zitat
|