Size: a a a

2020 January 04

CP

Companion Philipp in pro.lua
The Dormouse
Не должно ли тут быть <= вместо <? И нет ли у map кастомного __index?
На вторую часть вопроса почти 100% –– нет (для новичка было бы очень необычно менять __index). На первую –– а разница? Он бы выпал в attempt to index nil/просто бы на один шаг дальше прокрутил
источник

КС

Камикото Судзуки ☘️ in pro.lua
а все отбой
источник

A

Alex in pro.lua
The Dormouse
local map = {
   {1, 2, 3, 3},
   {1, 2, 3, "I"},
   {1, 2, 3, 3},
}


local coord = {
   x = 1, y = 1
}

local function find_start(map, height, width)
   local res = coord;

   while map[res.y][res.x] ~= 'I' and res.y < height do
       res.x = 1;
       while map[res.y][res.x] ~= 'I' and res.x < width do
           res.x = res.x + 1;
       end
       res.y = res.y + 1;
   end
   if res.y == height then
       error("File has no start");
   end
   return res;
end

print(find_start(map, 2, 4))


Я правильно понял, как это должно использоваться?
А не влияет ли то что у тебя в map I в двойных кавычкая, а в теле правила с одними?
источник

КС

Камикото Судзуки ☘️ in pro.lua
я тупой
источник

T

The Dormouse in pro.lua
Companion Philipp
На вторую часть вопроса почти 100% –– нет (для новичка было бы очень необычно менять __index). На первую –– а разница? Он бы выпал в attempt to index nil/просто бы на один шаг дальше прокрутил
По первой части вопроса: I в конце не найдёт.
источник

T

The Dormouse in pro.lua
Хоть это и не совсем по теме.
источник

КС

Камикото Судзуки ☘️ in pro.lua
хотя такая ошибка в другой проге была, но именно в этой функции все вроде норм
источник

CP

Companion Philipp in pro.lua
The Dormouse
По первой части вопроса: I в конце не найдёт.
Не найдет и выпадет в attempt to index nil, не?
источник

КС

Камикото Судзуки ☘️ in pro.lua
The Dormouse
local map = {
   {1, 2, 3, 3},
   {1, 2, 3, "I"},
   {1, 2, 3, 3},
}


local coord = {
   x = 1, y = 1
}

local function find_start(map, height, width)
   local res = coord;

   while map[res.y][res.x] ~= 'I' and res.y < height do
       res.x = 1;
       while map[res.y][res.x] ~= 'I' and res.x < width do
           res.x = res.x + 1;
       end
       res.y = res.y + 1;
   end
   if res.y == height then
       error("File has no start");
   end
   return res;
end

print(find_start(map, 2, 4))


Я правильно понял, как это должно использоваться?
и да, первую часть условия первого цикла походу надо вынести в конец его тела в качестве if-break, а так все вроде норм
источник

T

The Dormouse in pro.lua
Companion Philipp
Не найдет и выпадет в attempt to index nil, не?
error("File has no start");
Upd: да, ты прав.
источник

T

The Dormouse in pro.lua
Камикото Судзуки ☘️
и да, первую часть условия первого цикла походу надо вынести в конец его тела в качестве if-break, а так все вроде норм
Изолируй код, на котором можно всё посмотреть, и скинь сюда.
источник

КС

Камикото Судзуки ☘️ in pro.lua
та не, уже ошибки нет
источник

D

DaySandBox in pro.lua
Message from Камикото Судзуки ☘️ deleted. Reason: new user and forwarded (?)
источник

D

DaySandBox in pro.lua
Message from Камикото Судзуки ☘️ deleted. Reason: new user and forwarded (?)
источник

CP

Companion Philipp in pro.lua
The Dormouse
error("File has no start");
Upd: да, ты прав.
Что?
источник

T

The Dormouse in pro.lua
Если не доходишь до конца массива, то вываливаешься в условие с ошибкой.
источник

T

The Dormouse in pro.lua
Если I в конце.
источник

CP

Companion Philipp in pro.lua
The Dormouse
Если не доходишь до конца массива, то вываливаешься в условие с ошибкой.
Нет, если ты выпадаешь в attempt to index nil до этого
источник

КС

Камикото Судзуки ☘️ in pro.lua
у тут бойня.
function find_start(map, height, width)
   local res = coord;

   while res.y < height do
       res.x = 1;
       while map[res.y][res.x] ~= 'I' and res.x < width do
           res.x = res.x + 1;
       end
       if map[res.y][res.x] == 'I' then
           break;
       end
       res.y = res.y + 1;
   end
   if res.y == height then
       error("File has no start");
   end
   return res;
end
источник

КС

Камикото Судзуки ☘️ in pro.lua
рабочий вариант, без выпадения исключений
источник