作者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://www.ptt.cc/bbs/Shadowverse/M.1530306763.A.4F1.html
※ 編輯: nomdeplume (73.252.240.40), 06/30/2018 05:19:06
→ scarbywind: 神秘符文已經算陷阱卡了吧... 06/30 06:02
→ a498ss321: 感覺很像priority queue呢 06/30 08:49
推 hsakuya: 我是覺得不用想到那麼複雜(?) 06/30 08:49
→ hsakuya: 反正只要知道效果發動的先後順序就好 06/30 08:49
推 hsakuya: 講Queue我聽得懂 用掛號跟疊羅漢形容我還真一時被搞昏了( 06/30 08:52
推 GOGO579: 趕快推免得別人知道我看不懂 06/30 09:21
推 seeker3939: 講解很有趣XD 06/30 09:49
推 FoxWu930065: 這讓我想到之前有一個考古題 有興趣可以做做看 06/30 09:59
推 Javalin: 資工人幫推 06/30 10:00
推 kevin0925x: 然而要不要砍掉重練 是企劃決定的 幫工程屍QQ 06/30 10:09
推 DioEraclea: 完全看得懂耶 06/30 10:13
推 evildark: 其實SV觸發還是stack 只是他有很多個結算的時間點 06/30 10:13
→ evildark: 幾乎所有判例都是stack 造成的結果,包含空包彈 06/30 10:14
推 jones17188: 我到底看了什麼 XDD 06/30 10:48
推 ane2001617: 共啥毀啦 06/30 10:57
推 as920909: 難怪課本都用圖解法 寫成字沒人看得懂 XD 06/30 11:08
→ Romulus: 我看不懂 06/30 11:19
推 water200427: 認真分析文 06/30 11:22
推 SuperSg: 先推不然別人以為我看得懂 06/30 11:22
推 tom40819: 先推不然別人以為我看得...唉唉?? 樓上你484推錯了 06/30 11:30
推 cat84108: 推個好分析 06/30 11:54
→ Romulus: 我看到醫生和患者整個秘魯問號就不看了 06/30 11:58
→ Romulus: 然後這也不是queue和stack的問題 是目標選擇的問題 06/30 12:12
→ Romulus: 講白了懶人包那三行就講完了 其他一堆讓人更看不懂而已 06/30 12:13
推 KMSNY: 先推不然別人以為我看得懂 06/30 12:16
推 mashiroro: 我覺得寫得很好已經算淺顯易懂了 XD 06/30 12:19
推 Fritter: 先推不然別人以為我看的懂 不過我資工背景的朋友說這樣 06/30 12:24
→ Fritter: 寫很有趣 可惜看不懂如我們這種外行人無從領會 06/30 12:24
推 Romulus: 不是啊 我也資工的啊 可是我還是覺得莫名其妙啊 06/30 12:36
→ globalspirit: 快推文免得被人發現我看不懂 06/30 12:47
→ evildark: 我電機的覺得這篇寫的很奇怪... 06/30 12:57
→ zyx12320: 寫一堆故事反而難懂 06/30 12:58
推 AdmiralAdudu: 我覺得寫的很不錯啊 很好懂 06/30 13:13
推 Tiamat6716: 社會組表示能理解 06/30 13:19
→ watchr: 很好懂啊,其實就是觸發判定跟效果作用的時間點交錯的問題 06/30 13:20
推 twosheep0603: 我覺得跟stack queue無關欸 單純是程式邏輯的問題 06/30 13:43
推 banmaxwill: 推個,已讀未懂。 06/30 13:59
推 FrozenWilly: 我覺得用傳統stack跟queue的解釋方法就好XD 06/30 14:11
推 harehi: 故事太長了反而讀到一半忘記原本在幹嘛XD 06/30 16:19
推 ptt0211: 推資工 07/01 00:22
推 Fallen27: 太有趣了,居然完全能看懂,優文推推 07/01 06:45