Skip to content

Latest commit

 

History

History
399 lines (290 loc) · 13.4 KB

Special.md

File metadata and controls

399 lines (290 loc) · 13.4 KB

炮爷语录拾遗

|【炮爷传】|
|【函数】|
|【三件事】|
|【思维方式】|
|【文字排版】|
|【MUD 编程】|
|【截图与文字】|
|【DSL(领域特定语言)】|

炮爷传

著:小乖乖
炮爷者,不知何许人也。
某初识炮爷于己亥年中,因手机接入北侠,
对使用 tintin 一头雾水,加入同一群中。
炮爷者,良师益友也。
某初用逍遥行脚本,因年代久远不能得用,
得遇炮爷悉心指导、谆谆教诲,方才识得新天地。
炮爷者,奇人也。
时而激扬文字、据理论争;
时而循循善诱、桃李莘莘;
时而大派"福利"、兼济天下;
博文约礼,至诚君子;
满腹经纶,诗礼簪缨;
独具慧眼,闻达于世。
某观炮爷所言,常有所得。
往教者,非礼也;
童蒙求我,匪我求童蒙;
日拱一卒,功不唐捐;
盘古之白;
最小问题示例;
二分法....
彼其所能,于专家教授不遑多让。
彼其 tintin 造诣,深不可测,号称:
"TinTin 人肉编译器","TinTin Bug 终结者"。
以吾之所学,屡屡不能解其深意,
故而藏之,频频回味,方能知其一二。


函数

李忧郁 2022-12-12 16:16:18
大宝写了一堆代码做中文数字转换,ls一个函数解决

当头炮 2022-12-12 16:18:03
云之遥写了一大堆代码中文数字转换,大宝机器一个函数搞定了

三件事

担子炮 2022-11-23 16:44:11
我觉得每个人都要分清楚什么是「你的事、我的事、老天爷的事」。

担子炮 2022-11-23 16:45:12
比如说,这个问题我不会,那这是我的事。
你的代码或者文档存在错误,那这是你的事。
明天会不会下雨,那这是老天爷的事。

担子炮 2022-11-23 16:45:43
大家以后交流的时候分清楚这三件事,就可以少很多矛盾。

思维方式

谨言慎行的小乖乖 2019-12-22 17:33:51
这个东西和知识面有关,不懂得想破头,懂得一眼就懂还觉得特别简单

担子炮 2019-12-22 17:34:02
和思维方式有关

谨言慎行的小乖乖 2019-12-22 17:35:04
这个思维方式的建立,倒是一个大课题

审判 2019-12-22 17:36:18
就像刚学语言  i=i+1,有人一看就会,有人直接卡死

担子炮 2019-12-22 17:37:27
比如说我说,这是包子,这个能吃,快吃吧。有的人马上就懂了,说,哦这个就叫包子,原来这个能吃,那我试试。可有的人就会说,为什么能吃?你没骗我吧?这个怎么能吃呢?这个和米饭有什么区别?

审判 2019-12-22 17:38:28
你这些还好,我儿子会说,我不吃

谨言慎行的小乖乖 2019-12-22 17:39:17
不太相似,我觉得用掌握了数学公式原理的人,和一个只会四则运算的人来比较,比较能展现出差距

谨言慎行的小乖乖 2019-12-22 17:39:43
人家在那里微积分,你在这掰手指头

担子炮 2019-12-22 17:39:59
我再耐心和他讲,我说你看,这个是皮,是小麦做的,那个是馅儿,是白菜做的,小麦是一种粮食,白菜是一种吃叶子的蔬菜。有的人就会说,哦我懂了,我试试。可是有的人就会说,粮食不都是大米吗?小麦是什么东西?白菜是长在土里的还是结在树上的?

担子炮 2019-12-22 17:41:25
一直在发问,从不去理解,从不去确认自己的理解。一直问下去,最后迟早把每个人都问倒,完了说,你看,果然好难懂吧。

担子炮 2019-12-22 17:42:26
学习不是这样的。学习首先是接受,然后是理解,最后是求真,这就算学会了。然后才是创新。

担子炮 2019-12-22 17:42:51
你不能一上来就求真,那叫抬杠。

担子炮 2019-12-22 17:43:18
非要问白菜说裸子植物还是被子植物,我也分不清呀。

文字排版

一级水平:盘古之白。
二级水平:注意标点符号是全角还是半角。
三级水平:注意错别字。
四级水平:注意专业术语的正确拼写、大小写、词性。
五级水平:注意排版,段落,突出重点。

MUD 编程

担子炮 2023-07-13 14:18:12
tt++ 最大的优势是信噪比好,缺点是语法要重新学,如果之前不会的话。

担子炮 2023-07-13 14:19:10
lua 最大的优势是有些程序员之前就已经接触过,就算是没接触过,资料也相对好找一些,对于程序员来说也比较接近其他语言

担子炮 2023-07-13 14:20:03
但如果之前既不会 lua 也不会 tt++,还不是程序员,那学 lua 纯粹是自讨苦吃,说白了,很多人的基本文化素养不足以搞懂 lua,但是 tt++ 倒是比较简单好上手。

