import java.awt.Graphics;
import java.awt.Polygon;
import java.awt.Toolkit;
import Asteroid;

public class Flying
{
 public int     zLevel;
 public boolean shown;

 public static Asteroid[] sort(Asteroid[] obj)
 {
  int inRet  = 0;
  boolean[]  searched = new boolean[obj.length];
  Asteroid[] ret = new Asteroid[obj.length];
  for(int i = 0; i < ret.length; i++)
  {
   searched[i] = false;
   ret[i] = null;
   if(obj[i] == null)
   {
    return null;
   }
  }
  for(int search = 0; inRet < ret.length && search < 1000; search++)
  {
   for(int i = 0; i < obj.length; i++)
   {
    if(!searched[i])
    {
     if(obj[i].zLevel == search && obj[i].shown)
     {
      ret[inRet++] = obj[i];
      searched[i]  = true;
     }
    }
   }
  }
  while(inRet < ret.length)
  {
   for(int i = 0; i < obj.length; i++)
   {
    if(!searched[i])
    {
     ret[inRet++] = obj[i];
     searched[i]  = true;
    }
   }
  }
  return ret;
 }

 public Flying()
 {
  zLevel    = 0;
  shown     = false;
 }

 public void paint(Graphics g)
 {
 }

/*
 public static void sort(Flying[] obj)
 {
  int inRet  = 0;
  boolean[]  searched = new boolean[obj.length];
  Flying[] ret = new Flying[obj.length];
  for(int i = 0; i < ret.length; i++)
  {
   searched[i] = false;
   ret[i] = null;
   if(obj[i] == null)
   {
    obj[i] = new Flying();
   }
  }
  for(int search = 0; inRet < ret.length && search < 1000; search++)
  {
   for(int i = 0; i < obj.length; i++)
   {
    if(!searched[i])
    {
     if(obj[i].zLevel == search && obj[i].shown)
     {
      ret[inRet++] = obj[i];
      searched[i]  = true;
     }
    }
   }
  }
  while(inRet < ret.length)
  {
   for(int i = 0; i < obj.length; i++)
   {
    if(!searched[i])
    {
     ret[inRet++] = obj[i];
     searched[i]  = true;
    }
   }
  }
  for(int i  = 0; i < ret.length; i++)
  {
   obj[i] = ret[i];
  }
 }
*/

 public static void sort(Flying[] obj)
 {
  Flying[]  copy   = new Flying[obj.length];
  int[]     sortI  = new int[obj.length];
  boolean[] sorted = new boolean[obj.length];
  int       minstZ;
  for(int i = 0; i < obj.length; i++)
  {
   sortI[i]  = 0;
   copy[i]   = obj[i];
   sorted[i] = false;
  }
  for(int i = 0; i < obj.length; i++)
  {
   minstZ = 100000;
   for(int j = 0; j < obj.length; j++)
   {
    if(!sorted[j] && obj[j].zLevel < minstZ)
    {
     sortI[i] = j;
     minstZ = obj[j].zLevel;
    }
   }
   sorted[sortI[i]] = true;
  }
  for(int i = 0; i < obj.length; i++)
  {
   obj[i] = copy[sortI[i]];
  }
 }
}