def buildPicture(slices):

    while(len(slices) > 1):
        
        piece = slices.pop(0)
        colLeft  = float("inf")
        colRight = float("inf")

        for elem in slices:
            simLeft  = compare(piece, elem)
            simRight = compare(elem, piece)

            if simLeft < colLeft:
                left = elem
                colLeft = simLeft

            if simRight < colRight:
                right = elem
                colRight = simRight

        if colLeft < colRight:
            newSlice = combine(left, piece)
            imageutils.save_image(newSlice, left)

        else:
            newSlice = combine(piece, right)
            imageutils.save_image(newSlice, right)

        imageutils.save_image(newSlice, 'shredded\\test\\' + str(100 - len(slices)) + '.png')

    return slices[0]
		images.remove(curr_slice)
		min_sim = 2000000000
		index = 0
		for i in range(len(images)):
			next_slice = images[i]
			x = min(slice_similarity(curr_slice, next_slice), slice_similarity(next_slice, curr_slice))
			if x < min_sim:
				min_sim = x
				index = i
		next_slice = images[index]
		if slice_similarity(curr_slice, next_slice) < slice_similarity(next_slice, curr_slice):	
			images[index] = curr_slice + images[index]
		else:
			images[index] = images[index] + curr_slice



if __name__ == '__main__':
	"""
	Opens file and reads it using a list comprehension into a list called images.
	After reconstructing the image, this method then displays the image and saves
	it to the hard drive.

	
	"""
	IMGS_DIR = 'shredded/destination'
	images = [imageutils.load_image(filename) for filename in imageutils.files_in_directory(IMGS_DIR)]
	reconstruct_image(images)
	imageutils.show_all_images(*images)
	imageutils.save_image(images[0], 'final-destination')
    MESSAGES:
    1) HOLY
    2) YOU FOUND A MESSAGE!
    """
    IMAGE_DIRECTORY = 'shredded/destination'
    files = iu.files_in_directory(IMAGE_DIRECTORY)

    # Stores tuple (filename, pixels)
    slices = [(fn, iu.load_image(fn)) for fn in files]
    answer = glue_together(slices)
    tm = []
    kw = ""
    for a in answer:
    	kw += slices[a][0][-5]
    	tm += slices[a][1]
    iu.save_image(tm, 'map')
    print(kw)


#great decomposition on this one! loved the functional programming of this one










def combine_images(image_list, filename):
	imageutils.save_image(combine_arrays([imageutils.load_image(i) for i in image_list]), filename)