2

我正在制作一个随机单词生成器,但遇到了一个小问题。我正在尝试从包含已关闭字母(c、d、f 等)的表中打印值,但它不起作用。它返回零。帮助?

local closedLetters={b, c, d, f, g, h, j, k, l, m, n, p, q, r, s, t, v, w, x, z}
local openLetters={a, e, i, o, u, y}
print(closedLetters[2])

(那段代码只是一个例子,我设置的实际上更像这样)

local closedLetters={b, c, d, f, g, h, j, k, l, m, n, p, q, r, s, t, v, w, x, z}
local openLetters={a, e, i, o, u, y}
print(closedLetters[math.random(#closedLetters)]..openLetters[math.random(#openLetters)])
4

2 回答 2

5

您在该表中只有一堆键。具有 nil 值的键,因此您的返回值。将它们改为文字: closedLetters= {'a', 'b', .....}

于 2013-07-07T21:38:42.387 回答
2

为了补充眼球的答案,您可以制作closedLettersopenLetters实际的字符串。然后,您可以使用string.sub它们来访问它们:

local closedLetters = "bcdfghjklmnpqrstvwxz"
local openLetters   = "aeiouy"
local letter1, letter2 = math.random(#closedLetters), math.random(#openLetters)
print(closedLetters:sub(letter1, letter1) .. openLetters:sub(letter2, letter2) )
于 2013-07-07T21:50:39.937 回答