Thread: Generic Sorting
View Single Post
  #1  
Old 05-22-2007, 04:34 AM
Novo Novo is offline
[TServerDeveloper]
Join Date: Jun 2006
Posts: 448
Novo will become famous soon enough
Generic Sorting

For those who wanted to know what use does variable functions do... Here's an example:

class: math-sort
PHP Code:
function defaultSortsideAsideB )
  {
  return (
sideA sideB);
  }

function 
sortList( list, compFunc )
  {
  
this.sortFunc = ( compFunc == null this.defaultSort compFunc );

  for ( 
temp.0temp.< list.size() - 1temp.i++ )
    {
    
temp.min temp.i;
    for ( 
temp.temp.1temp.< list.size(); temp.++ )
      {
      if ( 
sortFunc( list[temp.j], list[temp.min]) )
        
temp.min temp.j;
      }

    
temp.= list[temp.i];
    list[
temp.i] = list[temp.min];
    list[
temp.min] = temp.b;
    }

  return list;
  } 
PHP Code:
function onCreated()
  {
  
join("math-sort");
  
temp.= {{1,3},{3,2},{2,1},{4,2} };

  
temp.func = function(sideAsideB)
    {
    return ( 
sideA[0] < sideB[0] );
    };

  
temp.list = sortListtemp.ltemp.func );
  echo( 
temp.list ); // {{1, 3}, {2, 1}, {3, 2}, {4, 2}}
  

You could have them sorted by this function...

A practical use of this is sorting a list of NPCs with respect to how far it is!
One way to do this is simply defining this function:

PHP Code:
  temp.func = function(sideAsideB)
    {
    return ( (
sideA.this.x)^+ (sideA.this.y)^< (sideB.this.x)^+ (sideB.this.y)^);
    }; 
Reply With Quote