Untitled
unknown
python
2 years ago
2.4 kB
4
Indexable
from random import shuffle
def create_block():
arr = list()
for i in range(3):
arr.append(list())
for i in range(3):
for j in range(3):
arr[i].append(0)
return arr
def create_central(block):
foo = [1,2,3,4,5,6,7,8,9]
for row in block:
for i in range(3):
if len(foo) > 0:
shuffle(foo)
num = foo.pop()
row[i] = num
return block
def create_left_block(left, central):
left = create_block()
for i, row in enumerate(central):
foo = [1,2,3,4,5,6,7,8,9]
for element in row:
foo.remove(element)
for j in range(3):
if len(foo) > 0:
shuffle(foo)
num = foo.pop()
left[i][j] = num
return left
def create_right_block(left, right, central):
right = create_block()
for i in range(3):
foo = [1,2,3,4,5,6,7,8,9]
for element in central[i]:
foo.remove(element)
for element in right[i]:
if element in right[i]:
foo.remove(element)
for row in left:
for element in row:
if element in foo:
foo.remove(element)
for j in range(3):
if len(foo) > 0:
shuffle(foo)
num = foo.pop()
left[i][j] = num
return left
def rotate(matrix):
new = create_block()
for i in range(3):
new[0][i] = matrix[i][2]
new[1][i] = matrix[i][1]
new[2][i] = matrix[i][0]
return new
def rotate_back(matrix):
new = create_block()
for _ in range(3):
new = rotate(matrix)
return new
def create_down_block(central):
down = create_block()
rotated = rotate(central)
return rotate_back(create_right_block(down, rotated))
central_block = create_central(create_block())
right_middle_block = create_right_block(create_block(), central_block)
left_middle_block = create_left_block(create_block(), right_middle_block, central_block)
central_down_block = create_down_block(central_block)
down_right_corner = create_block()
for i in range(3):
print(left_middle_block[i], central_block[i], right_middle_block[i])
for i in range(3):
print(down_right_corner[i], central_down_block[i])Editor is loading...
Leave a Comment