注册 登录
编程论坛 Delphi论坛

我真很笨研究了好久一直不会冒泡排序选怪,谁指点下

shfdljz 发布于 2013-01-18 12:19, 748 次点击
var
monid,Goods,Goods1:PDWORD;
i:DWord;
goodsName:PAnsiChar;
strName:string;
begin
if self.CheckBox9.Checked then
for i:=0 to 80 do
begin
Goods:=Pointer(PGameBase);
Goods:=Pointer(Goods^+I*4);
monid:=Pointer(Goods^+$20);  //+80怪物ID
Goods1:=Pointer(Goods^+$90);  //+90怪物与人的距离 浮点
GoodsName:=Pointer(Goods^+$10B);  //读出了名字
GoodsName:=Pointer(Goods^);
StrName:=(GoodsName);
if strName<>Edit1.Text then continue ;   //这里简单的设置下
pickgoods55(monid^);     //pickgoods55();ID攻击
end;
end;

我知道冒泡排序不知道怎么写,谁能发发善心帮帮我 在我的写代码下下去,按怪物与人的距离
先打最近的怪物
6 回复
#2
shfdljz2013-01-19 10:53
哪个好心人求求你帮帮我
#3
有容就大2013-01-19 17:04
需求没描述清楚啊。
#4
shfdljz2013-01-20 17:16
var
monid,Goods,Goods1:PDWORD;
i:DWord;
goodsName:PAnsiChar;
strName:string;
begin
if self.CheckBox9.Checked then
for i:=0 to 80 do
begin
Goods:=Pointer(PGameBase);
Goods:=Pointer(Goods^+I*4);
monid:=Pointer(Goods^+$20);  //+80怪物ID
Goods1:=Pointer(Goods^+$90);  //+90怪物与人的距离 浮点 主要在这里Goods1 的值是遍历所有怪物与人物的距离
GoodsName:=Pointer(Goods^+$10B);  //读出了名字
StrName:=(GoodsName);
if strName<>Edit1.Text then continue ;   //这里简单的设置下,在Edit1里输入怪物名字就可以打怪(但没有距离要求)
pickgoods55(monid^);     //pickgoods55();pickgoods55 是用怪物ID的技能攻击 里面的monid^是怪物ID
end;
end;
假设没有就这样写也可以打怪,但打怪,不是按最近的距离打怪,我想想 遍历Goods1的值最小 用排序遍历指向最近的怪物ID,就想我制定的GoodsName转换名字可以遍历出怪物的ID
#5
有容就大2013-01-29 23:31
什么东西? 求分享。
#6
余姚威尔2013-01-30 13:05
回复 5楼 wxk19910115
有资料吗?求发 cxzhishan@ 我也在学习中···
1