В редакторе уровней, который я должен создать, мне нужно взять 2-й список с большим количеством пустых пробелов (0), вырезать и добавить к нему, пока не будет 0 снаружи, внутри все в порядке . Первое, что мне нужно сделать, это вырезать все лишние 0 с каждой стороны, например:
map = [
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
[0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0],
[0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0],
[0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0],
[0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0],
[0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0],
[0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
]
def clipMap(map):
"""Need the code for"""
map = clipMap(map)
#map should now be:
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 0, 0, 1, 0, 0, 1, 1],
[1, 0, 0, 1, 0, 1, 0, 1],
[1, 1, 1, 1, 1, 0, 0, 1],
[1, 0, 1, 0, 0, 1, 0, 1],
[1, 0, 1, 0, 0, 1, 0, 1],
[1, 1, 1, 1, 1, 1, 1, 1]
Обратите внимание, что я использую только 1 и 0, когда в редакторе есть много разных блоков, которые в этом случае будет 1.
EDIT: Я пробовал это, но это было действительно ошибочно:
def clipMap(map):
minX = 0
minY = 0
maxX = len(map[0])
maxY = len(map)
#Find min and max
for y in map:
for x in map[y]:
if map[y][x] != 0:
if x < minX:
minX = x
else if x > maxX:
maxX = x
if y < minY:
minY = y
else if y > maxY:
maxY = y
#remove them
X = slice(minX, maxX)
Y = slice(minY, maxY)
map = map[Y]
for y in map:
map[y] = map[y][X]
return map