我正在尝试使用一个函数比较两个长度相等的表格,因为我不知道其他方法。然而,使用以下函数时,它无法注册,我不知道原因。希望有人能提供这个问题的见解或更好的比较这两个表格的方法。
这些表格是由以下代码填充的:
显然,这两个表将彼此相等。我编写的比较索引表的函数如下:
我尝试了一下。
这些表格是由以下代码填充的:
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))
我希望能看到它打印出"true",但没有成功。对我来说,它似乎应该毫无问题地工作。但它没有。我已经尝试搜索类似于table.compare函数的东西,但没有找到。感谢任何建议!
额外的信息:
我比较表格的原因是为了一个大师球员类型的游戏。这意味着在比较表时必须遵循以下三个规则。我创建的函数只是让我开始思考,以便从那里开始工作。
- 当比较表时,如果数字匹配,则Ccount增加1。
- 当比较表时,如果值存在于不同的索引位置中,则将Pcount增加1。
例如,使用值{1, 3, 3, 4}和猜测{4, 4, 3, 1}的表将返回Pcount为2(一个4和1)和Ccount为1(第三个位置的三)。我认为最困难的部分之一将是使比较认识到猜测中的第二个4根本不会增加Pcount。