在Lua 5.1中,可以使用io.read()来引用表格。
2014-4-2 13:30:48
收藏:0
阅读:118
评论:1
好的,这是我想要做的事情,我几乎确定我不知道要使用什么短语来找到我正在寻找的东西,所以我会尽力用有限的术语知识尽可能清晰明了地解释。
我正在使用lua(或者至少尝试)为D&D游戏生成赛道/段。
这里是我所做的事情,但是我无法弄清如何让一个表引用另一个表。无论我如何努力研究或玩耍,它都无法正常工作。
表丢弃:
--Track Tables
local raceClass = { 'SS', 'S', 'A', 'B', 'C', 'D', 'N' }
local trackLength = { 50, 30, 25, 20, 15, 10, 5 }
local trackDifficulty = { 3, 3, 3, 2, 2, 1, 1 }
local trackTypes = { 'Straightaway', 'Curve', 'Hill', 'Water', 'Jump' }
所以,简要解释一下。首先,我们有赛车的类。 N是新手,SS是最困难的。接下来,我们有最终赛道的长度。 SS是50个段的赛道。 N是一个5段的赛道。每个比赛级别在每个赛道段上都有一个难度上限。 SS,S和A的上限都是3. D和N的上限为1.然后,每个赛道段被进一步分解为其类型。这些使用以下代码生成;
--Track Generation
math.randomseed(os.time())
for i = 1, trackLength do
local trackTypeIndex = math.random(1, #trackTypes)
local SP = math.random(1, trackDifficulty) --SP is Stamina Cost for that segment.
print(tracktypes[trackTypeIndex]..' of SP '..SP)
end
io.read() --So it doesn't just close the window but waits for some user input.
现在进入我开始自己迷失的部分。我希望DM能够输入所选的比赛级别并获得生成的赛道列表。
--DM Input
print('Race Class? N, D, C, B, A, S, SS")
io.flush()
local classChoice = io.read()
所以,DM输入了类选择,让我们使用N。我找不到的是一段可以将classChoice的值与raceClass配对的代码。然后使用该位置来选择trackLength和trackDifficulty中的位置,最后运行剩余的代码段Track Generation推断正确的变量并打印结果,得到类似于以下内容;
Straightaway of SP 1
Curve of SP 1
Water of SP 1
Water of SP 1
Jump of SP 1
对于低端新手赛,它只有5个段长,最大困难度为1。但是,对于较高的班级,仍将生成更长,更困难的赛道。我试图尽可能具体,以最小化我在代码中的经验可能造成的任何混淆。
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
我认为你最好使用不同的表格结构:
local raceClass = { SS = {50, 3}, S = {30, 3}, A = {25, 3}, B = {20, 2}, C = {15, 2}, D = {10, 1}, N = {5, 1}, }现在,你可以轻松访问
raceClass的所有数据。代码如下:print "Race Class? N, D, C, B, A, S, SS" io.flush() local classChoice = (io.read "*line"):upper() -- 将输入转换为大写字符 if not raceClass[classChoice] then -- 输入有误 end local SP, Length = raceClass[classChoice][2], raceClass[classChoice][1]