Re: [閒聊] 論奶砲的判定

看板Shadowverse (闇影詩章)作者 (凜寒)時間7年前 (2018/06/30 05:12), 7年前編輯推噓29(29014)
留言43則, 33人參與, 7年前最新討論串2/3 (看更多)
身為一個資工人,我應該可以用程式邏輯來解決你的疑問 先申明,我沒有實際看過遊戲程式碼,這些都只是猜測,但應該八九不離十 以下文長,注意! 首先,先給大家一點背景知識,程式設計中有兩個簡單的資料結構 一、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

06/30 06:02, 7年前 , 1F
神秘符文已經算陷阱卡了吧...
06/30 06:02, 1F

06/30 08:49, 7年前 , 2F
感覺很像priority queue呢
06/30 08:49, 2F

06/30 08:49, 7年前 , 3F
我是覺得不用想到那麼複雜(?)
06/30 08:49, 3F

06/30 08:49, 7年前 , 4F
反正只要知道效果發動的先後順序就好
06/30 08:49, 4F

06/30 08:52, 7年前 , 5F
講Queue我聽得懂 用掛號跟疊羅漢形容我還真一時被搞昏了(
06/30 08:52, 5F

06/30 09:21, 7年前 , 6F
趕快推免得別人知道我看不懂
06/30 09:21, 6F

06/30 09:49, 7年前 , 7F
講解很有趣XD
06/30 09:49, 7F

06/30 09:59, 7年前 , 8F
這讓我想到之前有一個考古題 有興趣可以做做看
06/30 09:59, 8F

06/30 09:59, 7年前 , 9F
06/30 09:59, 9F

06/30 10:00, 7年前 , 10F
資工人幫推
06/30 10:00, 10F

06/30 10:09, 7年前 , 11F
然而要不要砍掉重練 是企劃決定的 幫工程屍QQ
06/30 10:09, 11F

06/30 10:13, 7年前 , 12F
完全看得懂耶
06/30 10:13, 12F

06/30 10:13, 7年前 , 13F
其實SV觸發還是stack 只是他有很多個結算的時間點
06/30 10:13, 13F

06/30 10:14, 7年前 , 14F
幾乎所有判例都是stack 造成的結果,包含空包彈
06/30 10:14, 14F

06/30 10:25, 7年前 , 15F

06/30 10:48, 7年前 , 16F
我到底看了什麼 XDD
06/30 10:48, 16F

06/30 10:57, 7年前 , 17F
共啥毀啦
06/30 10:57, 17F

06/30 11:08, 7年前 , 18F
難怪課本都用圖解法 寫成字沒人看得懂 XD
06/30 11:08, 18F

06/30 11:19, 7年前 , 19F
我看不懂
06/30 11:19, 19F

06/30 11:22, 7年前 , 20F
認真分析文
06/30 11:22, 20F

06/30 11:22, 7年前 , 21F
先推不然別人以為我看得懂
06/30 11:22, 21F

06/30 11:30, 7年前 , 22F
先推不然別人以為我看得...唉唉?? 樓上你484推錯了
06/30 11:30, 22F

06/30 11:54, 7年前 , 23F
推個好分析
06/30 11:54, 23F

06/30 11:58, 7年前 , 24F
我看到醫生和患者整個秘魯問號就不看了
06/30 11:58, 24F

06/30 12:12, 7年前 , 25F
然後這也不是queue和stack的問題 是目標選擇的問題
06/30 12:12, 25F

06/30 12:13, 7年前 , 26F
講白了懶人包那三行就講完了 其他一堆讓人更看不懂而已
06/30 12:13, 26F

06/30 12:16, 7年前 , 27F
先推不然別人以為我看得懂
06/30 12:16, 27F

06/30 12:19, 7年前 , 28F
我覺得寫得很好已經算淺顯易懂了 XD
06/30 12:19, 28F

06/30 12:24, 7年前 , 29F
先推不然別人以為我看的懂 不過我資工背景的朋友說這樣
06/30 12:24, 29F

06/30 12:24, 7年前 , 30F
寫很有趣 可惜看不懂如我們這種外行人無從領會
06/30 12:24, 30F

06/30 12:36, 7年前 , 31F
不是啊 我也資工的啊 可是我還是覺得莫名其妙啊
06/30 12:36, 31F

06/30 12:47, 7年前 , 32F
快推文免得被人發現我看不懂
06/30 12:47, 32F

06/30 12:57, 7年前 , 33F
我電機的覺得這篇寫的很奇怪...
06/30 12:57, 33F

06/30 12:58, 7年前 , 34F
寫一堆故事反而難懂
06/30 12:58, 34F

06/30 13:13, 7年前 , 35F
我覺得寫的很不錯啊 很好懂
06/30 13:13, 35F

06/30 13:19, 7年前 , 36F
社會組表示能理解
06/30 13:19, 36F

06/30 13:20, 7年前 , 37F
很好懂啊,其實就是觸發判定跟效果作用的時間點交錯的問題
06/30 13:20, 37F

06/30 13:43, 7年前 , 38F
我覺得跟stack queue無關欸 單純是程式邏輯的問題
06/30 13:43, 38F

06/30 13:59, 7年前 , 39F
推個,已讀未懂。
06/30 13:59, 39F

06/30 14:11, 7年前 , 40F
我覺得用傳統stack跟queue的解釋方法就好XD
06/30 14:11, 40F

06/30 16:19, 7年前 , 41F
故事太長了反而讀到一半忘記原本在幹嘛XD
06/30 16:19, 41F

07/01 00:22, 7年前 , 42F
推資工
07/01 00:22, 42F

07/01 06:45, 7年前 , 43F
太有趣了,居然完全能看懂,優文推推
07/01 06:45, 43F
文章代碼(AID): #1RDg3BJn (Shadowverse)
文章代碼(AID): #1RDg3BJn (Shadowverse)