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