Tags: scripting crypto image 

Rating:

After looking at files it was obvious that problem depends on solving sudoku in sudoku.png.
First an online sudoku solver like: http://www.sudoku-solutions.com/

The name of file "row-major-order" tell us that we must change order of pieces of image relate to solved sudoku.
Doing this process with hand was frustrating so using a quick python script will help:

<span>runme.py:
import Image
image = Image.open("image.png")result = Image.open("image.png")
def move(row1, col1, row2, col2):
</span>    xsize, ysize = image.size
    delta_x = xsize / 9
<span>    delta_y = ysize / 9
<span>    part1 = image.crop(((col1 - 1)*delta_x, (row1 - 1)*delta_y, col1*delta_x, row1*delta_y))
    result.paste(part1, ((col2 - 1)*delta_x, (row2 - 1)*delta_y, col2*delta_x, row2*delta_y))
<span>
def correct_row(list, row):
    i = 1
<span>    for l in list:
</span>        move(row, i, row, l)
<span>        i += 1

<span>correct_row([9,6,4,1,2,7,5,3,8], 1)
correct_row([7,1,2,3,8,5,6,9,4], 2)
correct_row([3,8,5,4,9,6,7,1,2], 3)

correct_row([4,9,1,5,7,8,2,6,3], 4)
correct_row([2,3,8,6,1,4,9,7,5], 5)
correct_row([5,7,6,2,3,9,8,4,1], 6)

image.show()
result.show()
</span></span></span></span></span>