Lua, python, set и кортежи
решил интереса ради портировать одну программу с Python на Lua но столкнулся с тем что Lua видимо не понимает вещей по типу set или кортежей.
Вот изначальный код на python:
text_map = [
'WWWWWWWWWWWW',
'W......W...W',
'W..WWW...W.W',
'W....W..WW.W',
'W..W....W..W',
'W..W...WWW.W',
'W....W.....W',
'WWWWWWWWWWWW'
]
world_map = set()
for j, row in enumerate(text_map):
for i, char in enumerate(row):
if char == 'W':
world_map.add((i * TILE, j * TILE))
Сначала я решил пойти по простому пути и сделать просто:
world_map = {(500, 200), (0, 100), (400, 0), (1100, 100), (600, 0), (300, 700), (500, 700), (0, 600), (800, 400), (700, 700), (1100, 600), (900, 200), (500, 300), (0, 200), (800, 0), (1100, 200), (100, 0), (1100, 500), (900, 700), (1000, 0), (0, 700), (800, 500), (300, 400), (200, 700), (1100, 700), (900, 300), (400, 200), (0, 300), (1100, 300), (300, 0), (500, 0), (400, 700), (300, 500), (600, 700), (700, 0), (0, 400), (700, 500), (1100, 400), (0, 0), (900, 0), (700, 100), (200, 0), (1100, 0), (800, 700), (100, 700), (1000, 700), (500, 600), (0, 500), (900, 500), (800, 300), (300, 200)}
В Lua, но он естественно не понимает как после запятой может закрываться скобка.
Как решить данную проблему?
Код который использует world_map:
if (x // TILE * TILE, y // TILE * TILE) in world_map:
depth *= math.cos(player_angle - cur_angle)
proj_height = min(PROJ_COEFF / (depth + 0.0001), HEIGHT)
c = 255 / (1 + depth * depth * 0.0001)
color = (c // 2, c, c // 3)
pygame.draw.rect(sc, color, (ray * SCALE, HALF_HEIGHT - proj_height // 2, SCALE, proj_height))
break
PS Да, это самый простой рейкастинг который я смог найти на python в интеренете