Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
from math import floor
from tectonic import *
def build_and_print_grid(size_x, size_y):
print('building ' + str(size_x) + 'x' + str(size_y) + '...')
cells_count = size_x * size_y
if cells_count > 47:
print('too big')
else:
tab, formTab = generate(size_x, size_y)
if tab == 'Error':
error = ''
for elt in formTab:
for i in elt:
error += str(i)
print(
'Error : no shape placement configuration found - Code error : ' + str(size_y) + str(size_x) + error)
else:
print('values: ' + str(tab))
print('blocks: ' + str(formTab))
# size
template = str(size_x)+'x'+str(size_y)
template += ';'
# blocks
max_block_index = 0
for line in formTab:
for block in line:
template += chr(block+64)
if (block > max_block_index):
max_block_index = block
template += ';'
# values
empty_cells_count = 0
for line in tab:
for cell in line:
template += str(cell)
if (cell == 0):
empty_cells_count += 1
size = ''
if (cells_count < 26): # < 5x5
size = 'small'
else:
if (cells_count < 37): # < 6x6
size = 'medium'
else:
size = 'large'
ratio = floor(100 * empty_cells_count / cells_count)
level = ''
if (ratio < 70): # < 5x5
level = 'easy'
else:
if (ratio < 80): # < 6x6
level = 'medium'
else:
level = 'hard'
debug = ''
debug += ' (size:'+size+')'
debug += ' (level:'+level+')'
# debug += ' (blocks:' + str(max_block_index)+')'
# debug += ' (empty:'+str(empty_cells_count)+')'
# debug += ' (ratio:'+str(ratio)+')'
print('template:' + debug + ' ' + template)
size_min = 4
size_max = 9
for count in range(5):
for size_x in range(size_min, size_max + 1):
for size_y in range(size_min, size_max + 1):
build_and_print_grid(size_x, size_y)