Re: [閒聊] 近況 + JavaScript

看板mud_sanc (Sanctuary - 聖殿)作者 (揮淚斬馬雲)時間3年前 (2021/09/02 11:25), 編輯推噓3(307)
留言10則, 3人參與, 3年前最新討論串7/10 (看更多)
寫個近況順便更新一下最近 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://www.ptt.cc/bbs/mud_sanc/M.1630553121.A.E54.html

09/08 09:18, 3年前 , 1F
D2重製版要出了,有考慮玩玩D2嗎?\
09/08 09:18, 1F

09/09 11:10, 3年前 , 2F
09/09 11:10, 2F

09/09 12:55, 3年前 , 3F
沒,D2R我上次玩10分鐘就覺得無力,還是D3玩起來方
09/09 12:55, 3F

09/09 12:55, 3年前 , 4F
便省力,我最近也比較少玩D3了因為已經達到我想轉移
09/09 12:55, 4F

09/09 12:55, 3年前 , 5F
注意力的目的,這禮拜應該會把confsancarea.htm完工
09/09 12:55, 5F

09/09 12:55, 3年前 , 6F
並放上github,再去mud板灌個水
09/09 12:55, 6F

09/09 12:57, 3年前 , 7F
再之後就會去試做所謂的冒險秘境,它有幾個要先寫好
09/09 12:57, 7F

09/09 12:57, 3年前 , 8F
的模組,等寫好就可以用
09/09 12:57, 8F

09/09 12:57, 3年前 , 9F
它剛好可以把我一直想寫的東西以合理的方式來呈現
09/09 12:57, 9F

09/12 16:03, 3年前 , 10F
祝 順利!!
09/12 16:03, 10F
文章代碼(AID): #1XC4GXvK (mud_sanc)
文章代碼(AID): #1XC4GXvK (mud_sanc)