如何用golang写游戏加经验函数不出错

littlelee littlelee     2022-12-18     452

关键词:

游戏中加经验的地方很多,很多人写的很乱,我把这个功能用
比较简单且清晰的方法写了下来。代码如下:
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!

  


如何用java写一个类似于游戏对话框的效果

想必大家一定玩过游戏吧,可能你会发现游戏里的对话框吧,今天就教大家做一个类似游戏的对话框吧我们用的语言是java语言,其次运行是在控制台运行的。 今天的内容为计时器,说到计时器,做计时器的方法很多,比如线... 查看详情

太原面经分享:如何用js实现返回斐波那契数列的第n个值的函数(代码片段)

面试攒经验,let‘sgo! 值此高考来临之际,闲不住的我又双叒叕出发去面试攒经验了,去了公司交待一番流程后,面试官甩给了我一张A4纸,上面写着一道js算法笔试题(一开始我并不知道这是在考察js算法),上面写着“1... 查看详情

如何用c语言做一个24点游戏的程序?

1.随机产生四个1-13的数,分别代表13张牌。2.提示玩家输入算式。3.判断玩家输入的表达式是否合法,其中算式中的四个数字只能是程序所给的四个数字,非法则回到1.4.如果玩家认为这四张牌算不出24点,可只输入?,程序将判断... 查看详情

如何用intellijidea12写一个helloworld,为啥新建不出来类啥的呢

参考技术A必须新建一个包,然后右键包会有新建class文件,12不支持空包 查看详情

如何用excel函数把多行多列按顺序转为多行一列

也不清楚你到底多少行多少列,也不知道你要什么规则,给你两种公式自己套用13列变成1列,行不限=OFFSET($A$1,INT((ROW(A1)-1)/13),MOD(ROW(A1)-1,13))公式下拉18行变成1列,列不限=OFFSET($A$1,MOD(ROW(A1)-1,18),INT((ROW(A1)-1)/18))公式下拉参考技术A... 查看详情

如何用 numpy 编写骰子损失反向传播

】如何用numpy编写骰子损失反向传播【英文标题】:Howtowritedice-lossbackpropogationwithnumpy【发布时间】:2019-10-1901:15:08【问题描述】:我正在尝试自己编写一个骰子损失函数。这是我写的前传。但我不明白如何计算反向传播。我试图... 查看详情

如何用sort对结构体进行排序

对find[i].a进行升序排序,同时find[i].b要与find[i].a绑定在一起参考技术Asort(数组名,数组名+长度,排序条件);排序条件可以是数组内容,也可以自己写一个比较用的bool函数来比较,不知道有没有记错==追问这样写程序会报错追... 查看详情

一日一技:如何用递归函数写出2**n-1?(代码片段)

一日一技:如何用递归函数写出2**n-1?摄影:产品经理实验室的年会下午茶已知n为正整数,写一个递归函数计算。在Python里面要计算非常简单:>>>defcalc(n):...return2**n-1...>>>calc(10)1023运行效果如下图所示:现在,需要... 查看详情

如何用python写一个贪吃蛇ai(代码片段)

前言这两天在网上看到一张让人涨姿势的图片,图片中展示的是贪吃蛇游戏,估计大部分人都玩过。但如果仅仅是贪吃蛇游戏,那么它就没有什么让人涨姿势的地方了。问题的关键在于,图片中的贪吃蛇真的很贪吃XD,它把矩形... 查看详情

如何用函数组件解决 React 中的不受控组件问题?

】如何用函数组件解决React中的不受控组件问题?【英文标题】:HowtosolveUncontrolledComponentprobleminReactwithFunctionComponent?【发布时间】:2021-12-1906:44:42【问题描述】:我正在制作表单组件。(它是功能组件)它是不受控制的组件,因... 查看详情

如何用c++编程制作一个简单的游戏引擎(代码片段)

写一个游戏引擎类的头文件(.h);写一个游戏引擎类的实现文件(.cpp);在编程中如何调用游戏引擎。一、在VS2015中新建一个VisualC++常规空项目,添加一个游戏引擎头文件实现文件。详细步骤... 查看详情

数字游戏:艺术家如何用大数据展现艺术

简评:现在,从社交媒体上分享的照片到运输网络的运行系统,人们每天产生的数据字节数多达2.5*100万的三次方(25后面加17个0)。掌握最新科技的艺术家正在利用这些「大数据」创造一种新的信息视觉语言。亚伦·科布林AaronKo... 查看详情

程序员如何用代码的方式过中秋?看看这170行代码写的中秋游戏(代码片段)

程序员没有诗人那么的满腹经纶,能吟诗作曲,写出“明月几时有?把酒问青天。”的千古诗文;没有达官贵人那般隆重庆祝,花费重金装饰庭院,摆满灯笼饰品,端上精美小盒的月饼、水果,美... 查看详情

如何用python编写一个求分段函数的值的程序

如何用python编写一个求分段函数的值的程序1、首先打开python的编辑器软件,编辑器的选择可以根据自己的喜好,之后准备好一个空白的python文件:2、接着在空白的python文件上编写python程序,这里假设当x>1的时候,方程为根号... 查看详情

r语言如何用函数调用26的字母

参考技术A最简单的方法就是每次引用时把写好的函数复制一下,到Rconsole中,然后写其他的。然后,编好的函数写成.r文件,下次直接使用命令source(function.r)就能导入使用了。 参考技术B直接输letters就有了 查看详情

a物体碰撞b物体,b物体发出声音music,这个如何用unity实现,代码怎么写

...术B搜一下:a物体碰撞b物体,b物体发出声音music,这个如何用unity实现,代码怎么写 查看详情

如何用js实现点击按钮下载文件

在按钮上写属性onclick="函数名()",作用是绑定click事件如<input type="button" onclick="Click()" value="Download" />然后在脚本处写上对应的函数即可,在函数中跳转到相应的文件路径就行。如... 查看详情

已经写好的控制台应用如何用mfc来添加窗口?

大神,我这边已经做好了一个控制台的程序,但是MFC我不会,可是我又没太多时间去全部的学习一遍MFC,请教下你可以吗?没有什么捷径,可以把自己的程序写成一个函数库然后在MFC里面调用,把输出显示在仓库上面。追问可是... 查看详情