担子炮 2023-07-13 14:20:26
你看连忘羽这种人都能写两下 tt++

担子炮 2023-07-13 14:20:34
你让他用 lua 不是要杀了他

疯使劲 2023-07-13 14:27:45
我就30多年前接触过一点BASIC,以这个基础来说,LUA更好理解点。虽然写起来好长,但容易懂。tt++看起来更简洁。

担子炮 2023-07-13 14:28:43
你说的 lua 更好理解,是指已经有人做好了框架的前提下

担子炮 2023-07-13 14:29:08
如果是从零开始,或者说不利用别人现成的框架,而是用纯 lua,肯定不如 tt++ 好理解

担子炮 2023-07-13 14:30:07
因为 tt++ 不好理解的地方,不是 tt++ 的问题,而是 mud 编程本身的特点,就是说 mud 里一个完整的流程需要客户端和服务器两个参与方,双方的逻辑是交错推进的,这个比较难理解

疯使劲 2023-07-13 14:30:13
对,我只会mush带的那么点lua,都分不太清楚mush函数还是lua函数。

担子炮 2023-07-13 14:30:28
但你接触到的 lua 框架,已经把这种交错推进的过程简化了,你就觉得好理解

担子炮 2023-07-13 14:30:50
然后如果你用用 PaoTin++ 你就会发现,PaoTin++ 也已经做了这样的简化,那就好理解了

疯使劲 2023-07-13 14:31:49
一直在重复“开始!”到“放弃!”的过程

担子炮 2023-07-13 14:31:55
因为正常人思考问题,是瀑布式的,一口气从上往下想过来,先不考虑出错,整个流程一气呵成,这种代码人们就觉得好理解。

担子炮 2023-07-13 14:32:21
但 mud 编程的特点是,你要把整个流程拆成很多很细很细的步骤,每个步骤是一顿一顿的,你就觉得不好理解

担子炮 2023-07-13 14:32:32
这不是 tt++ 的问题,lua 在这里也并无任何优势,这是 mud 编程的特点

127833 2023-07-13 14:32:43
看了这个例了我感觉我又行了

担子炮 2023-07-13 14:34:25
举个例子,就拿合宝石来说,三个小宝石可以合成一个大宝石,这是一个很简单的逻辑,但你要写成机器,你要进行以下四个步骤:
1,检查锦囊,找到可以合的 ID
2,取出三个该 ID 的宝石
3,合宝石
4,等待 busy 结束
5,放回宝石

这 5 个步骤你不能一气呵成,因为中间存在交互,你写机器就必须得一顿一顿的,你就觉得不好理解

担子炮 2023-07-13 14:34:59
但如果有人把锦囊管理已经给你做好了,你上一秒发出 jiancha,下一秒就可以知道该取哪个 ID,那你就会觉得好理解

担子炮 2023-07-13 14:35:01
问题在这里

担子炮 2023-07-13 14:36:12
所以不要再污名化 tt++ 了,它不好理解不是它的问题,是因为你在玩 mud。mud 就是 wiz 制造障碍,然后让玩家去排除障碍,这么一个过程

担子炮 2023-07-13 14:36:29
有了 PaoTin++,写机器已经比 tt++ 简单太多了

担子炮 2023-07-13 14:36:38
未来还会更简单

担子炮 2023-07-13 14:38:12
简单的机器确实很好写,很容易上手。但复杂的机器就需要依赖成熟的组件,不管你用什么客户端、什么语言,都一样。因为工作就是那些工作,一步也少不了。

截图与文字

担子炮 2022-02-20 21:55:19
发代码不要发截图,发文字,说不定就帮你顺手改了

担子炮 2022-02-20 21:55:51
如果是面对面,发截图,我还可以戳着屏幕跟你说,呐,这里你看不合理,可以这样改一下

担子炮 2022-02-20 21:56:11
现在对着空气讲你又听不到

担子炮 2022-02-20 21:56:26
你发截图方便了自己,但是堵住了别人的嘴

担子炮 2022-02-20 21:56:47
别人只能哦哦哦唔唔唔啊啊啊嗯嗯嗯

DSL

tintin小白 2021-08-13 11:14:34
我DSL 初步能用了
script{
   "sleep",
   "Wa 2000;say 延迟2秒;sleep;",
   "WL {.*你往床上一躺,开始睡觉.*}{2000}{sleep}",
   "WL {.*你一觉醒来,精神抖擞.*}",
}

script{
   "dz",
   "dazuo max",
   "{.*你现在内力接近圆满状态.*}{dazuo 20;}",
   "{.*你现在精不够,无法控制内息的流动.*}{Run sleep;dazuo max;}",
   "{.*你现在的气太少了,无法产生内息运行全身经脉.*}{Run sleep;dazuo max;}",
   "{.*你现在气血严重不足,无法满足打坐最小要求.*}{Run sleep;dazuo max;}",
   "{.*你现在的气太少了,无法产生内息运转小周天.*}{Run sleep;dazuo max;}",
   "WL {.*你运功完毕,深深吸了口气,站了起来.*}"
}

