private void CalculateScore() { for (int i = 0; i < MessagePool.Length; i++) { int score = MessageComparator.CountMatchScore(_answerMessage, MessagePool[i]); score *= 4; scores[i] = score; } }
private bool SpawnNextGeneration() { CalculateScore(); Message[] newMessagePool = new Message[MessagePool.Length]; for (int i = 0; i < MessagePool.Length; i++) { Message[] parents = PickParent(); Message child = CrossOver(parents[0], parents[1]); child = Mutation(child); if (MessageComparator.Equals(child, _answerMessage)) { Console.WriteLine("Has generate a child: " + child.message); return(true); } newMessagePool[i] = child; } MessagePool = newMessagePool; return(false); }