作者xga00mex (七祈绮契)
看板CFantasy
标题Re: [推荐] 码农修真
时间Wed Sep 9 12:24:01 2020
※ 引述《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://webptt.com/cn.aspx?n=bbs/CFantasy/M.1599625444.A.230.html
1F:→ peterturtle : 截断灵气要写 if (!mana) 不是 else09/09 12:34
我就懒==
真要说我还要判断他传的是不是灵气
2F:推 hkncanaan : 建议起一个interface Magic,里面定对一个功能叫run09/09 12:35
3F:→ hkncanaan : 和stop09/09 12:35
太麻烦了 我手机打这段打快20分钟
※ 编辑: xga00mex (125.230.42.28 台湾), 09/09/2020 12:39:44
4F:→ peterturtle : 写 if(!mana) 才能表现出冗码啊 www09/09 12:41
5F:→ peterturtle : 不然其实我看起来比较像两个 function09/09 12:42
6F:推 song7775 : 所以说这程式功能很怪阿w09/09 12:54
7F:推 song7775 : 启动跟关闭两个功能塞在同一个函数里面09/09 12:57
8F:→ xga00mex : 他那个我觉得像是提一个要求 实作细节工程师随意=09/09 12:57
9F:→ xga00mex : =09/09 12:57
10F:→ song7775 : 要进else只有mana==0 但都==0了为啥不是回传mana不09/09 13:04
11F:→ song7775 : 足而是停下使用法术09/09 13:04
12F:→ song7775 : human.useMagic()那端没有mana的相关判断吗w09/09 13:05
13F:→ xga00mex : 好问题 我有想过要不要传过去 後来想想算了 停下就09/09 13:08
14F:→ xga00mex : 当他魔力不足能烧血条吧==09/09 13:08
15F:→ xga00mex : 说真的小说写到太详细反而很无聊 像疯法推的那个中09/09 13:09
16F:→ xga00mex : 医一堆古籍文言文我只想叫他给我全部翻成白话文09/09 13:09
17F:→ xga00mex : 不过这个码农也有点太简化就是了09/09 13:11
18F:→ song7775 : 这感觉不是简化 是基本程式逻辑都不清楚09/09 13:12
做一个switch函数来call开/关我觉得还好吧==
回传法力不足一样要关法术啊或是等他跳错自己停(?
想了一下human不该当magics参数
应该把magics当human私有函数的
※ 编辑: xga00mex (125.230.42.28 台湾), 09/09/2020 13:30:18
19F:推 ms0301990 : 不懂的觉得可以看,相关专业头很痛的作品lol09/09 13:43
20F:→ song7775 : 比较直觉的思考是法术端在吃不到mana的时候就会自09/09 13:51
21F:→ song7775 : 动停止吧09/09 13:51
22F:→ song7775 : 总觉得应该往回推先画出流程图w09/09 13:59
23F:→ song7775 : 有个问题是没有agileMagic()函数的说明09/09 14:03
24F:→ xga00mex : 我不是来写能动的程式的==那种不重要的细节没差吧09/09 14:10
25F:→ xga00mex : 这个把human拿掉 判断式里改console.log应该也能动09/09 14:12
26F:→ xga00mex : 就是了09/09 14:13
※ 编辑: xga00mex (125.230.42.28 台湾), 09/09/2020 14:13:44
27F:→ song7775 : 如果agileMagic()会在没mana的时候自动停止那就不09/09 14:18
28F:→ song7775 : 需要写出mana==0的时候停止法术了嘛09/09 14:18
29F:→ song7775 : 反正不重要啦w09/09 14:18
30F:推 warlockeric : 觉得不用return那行耶09/09 15:46
31F:推 mn435 : =0自动停止那很恐怖吧 那等於一直空转 修真世界法力09/09 15:48
32F:→ 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
33F:→ song7775 : 所以才会说不知道法术是啥内容需要说明嘛w 09/09 20:15
34F:→ song7775 : 毕竟也有可能是施法後法术有持续时间 09/09 20:17