Re: [闲聊] 论奶砲的判定

楼主: nomdeplume (凛寒)   2018-06-30 05:12:40
身为一个资工人,我应该可以用程式逻辑来解决你的疑问
先申明,我没有实际看过游戏程式码,这些都只是猜测,但应该八九不离十
以下文长,注意!
首先,先给大家一点背景知识,程式设计中有两个简单的资料结构
一、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华兹上
: 并没有“一定”朝华兹打去
: 得到结论
: 奶砲发动时只要对方场上有从者
: 因为效果触发而叫出来的从者 也是会成为该次奶砲的射击目标
: 这场差点就因为这样下去了...
作者: scarbywind (有事烧纸)   2018-06-30 06:02:00
神秘符文已经算陷阱卡了吧...
作者: a498ss321 (长不大的种子)   2018-06-30 08:49:00
感觉很像priority queue呢
作者: hsakuya (绯色)   2018-06-30 08:49:00
我是觉得不用想到那么复杂(?)反正只要知道效果发动的先后顺序就好讲Queue我听得懂 用挂号跟叠罗汉形容我还真一时被搞昏了(
作者: GOGO579 (青云)   2018-06-30 09:21:00
赶快推免得别人知道我看不懂
作者: seeker3939 (记录者)   2018-06-30 09:49:00
讲解很有趣XD
作者: FoxWu930065 (莫非狐)   2018-06-30 09:59:00
这让我想到之前有一个考古题 有兴趣可以做做看#1PxoRDGW
作者: Javalin   2018-06-30 10:00:00
资工人帮推
作者: kevin0925x (EXD)   2018-06-30 10:09:00
然而要不要砍掉重练 是企划决定的 帮工程尸QQ
作者: DioEraclea (魔女的扫把)   2018-06-30 10:13:00
完全看得懂耶
作者: evildark (时报鹰加油!)   2018-06-30 10:13:00
其实SV触发还是stack 只是他有很多个结算的时间点几乎所有判例都是stack 造成的结果,包含空包弹
作者: boiq (olo)   2018-06-30 10:25:00
作者: jones17188 (命言)   2018-06-30 10:48:00
我到底看了什么 XDD
作者: ane2001617 (AS)   2018-06-30 10:57:00
共啥毁啦
作者: as920909 (a^s_)   2018-06-30 11:08:00
难怪课本都用图解法 写成字没人看得懂 XD
作者: Romulus (Säubern Mode)   2018-06-30 11:19:00
我看不懂
作者: water200427 (water)   2018-06-30 11:22:00
认真分析文
作者: SuperSg (萌翻天的时代来啦°▽°)   2018-06-30 11:22:00
先推不然别人以为我看得懂
作者: tom40819 (火雞)   2018-06-30 11:30:00
先推不然别人以为我看得...唉唉?? 楼上你484推错了
作者: cat84108 (岚岚)   2018-06-30 11:54:00
推个好分析
作者: Romulus (Säubern Mode)   2018-06-30 11:58:00
我看到医生和患者整个秘鲁问号就不看了然后这也不是queue和stack的问题 是目标选择的问题讲白了懒人包那三行就讲完了 其他一堆让人更看不懂而已
作者: KMSNY (MSN+KY)   2018-06-30 12:16:00
先推不然别人以为我看得懂
作者: mashiroro (~真白~)   2018-06-30 12:19:00
我觉得写得很好已经算浅显易懂了 XD
作者: Fritter (逍遥云)   2018-06-30 12:24:00
先推不然别人以为我看的懂 不过我资工背景的朋友说这样写很有趣 可惜看不懂如我们这种外行人无从领会
作者: Romulus (Säubern Mode)   2018-06-30 12:36:00
不是啊 我也资工的啊 可是我还是觉得莫名其妙啊
作者: globalspirit (爱地球的地球魂)   2018-06-30 12:47:00
快推文免得被人发现我看不懂
作者: evildark (时报鹰加油!)   2018-06-30 12:57:00
我电机的觉得这篇写的很奇怪...
作者: zyx12320 (zyx12320)   2018-06-30 12:58:00
写一堆故事反而难懂
作者: AdmiralAdudu (嘟嘟噜都大都督)   2018-06-30 13:13:00
我觉得写的很不错啊 很好懂
作者: Tiamat6716 (ティアマト)   2018-06-30 13:19:00
社会组表示能理解
作者: watchr (30怒狮)   2018-06-30 13:20:00
很好懂啊,其实就是触发判定跟效果作用的时间点交错的问题
作者: twosheep0603 (两羊)   2018-06-30 13:43:00
我觉得跟stack queue无关欸 单纯是程式逻辑的问题
作者: banmaxwill   2018-06-30 13:59:00
推个,已读未懂。
作者: FrozenWilly (冰奶茶威利)   2018-06-30 14:11:00
我觉得用传统stack跟queue的解释方法就好XD
作者: harehi (hare)   2018-06-30 16:19:00
故事太长了反而读到一半忘记原本在干嘛XD
作者: ptt0211 (松城煙雲)   2018-07-01 00:22:00
推资工
作者: Fallen27 (Re*)   2018-07-01 06:45:00
太有趣了,居然完全能看懂,优文推推

Links booklink

Contact Us: admin [ a t ] ucptt.com