作者nomdeplume (凛寒)
看板Shadowverse
标题Re: [闲聊] 论奶炮的判定
时间Sat Jun 30 05:12:40 2018
身为一个资工人,我应该可以用程式逻辑来解决你的疑问
先申明,我没有实际看过游戏程式码,这些都只是猜测,但应该八九不离十
以下文长,注意!
首先,先给大家一点背景知识,程式设计中有两个简单的资料结构
一、Stack(堆叠)
二、Queue(伫列)
Stack的特色是「先进後出」,而Queue则是「先进先出」
在SV里面,我认为是用Queue来当结算方式
用具体一点的例子来说,可以想像成一间只有一个医生的穷B8小医院
医生必须校长兼撞钟,同时处理「
挂号」和「
治疗」这两个工作
那麽就开始执行案例一
首先,回合结束时,来了两个病人「白牙」和「暗夜袭击」
根据我听说过的,效果触发顺序是 自己主战->对方主战->自己生物->对方生物
所以白牙抢先第一个挂号,医生给它一号後标上「
主战回一血」
接着暗夜袭击挂号,医生给它二号并标示「
召唤一只蝙蝠」
因为效果都触发完了(没有其他病人),所以医生开始执行治疗(发动效果)
一号效果:
主战者回一血
但在这个治疗後,顽皮的「天狐社」也跑来挂号了
医生无奈先给天狐社三号,并看了一下发现对面没人,就写了「
打脸两血」
(其实这时候还有白牙减倒数效果触发,并拿到四号,但这边不重要先省略)
接着继续执行二号效果:
召唤一只蝙蝠
没有事发生,所以继续三号效果:
打脸两血
以上就是案例一的执行状况~
接着来看看比较复杂的案例二
一开始挂号的有「宝石姬」、「白牙」和「暗夜袭击」
一样,宝石姬先拿到一号,并标示「
全体+主战回一血」
接着,白牙拿到二号,并标有「
主战回一血」
最後,暗夜袭击拿了三号,并写着「
召唤一只蝙蝠」
一号效果执行:
全体+主战回一血
这时没有时间概念的「天狐社」又迟到来挂号
医生给天狐社四号时,发现对面有该死的狼人王,所以就标上「
打生物两血」
然後,二号效果:
主战回一血
天狐社双胞胎姊妹迟到更多地来挂号,所以医生给了五号和「
打生物两血」
三号效果:
召唤一只蝙蝠
这时,四号效果触发:
打生物两血
医生看到对面有狼人王和小夥伴蝙蝠,决定随机打在蝙蝠脸上捶死牠
最後,五号效果触发:
打生物两血
医生看到对面只有一只狼人王在卖萌,只好一掌巴两滴血下去
以上,就是案例二的实际情况
很多人可能会觉得这种计算方式很奇怪,那麽应该怎麽改成一般人认知的呢?
其实很简单(不过对程式设计师而言麻烦),只要把结构改成Stack就好
小小复习一下,Stack的特色是「先进後出」,概念可以想像成「叠罗汉」
接着我们就直接用案例二来演示一下
首先,三个啦啦队成员「宝石姬」、「白牙」和「暗夜袭击」要叠罗汉
因为方向跟刚刚相反,这次要从顺位最低、最没人权的暗夜袭击当底
暗夜袭击深蹲在最底下,并且摆出「
召唤一只蝙蝠」的姿势
然後白牙跳上去,摆出「
主战回一血」的动作
接着宝石姬跳到最顶端,做出公主般「
生物+主战回一血」的pose
当姿势摆完了,大家要一个一个下来,所以最上面宝石姬先下
在「
生物+主战回一血」的掌声下跳下
可是有个太过热情的观众「天狐社」冲上金字塔顶端
对着对面看台上的小帅哥狼人王抛了个「
打生物两血」的媚眼
很快的,天狐社被「
打生物两血」的嘘声赶下来,不过狼人王确实收到了
紧接着,换白牙要从叠罗汉阵容下来,得到「
主战回一血」的欢呼
可是小87天狐社玩上瘾了,又跳上叠罗汉,再次对狼人王比个「
打生物两血」的爱心
虽然这次还是被保安赶下场,但狼人王被这次「
打生物两血」攻击攻陷
最後,可怜的暗夜袭击终於可以行个「
召唤一只蝙蝠」的礼退场。
以上就是修改成Stack版本的状态XD
懒人包一下,SV的结算分成「
触发」和「
执行」两个动作
触发只是把效果放入
执行的清单排队而已
而天狐社的打脸或打生物是在
触发决定,打生物的谁是在
执行决定
最後,来点题外话,卡牌游戏老祖宗「魔法风云会」就是用Stack来决定执行顺序
也因此可以做出「瞬间」、「反击」之类的效果,因为可以达成後发先至的效果
如果要用Queue来实现後发先至,很容易会让程式冗长、麻烦又多於
所以我是觉得不要太期待SV以後会出「反击」或「陷阱卡」之类的东西
除非,工程师铁了心要把大部分的程式砍掉重练~
就这样,以上是我的程式小教室,谢谢大家
※ 引述《hsakuya (绯色)》之铭言:
: 总之 先上个影片
: https://www.youtube.com/watch?v=5HU7ruNYOJ4
: 昨天有一场玩奶泡遇到了吸血鬼 对方5T时下了暗夜袭击 (对手回合结束时叫一只吸血蝙蝠到场上)
: 从影片的1:23开始 我方5T 对面空场
: 我下了白牙 我方回合结束时会发动一次奶炮
: 因为回合结束时对面是空场 所以这发奶炮会越过被叫出来的蝙蝠直接打脸
: 这部分应该大家都没什麽疑虑
: 对面在6T时下了332华兹搭血月进化 他结束时场上有一只蝙蝠+54狼人
: 我则是下七宝石进化敲掉他的蝙蝠 回合结束後预计发动两次奶炮(白牙+七宝石效果)
: 结果这两发奶炮 「一发打去了被叫出来的蝙蝠」 另一发打在54华兹上
: 并没有「一定」朝华兹打去
: 得到结论
: 奶炮发动时只要对方场上有从者
: 因为效果触发而叫出来的从者 也是会成为该次奶炮的射击目标
: 这场差点就因为这样下去了...
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 73.252.240.40
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Shadowverse/M.1530306763.A.4F1.html
※ 编辑: nomdeplume (73.252.240.40), 06/30/2018 05:19:06
1F:→ scarbywind: 神秘符文已经算陷阱卡了吧... 06/30 06:02
2F:→ a498ss321: 感觉很像priority queue呢 06/30 08:49
3F:推 hsakuya: 我是觉得不用想到那麽复杂(?) 06/30 08:49
4F:→ hsakuya: 反正只要知道效果发动的先後顺序就好 06/30 08:49
5F:推 hsakuya: 讲Queue我听得懂 用挂号跟叠罗汉形容我还真一时被搞昏了( 06/30 08:52
6F:推 GOGO579: 赶快推免得别人知道我看不懂 06/30 09:21
7F:推 seeker3939: 讲解很有趣XD 06/30 09:49
8F:推 FoxWu930065: 这让我想到之前有一个考古题 有兴趣可以做做看 06/30 09:59
10F:推 Javalin: 资工人帮推 06/30 10:00
11F:推 kevin0925x: 然而要不要砍掉重练 是企划决定的 帮工程屍QQ 06/30 10:09
12F:推 DioEraclea: 完全看得懂耶 06/30 10:13
13F:推 evildark: 其实SV触发还是stack 只是他有很多个结算的时间点 06/30 10:13
14F:→ evildark: 几乎所有判例都是stack 造成的结果,包含空包弹 06/30 10:14
16F:推 jones17188: 我到底看了什麽 XDD 06/30 10:48
17F:推 ane2001617: 共啥毁啦 06/30 10:57
18F:推 as920909: 难怪课本都用图解法 写成字没人看得懂 XD 06/30 11:08
19F:→ Romulus: 我看不懂 06/30 11:19
20F:推 water200427: 认真分析文 06/30 11:22
21F:推 SuperSg: 先推不然别人以为我看得懂 06/30 11:22
22F:推 tom40819: 先推不然别人以为我看得...唉唉?? 楼上你484推错了 06/30 11:30
23F:推 cat84108: 推个好分析 06/30 11:54
24F:→ Romulus: 我看到医生和患者整个秘鲁问号就不看了 06/30 11:58
25F:→ Romulus: 然後这也不是queue和stack的问题 是目标选择的问题 06/30 12:12
26F:→ Romulus: 讲白了懒人包那三行就讲完了 其他一堆让人更看不懂而已 06/30 12:13
27F:推 KMSNY: 先推不然别人以为我看得懂 06/30 12:16
28F:推 mashiroro: 我觉得写得很好已经算浅显易懂了 XD 06/30 12:19
29F:推 Fritter: 先推不然别人以为我看的懂 不过我资工背景的朋友说这样 06/30 12:24
30F:→ Fritter: 写很有趣 可惜看不懂如我们这种外行人无从领会 06/30 12:24
31F:推 Romulus: 不是啊 我也资工的啊 可是我还是觉得莫名其妙啊 06/30 12:36
32F:→ globalspirit: 快推文免得被人发现我看不懂 06/30 12:47
33F:→ evildark: 我电机的觉得这篇写的很奇怪... 06/30 12:57
34F:→ zyx12320: 写一堆故事反而难懂 06/30 12:58
35F:推 AdmiralAdudu: 我觉得写的很不错啊 很好懂 06/30 13:13
36F:推 Tiamat6716: 社会组表示能理解 06/30 13:19
37F:→ watchr: 很好懂啊,其实就是触发判定跟效果作用的时间点交错的问题 06/30 13:20
38F:推 twosheep0603: 我觉得跟stack queue无关欸 单纯是程式逻辑的问题 06/30 13:43
39F:推 banmaxwill: 推个,已读未懂。 06/30 13:59
40F:推 FrozenWilly: 我觉得用传统stack跟queue的解释方法就好XD 06/30 14:11
41F:推 harehi: 故事太长了反而读到一半忘记原本在干嘛XD 06/30 16:19
42F:推 ptt0211: 推资工 07/01 00:22
43F:推 Fallen27: 太有趣了,居然完全能看懂,优文推推 07/01 06:45