/*
         * This potentially will make robots gradually shorter.
         * Let's say that list1.size == 4 and list2.size == 2. Average length is 3.
         * Then, break1 will be between <0,3> and break2 <0,1>
         * All possible lengths for new InstructionList will be: 0,1,2,3,1,2,3,4 with equal probability.
         * Average length is 2.
         * For higher numbers this change isn't so dramatic but may add up after many populations.
         */
        private InstructionList blendInstructionLists(InstructionList list1, InstructionList list2)
        {
            InstructionList instructionList = InstructionList.createInstructionList();
            int             break1          = getBreakPoint(list1);
            int             break2          = getBreakPoint(list2);

            copyBlock(instructionList, list1, 0, break1);
            copyBlock(instructionList, list2, break2, list2.Size);
            return(instructionList);
        }
Esempio n. 2
0
 private Robot(int maximumDataOffset, int ignoreColumns)
 {
     mainFunction           = InstructionList.createInstructionList();
     this.maximumDataOffset = maximumDataOffset;
     this.ignoreColumns     = ignoreColumns;
 }