担子炮 2021-08-13 11:15:22
牛逼,让我好好欣赏一下

担子炮 2021-08-13 11:15:31
恶心的 function 解决了?

担子炮 2021-08-13 11:16:01
script 第一行是脚本名称?

担子炮 2021-08-13 11:16:41
感觉已经比之前好多了

tintin小白 2021-08-13 11:16:46
初级阶段.....实现了脚本调用。和正常语句的执行。。加一个delay功能。。内部变量还没搞呢

tintin小白 2021-08-13 11:16:50
@担子炮 是的

担子炮 2021-08-13 11:17:29
嗯,有点丑

担子炮 2021-08-13 11:17:47
最好能放到外面,不知道有没有可能

担子炮 2021-08-13 11:18:44
.* 也有点丑

tintin小白 2021-08-13 11:18:50
可以放外面,但是如果放外面。这就使一个正常的功能模块缺点东西。

担子炮 2021-08-13 11:18:54
这块可以稍微优化一下

担子炮 2021-08-13 11:19:30
比如默认 .*,除非指定了 ^ $

tintin小白 2021-08-13 11:20:14
嗯!我也想这么改

担子炮 2021-08-13 11:20:53
双引号里面的 {}{} 也有点丑

谨言慎行的小乖乖 2021-08-13 11:21:21
双引号也有点丑,逗号也有点丑

担子炮 2021-08-13 11:21:24
改成 => 可以吗?

担子炮 2021-08-13 11:21:33
双引号和逗号没办法

担子炮 2021-08-13 11:21:39
这是 lua 的要求,去不掉的

tintin小白 2021-08-13 11:21:54
@担子炮 这是可以的

谨言慎行的小乖乖 2021-08-13 11:22:03
对文本进行解析不行么?

担子炮 2021-08-13 11:22:06
嗯,改一下看看视觉效果

担子炮 2021-08-13 11:22:22
那就没法和 lua 代码嵌合了

担子炮 2021-08-13 11:22:48
lua 又没有 here document

tintin小白 2021-08-13 11:22:56
@谨言慎行的小乖乖 我只想实现一个很小功能的DSL。。。

谨言慎行的小乖乖 2021-08-13 11:23:22
也挺好的了,比之前见得机器很优美

tintin小白 2021-08-13 11:24:06
我的初衷就是能用lua的全部功能。又能简单的定义触发逻辑。就可以了

担子炮 2021-08-13 11:24:25
tintin 你也去不掉最外层的 {}{},一样的

担子炮 2021-08-13 11:24:37
只是 lua 变成了引号

tintin小白 2021-08-13 11:27:23
写一点这东西,再去看tintin的一些写法。有些许感悟。现在基本是照抄tintin的语法

担子炮 2021-08-13 11:27:59
嗯,tintin 的语法是个很高的山头

担子炮 2021-08-13 11:28:13
tintin 作者是个 C 程序员

担子炮 2021-08-13 11:28:46
他为什么发明 tintin,还不是因为 C 玩 MUD 不合适

担子炮 2021-08-13 11:28:58
那为什么现在有很多人又觉得 lua python 玩 MUD 很好

担子炮 2021-08-13 11:29:11
还是因为理解层次不一样

担子炮 2021-08-13 11:29:58
lua 和 python 不是不能玩 MUD,而是就算能玩,最终也只能通过 tintin 这种方式玩。也就是 DSL。现在 @能不能拯救 等于是重新发明了 lua 版的 tintin,期待有人以后能发明 python 版的 tintin

担子炮 2021-08-13 11:30:34
这就是我眼中的 MUD 世界观

担子炮 2021-08-13 18:00:43
script {
   "dz",
   "dazuo max", [[
       你现在内力接近圆满状态                      -> dazuo 20
       你现在精不够,无法控制内息的流动            -> Run sleep;dazuo max
       你现在的气太少了,无法产生内息运行全身经脉  -> Run sleep;dazuo max
       你现在气血严重不足,无法满足打坐最小要求    -> Run sleep;dazuo max
       你现在的气太少了,无法产生内息运转小周天    -> Run sleep;dazuo max
       WL 你运功完毕,深深吸了口气,站了起来"
   ]]
}

tintin小白 2021-08-13 18:01:11
为什么要加方括号呢?

担子炮 2021-08-13 18:01:58
多行字符串,这样就可以不用加那么多双引号了

tintin小白 2021-08-13 18:10:47
@担子炮 对哦。。忘记这个了。。

担子炮 2021-08-13 18:11:13
嗯,好好想想,你可以做得更好

担子炮 2021-08-13 18:11:35
让 DSL 更 S 一些

担子炮 2021-08-13 18:11:47
尽量脱胎于 Lua

谨言慎行的小乖乖 2021-08-13 18:14:23
炮爷出手就是不凡,看着更舒服了

担子炮 2021-08-13 18:15:49
要写机器,先写框架

担子炮 2021-08-13 18:15:57
要写框架,先写引擎

担子炮 2021-08-13 18:16:13
要写引擎,先设计语法

担子炮 2021-08-13 18:16:27
要设计语法,先多看看别人的语法

END