gw_x:=Pointer(gw_a^+$8);     //怪物X坐标
gw_y:=Pointer(gw_a^+$9);     //怪物y坐标
gw_z:=Pointer(gw_a^+$9);     //怪物最大数量
rw_x:= Pointer(rw_a^+$4);     //人物X坐标
rw_y:= Pointer(rw_a^+$e4);     //人物Y坐标
sDist:=abs(sqr(rw_x^-gw_x^)+sqr(rw_y^-gw_y^));    //计算最短距离
这么写一个遍历怪物数组后,的到一个最近距离的怪?

解决方案 »

  1.   

    比如周围有10个怪,这么写代码把10个怪的距离保存到 
    TBugRec = array[0..怪物数量] of record
    在用冒泡排序,代码不会写,请教大牛指点
      

  2.   

    冒泡法主要是两个for循环:
    for(int i=0;i<9;i++)    //最后输出的是顺序,即从小到大
    {
      for(int j=0;j<9-i;j++)
      {
        if(BugRec[j]<BugRec[i])//如果BugRec[j]<BugRec[i],则互相交换
        {
           int temp;
           temp = BugRec[i];
           BugRec[i] = BugRec[j];
           BugRec[j] = temp;       
        } 
      }
    }
      

  3.   

    不需要排序啊,求出最小值就好了!
    int m=0;
     for(int j=0;j<9;j++)
      {
      if(BugRec[m]>BugRec[j])
      { 
        m := j;
      }  
      } 最小值 BugRec[m]