看板 CFantasy 關於我們 聯絡資訊
※ 引述《aeoluns (風兒)》之銘言 : 感謝板友推薦,剛剛看到三十二章 : 有一段程式碼沒看懂,想和大家討論一下 : { : 提供靈氣, : 那么, : 敏捷術開啟運行, : 截斷靈氣, : 那么, : 敏捷術停止運行。} function magics(human){ function agileMagic(mana){ if(mana){ human.useMagic("agileMagic") }else{ human.stopMagic("agileMagic") } } return { agileMagic: agileMagic } } 菜雞 有錯歡迎提出 但有錯我也不更正==手機好難打 沒寫過遊戲大概是這樣 他那個當pseudo code我是覺得還好 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.230.42.28 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/CFantasy/M.1599625444.A.230.html
peterturtle : 截斷靈氣要寫 if (!mana) 不是 else09/09 12:34
我就懶== 真要說我還要判斷他傳的是不是靈氣
hkncanaan : 建議起一個interface Magic,裡面定對一個功能叫run09/09 12:35
hkncanaan : 和stop09/09 12:35
太麻煩了 我手機打這段打快20分鐘 ※ 編輯: xga00mex (125.230.42.28 臺灣), 09/09/2020 12:39:44
peterturtle : 寫 if(!mana) 才能表現出冗碼啊 www09/09 12:41
peterturtle : 不然其實我看起來比較像兩個 function09/09 12:42
song7775 : 所以說這程式功能很怪阿w09/09 12:54
song7775 : 啟動跟關閉兩個功能塞在同一個函數裡面09/09 12:57
xga00mex : 他那個我覺得像是提一個要求 實作細節工程師隨意=09/09 12:57
xga00mex : =09/09 12:57
song7775 : 要進else只有mana==0 但都==0了為啥不是回傳mana不09/09 13:04
song7775 : 足而是停下使用法術09/09 13:04
song7775 : human.useMagic()那端沒有mana的相關判斷嗎w09/09 13:05
xga00mex : 好問題 我有想過要不要傳過去 後來想想算了 停下就09/09 13:08
xga00mex : 當他魔力不足能燒血條吧==09/09 13:08
xga00mex : 說真的小說寫到太詳細反而很無聊 像瘋法推的那個中09/09 13:09
xga00mex : 醫一堆古籍文言文我只想叫他給我全部翻成白話文09/09 13:09
xga00mex : 不過這個碼農也有點太簡化就是了09/09 13:11
song7775 : 這感覺不是簡化 是基本程式邏輯都不清楚09/09 13:12
做一個switch函數來call開/關我覺得還好吧== 回傳法力不足一樣要關法術啊或是等他跳錯自己停(? 想了一下human不該當magics參數 應該把magics當human私有函數的 ※ 編輯: xga00mex (125.230.42.28 臺灣), 09/09/2020 13:30:18
ms0301990 : 不懂的覺得可以看,相關專業頭很痛的作品lol09/09 13:43
song7775 : 比較直覺的思考是法術端在吃不到mana的時候就會自09/09 13:51
song7775 : 動停止吧09/09 13:51
song7775 : 總覺得應該往回推先畫出流程圖w09/09 13:59
song7775 : 有個問題是沒有agileMagic()函數的說明09/09 14:03
xga00mex : 我不是來寫能動的程式的==那種不重要的細節沒差吧09/09 14:10
xga00mex : 這個把human拿掉 判斷式裡改console.log應該也能動09/09 14:12
xga00mex : 就是了09/09 14:13
※ 編輯: xga00mex (125.230.42.28 臺灣), 09/09/2020 14:13:44
song7775 : 如果agileMagic()會在沒mana的時候自動停止那就不09/09 14:18
song7775 : 需要寫出mana==0的時候停止法術了嘛09/09 14:18
song7775 : 反正不重要啦w09/09 14:18
warlockeric : 覺得不用return那行耶09/09 15:46
mn435 : =0自動停止那很恐怖吧 那等於一直空轉 修真世界法力09/09 15:48
mn435 : 真的歸零可能跟廢功沒兩樣09/09 15:48
這是js的閉包寫法== 要用的話就 var customMagic = magics(human) customMagic.agileMagic(mana) 不能不return 作者寫的是提供/截斷 不做手動停止的話 有可能是自己被抽乾(假設靈氣直接抽自身) 或沒影響(給定量靈氣到用完為止) 前者好處是不用一直刷新 後者好處是不怕被抽乾 我自己覺得作者是想寫前者 但我沒把human.useMagic的實作細節寫出來所以就當通用吧== ※ 編輯: xga00mex (125.230.42.28 臺灣), 09/09/2020 16:30:29
song7775 : 所以才會說不知道法術是啥內容需要說明嘛w 09/09 20:15
song7775 : 畢竟也有可能是施法後法術有持續時間 09/09 20:17