public GSCitizen[] spawn() { // determine the most fit citizens in the spawning pool and breed them GSCitizen[] survivors = new GSCitizen[que.Count()]; GSCitizen parent1 = que.Dequeue(); GSCitizen parent2 = que.Dequeue(); GSCitizen[] children = parent1.reproduce(parent2); // detemine array of survivors to return int survivorCount = 0; survivors[0] = parent1; survivorCount++; survivors[1] = parent2; survivorCount++; if (children[0].isValid()) { survivors[survivorCount] = children[0]; survivorCount++; } if (children[1].isValid()) { survivors[survivorCount] = children[1]; survivorCount++; } while (survivors.Length > survivorCount) { survivors[survivorCount] = que.Dequeue(); survivorCount++; } return(survivors); }
public void Add(GSCitizen citizen) { que.Enqueue(citizen); }