コード例 #1
0
 private void CalculateScore()
 {
     for (int i = 0; i < MessagePool.Length; i++)
     {
         int score = MessageComparator.CountMatchScore(_answerMessage, MessagePool[i]);
         score    *= 4;
         scores[i] = score;
     }
 }
コード例 #2
0
        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);
        }