Untitled
unknown
python
a year ago
2.4 kB
3
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