from visual import * from random import * from time import * display(background=(1, 1, 1)) our_list = [sphere(radius=random()/2, color=(random(), random(), random())) for i in range(20)] def arrange_list(): for i, s in enumerate(our_list): s.pos = (i-len(our_list)/2, 0, 0) def swap(a, b): temp = our_list[a] our_list[a] = our_list[b] our_list[b] = temp def visual_sort(comparison): swaps = 0 done = False while not done : done = True for i in range(len(our_list)-1): if comparison(our_list[i], our_list[i+1]): swap(i, i+1) arrange_list() swaps += 1 sleep(.01) done = False print(swaps) arrange_list() while True: visual_sort(lambda x,y: x.radius < y.radius) visual_sort(lambda x,y: x.radius > y.radius) visual_sort(lambda x,y: x.color[0] < y.color[0]) sleep(1) visual_sort(lambda x,y: x.color[1] < y.color[1]) sleep(1) visual_sort(lambda x,y: x.color[2] < y.color[2]) sleep(1) visual_sort(lambda x,y: sum(x.color) < sum(y.color)) sleep(3) our_list = [sphere(radius=random()/2, color=(random(), random(), random())) for i in range(20)]