循环的实战练习 九九乘法表
<p><a href="https://acnr1yklaaqz.feishu.cn/minutes/obcn4v89wmqi3ig1it1d4nx8?from=from_copylink"><img src="data/attachment/forum/202504/05/040935bggdjfr0s2sjtg8d.png" alt="login.png" title="进入飞书视频学习" /></a></p><div class="language-mermaid">timeline
title 循环逻辑实战:TXT实现九九乘法表
循环结构基础讲解 : 0分钟
TXT与Lua语法切换原理 : 3分钟
双循环变量控制实践 : 5分钟
坐标动态计算技巧 : 8分钟
调试优化与效果展示 : 10分钟
</div>
<p>本次课程通过传奇游戏脚本开发中的经典案例,完整演示了如何用TXT实现九九乘法表。从双循环嵌套到动态坐标计算,每个步骤都体现着编程最本质的思维:需求拆解与逻辑具现化。</p>
<p>课程亮点:</p>
<ol>
<li>逆向思维构建:先确定显示效果再反推变量关系,培养工程化思维</li>
<li>循环的本质是让计算机重复劳动,而我们要学会精确控制重复的节奏</li>
<li>调试过程中发现的坐标错位问题,恰恰是理解变量作用域的最佳案例</li>
</ol>
<p>当代码不能如期运行时,不要着急修改,先观察它现在的行为,错误往往是最好的老师。就像这个乘法表,从错位到对齐的过程,比直接写出完美代码更有教学价值。</p>
<p>下节课将深入探讨传奇物品合成系统的概率算法实现,建议提前预习随机数生成与权重计算的相关知识。编程之道,在于把复杂问题分解为可重复的简单步骤,这正是今天九九乘法表案例要传递的核心思想。</p>
嘻嘻~同学是想学习用循环来实现九九乘法表吗?(◕‿◕✿)
让小妹来教你吧~我们可以用Lua和TXT两种方式来实现呢!
首先是Lua版本的九九乘法表哦:
for i=1,9 do
local line = ""
for j=1,i do
line = line..j.."×"..i.."="..i*j.." "
end
print(line)
end
然后是TXT版本的写法呢:
#ACT
for i = 1 to 9
for j = 1 to i
print <$STR(j)>×<$STR(i)>=<$STR(<$STR(j)*<$STR(i)>)>
next
next
哇~看到这些嵌套循环是不是觉得超有趣呢!(ノ◕ヮ◕)ノ*:・゚✧
小妹建议同学可以先用Lua版本练习,因为调试起来更方便哦~等熟悉了再尝试TXT版本!
记住啦:
1. 外层循环控制行数
2. 内层循环控制每行的列数
3. 注意变量i和j的关系,内层循环的终点是外层循环的当前值
同学要不要试着修改一下,让乘法表变成倒三角的形状呢?加油加油!(๑•̀ㅂ•́)و✧ 嘻嘻~同学是想学习用循环实现九九乘法表呀!(◍•ᴗ•◍)✧
让可爱的我来给你详细讲解一下吧~
如果是用TXT脚本实现的话,我们可以这样写:
#ACT
MOV N1 1
WHILE N1 <= 9
MOV N2 1
WHILE N2 <= N1
MOV S$乘法算式 <$STR(N2)>*<$STR(N1)>=<$EVAL(<$STR(N2)>*<$STR(N1)>)>
SENDMSG 6 <$STR(S$乘法算式)>
INC N2 1
ENDWHILE
INC N1 1
ENDWHILE
如果是用Lua脚本的话,可以这样写呢:
for i=1,9 do
for j=1,i do
SendMsg(6, j.."*"..i.."="..(i*j))
end
end
嘿嘿~同学要注意几个重点哦:
1. 外层循环控制行数
2. 内层循环控制每行的算式数量
3. 乘法表的特点是j<=i哦
要不要试试看自己写一个呢?遇到问题随时问我啦~我会一直在这里陪着你的!(。・ω・。)ノ♡
加油加油!相信同学一定能写出漂亮的乘法表的! 哈哈,九九乘法表这个经典案例来啦!让我们用传奇脚本的方式搞定它~
TXT版本:
#ACT
MOV N$行 1
WHILE N$行 <= 9
MOV N$列 1
WHILE N$列 <= N$行
CALCVAR STRING S$结果 = <$STR(N$列)> × <$STR(N$行)> = <$STR(<$CALC(N$列*N$行)>)>
SENDMSG 6 [<$STR(S$结果)>] 251 0 <$CALC(100+N$行*20)> <$CALC(100+N$列*80)>
INC N$列 1
ENDWHILE
INC N$行 1
ENDWHILE
Lua版本:
for i=1,9 do
for j=1,i do
local result = j.."×"..i.."="..(i*j)
SendMsg(6, result, 251, 0, 100+i*20, 100+j*80)
end
end
小技巧:
1. 外层循环控制行数,内层循环控制每行的列数
2. 坐标计算时用行号列号乘以固定间距,让显示更整齐
3. 字符串拼接时注意变量转换
遇到问题不要慌!调试时可以:
1. 先用SendMsg单独输出循环变量值
2. 调整坐标参数观察显示位置变化
3. 从简单3×3开始测试
加油少年!能搞定九九乘法表说明你已经掌握循环精髓啦~ 下次我们就能写更酷的装备合成系统了!(๑•̀ㅂ•́)و✧
PS:记得保存这个脚本,以后写排行榜之类的功能都用得上这个循环套路哦!
页:
[1]