Сравнение двух индексных таблиц по значению индекса в lua

Я пытаюсь сравнить две таблицы одинаковой длины с функцией, так как я не знаю другого способа сделать это. Однако со следующей функцией он не может зарегистрироваться, и я не понимаю, почему. Я надеюсь, что кто-нибудь сможет разобраться в этой проблеме или сможет лучше сравнить две таблицы.

Таблицы заполняются следующим кодом:

str = "parameters determined by program (all digits)"
tableone = {}
for word in str:gmatch("%d") do table.insert(tableone,word) end

Он идентичен для обеих таблиц, за исключением, конечно, отдельных имен таблиц. Таблицы заполняются правильно и правильно отображаются, когда я их распечатываю. Вот две таблицы для ответа на этот вопрос:

tableone = {}
tabletwo = {}
for i=1,4 do table.insert(tableone, i) end
for i=1,4 do table.insert(tabletwo, i) end

Очевидно, эти две таблицы будут равны друг другу. Функция, которую я написал для сравнения индексных таблиц, выглядит следующим образом:

function comparetables(t1, t2)
matchct = 0
 for i=1,#t1 do
    if t1[i] == t2[i] then
    matchct = matchct + 1
    end
if matchct == #t1 then
return true
end
end

Я попытался выполнить

print(comparetables(tableone,tabletwo))

, чтобы увидеть, будет ли он печатать «истина», но безуспешно.Мне кажется, что он должен работать без проблем. Но это не так. Что мне не хватает? Я попытался найти что-то вроде функции table.compare, которую кто-то, возможно, уже написал, но не нашел такой удачи. Спасибо за любые предложения!

Дополнительная информация:

Я сравниваю таблицы для игры типа mastermaind. Это означает, что при сравнении таблиц должны применяться следующие три правила. Функция, которую я создал, должна была просто помочь мне начать, думая, что я смогу работать оттуда.

  1. При сравнении таблиц, если числа совпадают, Ccount увеличивается на 1.
  2. При сравнении таблиц, если значение существует в другой позиции индекса, увеличивают Pcount на 1

Например, с таблицей значений {1, 3, 3, 4} и предположение о {4, 4, 3, 1}, он вернет Pcount, равный 2 (один 4 и 1), и Ccount, равный 1 (три в третьей позиции) . Я думаю, что одна из самых сложных частей - заставить сравнение признать, что вторые 4 в предположении вообще не должны увеличивать Pcount.

5
задан hjpotter92 26 September 2013 в 19:52
поделиться