[請益] godot做戰棋防SL刷機率作法?

作者: a159371153 (小白)   2025-11-28 01:33:56
以下是我問Gemini 3 pro (付費)的全文,完全看不懂Gemini在說什麼,請問Gemini說的
真的是現在戰棋遊戲的做法嗎? 有人能解釋Gemini說的到底是什麼意思…
<<<<我>>>>
我想跟你徹徹底底地討論用godot做戰棋遊戲的這個問題,問題如下: 我遇到重大問題,
我發現可以重複刷命中率或爆擊率耶,攻擊後若未命中或未爆擊,直接右鍵重來一次,總
有一次會命中或者爆擊,這不對吧? 怎可以這樣刷機率?
攻擊後仍然要可以悔棋,但不能刷機率!
正確做法是在顯示攻擊預測視窗時就「決定命中與爆擊結果」,悔棋也無法改變。(例如
算好會命中,那麼打過去就必命中;算好會爆擊,打過去就必爆擊,也就是提前計算結果
了,但不要在攻擊預測視窗顯示這個偷偷計算的結果)ꀊ
應該要用「比對種子」的方法,也就是在顯示攻擊預測視窗時,其實早就算好結果了,然
後產生獨一無二的種子,同時儲存這次的「攻擊預測視窗的數據」與「命中與爆擊的注定
結果」到「暫存區」,若某次攻擊的種子與這次完全相同,則把該種子在暫存區的「攻擊
預測視窗的數據」與「命中與爆擊的注定結果」調用出來取代該次的「攻擊預測視窗的數
據」與「命中與爆擊的注定結果」。ꀊ
而種子就利用這些數據「第幾回合、攻擊者ID、攻擊者座標、被攻擊者ID、被攻擊者座標
、技能ID、閃避命中爆擊公式的相關參數」來生成,種子要獨一無二,且要確定數據相同
時算出來的種子必相同。(閃避命中爆擊公式的相關參數如SKL、LUK......等)
而這個「暫存區」在我測試時要永久存在,但關閉測試視窗時暫存區要清除。單場戰鬥(
不是單次攻擊,是單場戰鬥)要保留這個暫存區是為了設計「真正的悔棋」,就是可以跨
回合悔棋的機制,就算是跨回合悔棋,用完完全全相同數據的方式攻擊,仍然會產生相同
的種子,導致攻擊結果與之前相同。 這樣的想法是對的嗎?
作者: zxc9764315 (Norus)   2025-11-28 02:29:00
你先查一下隨機演算法,應該就能理解何謂固定種子
作者: a159371153 (小白)   2025-11-28 03:48:00
但gemini說的很奇怪,什麼用那些數據計算出一個1-100的數,然後大於命中率就打不中,小於命中率就打得中,完全不是常見的那種種子…常見的種子不是一串很長的數字嗎? 所以我才會覺得gemini說的這套很怪
作者: wangm4a1 (水兵)   2025-11-28 07:40:00
沒看到1-100 還是你指0-1.0 種子它是用hash
作者: yukari8 (林檎)   2025-11-28 10:38:00
是用種子去算數字吧 種子固定不變+其他參數去算0-1.0的數字來判斷有沒有命中 因為種子固定 如果悔棋後又做出一樣的操作 全部參數都會一樣所以會算出同樣數字產生同樣結果
作者: wulouise (在線上!=在電腦前)   2025-11-28 12:17:00
同seed, rand結果一樣,命中率90, 小於90都中也沒錯
作者: BSpowerx (B.S)   2025-11-28 13:07:00
根本設計上戰棋就不該搞爆擊/miss這種賽機率的東西了= =
作者: NDark (溺於黑暗)   2025-11-28 16:52:00
XCOM確實被詬病95% miss這種東西
作者: a159371153 (小白)   2025-11-28 17:24:00
那怎不做種子就好,然後比對種子就好,為何還要特地把它轉換成1-100的數? 然後把這個數跟命中率比對的這點是我最無法理解的東西,用一堆跟命中率無關的數據(例如座標)算出來的數字,跟命中率根本是不同的東西,怎可以比? 就好像拿公斤跟公尺比大小一樣
作者: LPH66 (-6.2598534e+18f)   2025-11-29 12:08:00
你把他回你的東西全部混在一起了他不只回你種子設計還回你怎麼做判定然後你以為全部都是在講種子的事

Links booklink

Contact Us: admin [ a t ] ucptt.com