コード例 #1
0
def fitness(chrome):
    val = decode(chrome) # interpret the circle
    xyrad = val.split()
    circ = Circle(int(xyrad[0]),int(xyrad[1]), int(xyrad[2]))
    # Evaluate this circle against all the circles in the initial_list
    # Also do a bounds check for drawing the circle on the screen
    for item in initial_list:
        if circ.intersects(item) == True:
            return
        if circ.containsCircle(item) == True:
            return
        if circ.x  + circ.radius > canvas_width or circ.x - circ.radius < 0:
            return
        if circ.y + circ.radius > canvas_height or circ.y - circ.radius < 0:
            return
    chrome.fitness = circ.area()
    if chrome.fitness >= sol.fitness:
        sol.fitness = chrome.fitness
        sol.name = chrome.name