Alladin
А как из кода в первом посте сделать…
Не совсем как в первом посте, но должен подойти. Тут в различных вариациях:
#-*- encoding: cp1251 -*-
def hsnake(n, back, rev):
''''''
array = []
for i in range(n):
array.append([])
for j in range(n):
value = 1 + i * n + j if i % 2 else i * n + n - j
if back:
array[i].append(value)
else:
array[i].insert(0, value)
return reversed(array) if rev else array
def vsnake(n, back, rev):
''''''
array = []
for i in range(n):
array.append([])
for j in range(n):
value = 1 + j * n + i if j % 2 else j * n + n - i
if back:
array[i].append(value)
else:
array[i].insert(0, value)
return reversed(array) if rev else array
def output(title, snake, size):
''''''
print '#' * 25
print title
print '#' * 25
for array in snake:
for element in array:
print '%2.d' % element,
print
def main():
''''''
size = 5
table = {
'Horizontal.1': hsnake(size, True, False),
'Horizontal.2': hsnake(size, False, False),
'Horizontal.3': hsnake(size, True, True),
'Horizontal.4': hsnake(size, False, True),
'Vertical.1': vsnake(size, True, False),
'Vertical.2': vsnake(size, False, False),
'Vertical.3': vsnake(size, True, True),
'Vertical.4': vsnake(size, False, True)
}
for key in sorted(table.keys()):
output(key, table[key], size)
if __name__ == '__main__':
main()
Результат:
#########################
Horizontal.1
#########################
5 4 3 2 1
6 7 8 9 10
15 14 13 12 11
16 17 18 19 20
25 24 23 22 21
#########################
Horizontal.2
#########################
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25
#########################
Horizontal.3
#########################
25 24 23 22 21
16 17 18 19 20
15 14 13 12 11
6 7 8 9 10
5 4 3 2 1
#########################
Horizontal.4
#########################
21 22 23 24 25
20 19 18 17 16
11 12 13 14 15
10 9 8 7 6
1 2 3 4 5
#########################
Vertical.1
#########################
5 6 15 16 25
4 7 14 17 24
3 8 13 18 23
2 9 12 19 22
1 10 11 20 21
#########################
Vertical.2
#########################
25 16 15 6 5
24 17 14 7 4
23 18 13 8 3
22 19 12 9 2
21 20 11 10 1
#########################
Vertical.3
#########################
1 10 11 20 21
2 9 12 19 22
3 8 13 18 23
4 7 14 17 24
5 6 15 16 25
#########################
Vertical.4
#########################
21 20 11 10 1
22 19 12 9 2
23 18 13 8 3
24 17 14 7 4
25 16 15 6 5