作者laechan (挥泪斩马云)
看板mud_sanc
标题Re: [闲聊] 近况 + JavaScript
时间Thu Sep 2 11:25:19 2021
写个近况顺便更新一下最近 javascript 用到的东西。
最近重玩 D3,重玩纯粹是想转移先前的重心,我之前太沉迷於
股票,我向来使用的解决方式就是改沉迷其它东西。
那玩 D3 的好处就是又看到一些可以写进 sanc 的东西,因为
我这次有买夺魂之镰资料片,因此有玩到一些新的东西。
不过要实装这东西还欠缺两个要素
1.菁英怪跟蓝怪
sanc 并没有开发这两种怪物的套用模组。
2.掉宝种类不够丰富
像 D3 光装备就有蓝、黄、传奇、套装等,宝石就有五种,
还有一些重要材料。
不过跟其它 mud 比起来,我们缺的还算少了因为很多东西我都
写好了。部份可以参考它(例如冒险秘境的产生方式),其它东西
则使用有 sanc 风格的东西即可。
那总之,最近在玩 D3。
======
过往我在做字串的 replace 时,遇到要取代的字串是变数时,
就会不晓得怎麽做比较好,最後都是拐弯用其它的方法解决,
但最近又碰到,就google 了一下。
假设 str = "a,b,c,d,e" 然後 tmp = "," ,我想将 str 里头
所有关於 tmp 的东西都改成 " " 空格
tmp = ",";
tmp = "/"+tmp+"/g"; // 把 tmp 变成这样
str = str.replace(eval(tmp)," ");
用 eval 产生出 /tmp/g 这样的程式看得懂的东西。
原始 code 如下
$("xxx").each(function(){
ttxt=$(this).html();
if(ttxt.indexOf("#ffffff")>0)
{
$(this).html($(this).html().replace(/#ffffff/g, "black"));
$(this).html($(this).html().replace(/blue/g, "white"));
}
else
{
reg="/"+ids+"/g";
$(this).html($(this).html().replace(eval(reg),
"<font color=#ffffff style=background-color:blue>"+ids+"</font>"));
}
});
简单的说就是我写了一个 onclick 事件函数,当我在某个地方按一下
滑鼠左键时,它会去遍历所有的 <xxx>...</xxx> tag,去读出包在其
中的包含 html tag 的东西(EX: <font color=red>test</font> 这样
的东西),然後只要发现里面有 #ffffff(白色),就去把它换成黑色,
并把它的底色改成白色(本来是蓝底白字,变成白底黑字)。
反之,若没发现 #ffffff 这样的东西,就把其中的 ids 这个关键字
变数所含的内容换成蓝底白字。
这样就能实现按一下,关键字就变蓝底白字,再按一下,就又变回原
本的白底黑字。
这样写可能会有点问题,但实际上是可 work 的,我的要求就是只要
可 work 就行了^^
最近还有做的事情,就是做自动表格化统计。
例如说有一个差不多100项左右的工作描述,由差不多10人去协作编
写,比方 A 写了第 1, 4, 10, 15, 23, ... 项,B 写了第 3, 7,
12, 13, 25, ... 项,...
那上面希望可以把大家写的东西「表格化」「数字化」,不然100多
项内容叭啦扒啦列出来固然很可观,上面只会知道大家这礼拜好像很
认真做很多事情,但实际上一点可读性也没有,
那表格化+数字化也很简单,问题就是,当你想要求大家去填数字时
,会遭遇一些困难的:
1.对方会认为,把落落长的东西变成简单的数字,会淡化他认真工作
的印象。
2.对方会认为,每写一项就得去新增、或去更新那些数字,很麻烦。
3.对方会认为,照旧不好吗?为何一定要配合上头的要求?
总之大家希望照旧,上面希望看到表格+数字,那怎麽做?
最直觉的想法就是
1.表格+数字 与 100多项的工作描述并存
2.数字透过自动化去产生,不需要人工去填
程式的写法就是
// 100多列工作描述
foreach(tmp in tmps)
{
if((tmp.indexOf("有什麽关键字") && tmp.indexOf("有什麽关键字")) ||
!tmp.indexOf("关键字"))
某个表格内的数字就+1;
else if(tmp.indexOf("有什麽关键字") &&
(tmp.indexOf("有什麽关键字") || tmp.indexOf("有什麽关键字")))
某个表格内的数字就+1;
.
.
}
写法各家不同,但简单描述就是像上面那样。因为才 10 几个人,
相当於只要解析 10 几种不同的工作描述即可,又因为大家心态偏
照旧保守,因此他们使用的描述语法也是很固定的,既然很固定,
就很方便做解析。
像这样
https://i.imgur.com/DtAnWMt.jpg
缺点就是语法一旦有更动,就可能产生 bug。mud 有个好处就是可
以用 catch 包起来,来预防因 bug 使得整个网页无法顺利执行开
启,但 asp ... asp 可能有只是没研究,印象中是有的。
目前都是用手动除错,像早上才又做完 debug。那我的原则是如果
这 bug 不难处理,就写进 code 内处理就好,真的很麻烦的才会请
对方在做描述时可留意一些地方。这是客制化考量。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.33.66.104 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/mud_sanc/M.1630553121.A.E54.html
1F:推 ttnkuo : D2重制版要出了,有考虑玩玩D2吗?\ 09/08 09:18
2F:推 iluy : 09/09 11:10
3F:→ laechan : 没,D2R我上次玩10分钟就觉得无力,还是D3玩起来方 09/09 12:55
4F:→ laechan : 便省力,我最近也比较少玩D3了因为已经达到我想转移 09/09 12:55
5F:→ laechan : 注意力的目的,这礼拜应该会把confsancarea.htm完工 09/09 12:55
6F:→ laechan : 并放上github,再去mud板灌个水 09/09 12:55
7F:→ laechan : 再之後就会去试做所谓的冒险秘境,它有几个要先写好 09/09 12:57
8F:→ laechan : 的模组,等写好就可以用 09/09 12:57
9F:→ laechan : 它刚好可以把我一直想写的东西以合理的方式来呈现 09/09 12:57
10F:推 ttnkuo : 祝 顺利!! 09/12 16:03