一般的手遊專案中,策劃挖數值坑的點來來去去就幾樣:裝備、寵物、寶石、附魔、強化。
想讓玩家爆肝怎麼辦?調整爆率、公升級、合成、突破、進化等等
只有你想不到的,沒有老八做不到的。今天給大夥整乙個俄羅斯二手的裝備合成演算法
為什麼是二手的,因為我不是第乙個發部落格寫這個演算法的人
裝備系統的合成圖譜,箭頭指向的是合成之後的裝備,每合成乙個裝備需要消耗一些金幣,箭頭上的數字表示合成所需的材料數量。
比如,要合成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 萬元的遊戲裝備...