作者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/m.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