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 в интеренете


Ответы (0 шт):