RPG遊戲裝備合成演算法

2021-10-08 12:28:57 字數 1698 閱讀 9598

一般的手遊專案中,策劃挖數值坑的點來來去去就幾樣:裝備、寵物、寶石、附魔、強化。

想讓玩家爆肝怎麼辦?調整爆率、公升級、合成、突破、進化等等

只有你想不到的,沒有老八做不到的。

今天給大夥整乙個俄羅斯二手的裝備合成演算法

為什麼是二手的,因為我不是第乙個發部落格寫這個演算法的人

裝備系統的合成圖譜,箭頭指向的是合成之後的裝備,每合成乙個裝備需要消耗一些金幣,箭頭上的數字表示合成所需的材料數量。

比如,要合成n個裝備a,需要消耗3n個裝備b、1n個裝備c、4n個裝備d,而且還需要消耗26n金幣(裝備b和裝備d的合成與此類似)。

一般解決樹結構的問題,首先想到遞迴。

其次限制合成裝備的條件有兩個,合成材料和金幣。哪個優先順序高呢,個人覺得是材料。

一般情況下,材料獲取難度高於金幣

雖然都可以在**花費高階金幣(鑽石)購買材料和金幣,但用鑽石購買金幣會讓玩家產生血虧的感覺,策劃應該避免這種情況

根據優先順序,先算出不花費金幣的情況下最多能合成的裝備數量

然後計算合成一件裝備的數量

最大數量×單價=總花費金幣

總花費金幣<玩家持有金幣,最大數量便是結果

總花費金幣>玩家持有金幣,只能用玩家金幣數除以單價得到結果

public

class

exam

public

class

itemdata

///

/// 計算用 totalgold 金幣最多可以合成的 item 裝備的數量

///

/// 要合成的裝備

/// 擁有的金幣

/// 可合成的 item 裝備的最大數量

public

intrun

(itemdata item,

int totalgold)

///

/// 計算合成1個item裝備要消耗的金幣數

///

/// 要合成的裝備

/// 合成1個item裝備要消耗的金幣數

private

intgetcost

(itemdata item)

int mincount =0;

for(

int i =

0; i < count; i++

) mincount +

= item.costgold;

return mincount;

}///

/// 計算不計金幣的情況下能合成最多的item裝備數量

///

/// 要合成的裝備

/// 可合成的 item 裝備的最大數量

private

intgetcount

(itemdata item)

int curcount, concount;

int mincount =

int.maxvalue;

for(

int i =

0; i < count; i++

)return mincount;

}}

測試用例參考這篇客

網狐架構之遊戲 裝載子遊戲服務 伺服器

gameserver.exe 啟動過程分析 1 cgameserverdlg oninitdialog m serviceunits.setserviceunitssink this m piserviceunitssink piserviceunitssink 同協調伺服器過程 注意此cservi...

京東「熱8購物季」聯合CF開啟遊戲裝備大賞

提到國民槍戰遊戲,很多人都會想到穿越火線,就在今年,穿越火線已經陪cfer們走過了 12 個年頭,京東聯合外星人 華碩 戴爾 英特爾等電腦數碼品牌,打造了國內首個基於cfhd遊戲場景的硬體 全力支援各位頭號玩家盡享沉浸式的戰鬥模式和全新的遊戲體驗。8 月 12 日至 18 日,來京東 熱 8 購物季...

男子花百萬買遊戲裝備 15萬裝備錯送他人

程式設計客棧 www.cppcns.com 8月13日 訊息 據南方 訊息,家住杭州的裘先生是網路遊戲夢幻西遊的老玩家。近日為了索回一筆鉅款,www.cppcns.com他乘坐飛機來到了廣州。為了玩遊戲,他已經花了一百多萬買裝備,然而前不久卻因為自己手滑不小心將價值 1程式設計客棧5 萬元的遊戲裝備...