标签:hello log out with 游戏 level 逻辑 算法 tput
游戏中加经验的地方很多,很多人写的很乱,我把这个功能用
比较简单且清晰的方法写了下来。代码如下:
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!
标签:hello log out with 游戏 level 逻辑 算法 tput
原文地址:https://www.cnblogs.com/LittleLee/p/9388024.html