如何用golang写游戏加经验函数不出错
Posted littlelee
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用golang写游戏加经验函数不出错相关的知识,希望对你有一定的参考价值。
游戏中加经验的地方很多,很多人写的很乱,我把这个功能用
比较简单且清晰的方法写了下来。代码如下:
package main import ( "fmt" "log" "github.com/emirpasic/gods/maps/treemap" ) func main() { exp := []int{ 20, 30, 40, 50, 70, 300, 350, 560, 650, 1000, } expMap := treemap.NewWithIntComparator() for i := 0; i < len(exp); i++ { expMap.Put(i+1, exp[i]) } fmt.Println(expMap.String()) addExp := 900 // 最笨的办法一级一级算 curLevel := 2 curExp := 4 totalExp := curExp + addExp // 最清晰的算法逻辑 for lvIndex := curLevel + 1; lvIndex <= 10; lvIndex++ { needExp, ok := expMap.Get(lvIndex) if !ok { log.Println("逻辑错误, 出错等级:", lvIndex) return } v := needExp.(int) if totalExp > v { totalExp -= v curLevel += 1 } else { break } } curExp = totalExp if curLevel >= 10 { curExp = 0 } fmt.Println("当前等级:", curLevel, ", 当前经验值:", curExp) fmt.Println("hello exp!") } output: TreeMap map[1:20 2:30 3:40 4:50 5:70 6:300 7:350 8:560 9:650 10:1000] 当前等级: 7 , 当前经验值: 94 hello exp!
以上是关于如何用golang写游戏加经验函数不出错的主要内容,如果未能解决你的问题,请参考以下文章
太原面经分享:如何用js实现返回斐波那契数列的第n个值的函数