procedure TForm1.Button1Click(Sender: TObject);
var
ainit:array[1..54] of boolean;
i,j,k:integer;
begin
for i:=1 to 54 do
ainit[i]:=false;
randomize();
for i:=1 to 54 do begin
abutton[i].Tag:=random(55-i)+1;
k:=0;
for j:=1 to abutton[i].Tag do
begin
k:=k+1;
while ainit[k] do
begin
k:=k+1;
end;
end;
ainit[k]:=true;
abutton[i].Tag:=k;
abutton[i].Picture.Bitmap.LoadFromResourceName(hinstance,('lv'+inttostr(139+k)));
end;
end;
以上的第三个FOR循环我怎么也不能理解,哎,真是太笨了,脑子总是转不过来,请高手帮忙啊,谢谢,请帮我详细解释一下上面的算法,abutton是timage类,这个不重要的
var
ainit:array[1..54] of boolean;
i,j,k:integer;
begin
for i:=1 to 54 do
ainit[i]:=false;
randomize();
for i:=1 to 54 do begin
abutton[i].Tag:=random(55-i)+1;
k:=0;
for j:=1 to abutton[i].Tag do
begin
k:=k+1;
while ainit[k] do
begin
k:=k+1;
end;
end;
ainit[k]:=true;
abutton[i].Tag:=k;
abutton[i].Picture.Bitmap.LoadFromResourceName(hinstance,('lv'+inttostr(139+k)));
end;
end;
以上的第三个FOR循环我怎么也不能理解,哎,真是太笨了,脑子总是转不过来,请高手帮忙啊,谢谢,请帮我详细解释一下上面的算法,abutton是timage类,这个不重要的
解决方案 »
- 小问题,急盼回答.
- 急,BDS2006 如何安装控件?
- 请问打开Ie后怎么修改Ie地址栏里的值?急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
- 怎样把两副图片合在一起?又可以分开?
- 系统强制结帖通知
- 欢迎踊跃讨论!如何使得delphi编的exe或dll最小!
- 为什么oracle表只能增加字段不能删除字段
- idtcpserver+ado 丢包问题
- 有没人兴趣讨论下动态报表怎么做 没分啦 不是我小气
- 大家说的数据库SQLSERVER是怎么与DELPHI连接的啊!
- 怎样看到以前的帖子啊?
- Delphi6.0或7.0自带的InstallShield for Borland的怎样打包中文名的文件?
ainit: array[1..54] of boolean;
i, j, k, T: integer;
begin
for i := 1 to 54 do ainit[i] := false; //标记每张没都没被抽出
randomize(); //播下随机种子
for i := 1 to 54 do begin
T := random(55 - i) + 1; //随机从第几张开始抽牌
k := 0; //记数
for j := 1 to T do begin
k := k + 1;
while ainit[k] do //如果已经被抽过则跳到下一张
k := k + 1;
end;
ainit[k] := true; //打上被抽过的标记
T := k;
end;
end;//--------------------------------------------------------------------
var
vList: TList;
I, J, T: Integer;
begin
Randomize; //播下随机种子
vList := TList.Create;
try
for I := 1 to 54 do vList.Add(Pointer(I)); //得到一副顺序排列的扑克
for I := 1 to 54 do begin
J := Random(vList.Count); //从余下的扑克中随机选一张
T := Integer(vList.Items[J]);
vList.Delete(J); //抽取完后从列表中删除 AButton[I].Tag := T;
AButton[I].Picture.Bitmap.LoadFromResourceName(HInstance,
Format('lv%d', [139 + T]));
end;
finally
vList.Free;
end;
end;