软件星级:3分
首先,你有背包,背包里有物品
如何知道你有多少物品,有什么物品
在access数据库里,
我给每个物品设置了编号,101-999,近900个,一个简单游戏里不会超过900个物品吧。
然后每个物品下边是数量+10000,我是想着有4个背包,每个30格,每个最多99个物品。这就是30*4*99=12000-120=11880个。
而背包信息为#101*10010这样的,101代表物品号,10010代表有10个,10199代表有199个。如果背包里是同一种物品,就是21880,还是五位数
这样就方便查找数据,比想查找110号物品数量,就向有移动10*9个字节,到达#110*xxxxx。
我就是为这个事想了7天,终于找到了让我满意的方法。
游戏里,战胜对手这些都是摸不到看不着的快乐,而游戏物品则是构成一个游戏必须的,人物属性也可以看作是物品来处理。如何找到一个简单的方法解决问题,我认为是很有必要的。这个程序主要是把所有的物品,按照#物品号1*数量#物品2*数量···这样的顺序排列,#xxx*xxxxx,每个占10字节。
这个同样可以用到其他地方,就像打游戏的高配置电脑,拿来做需要高配置的cad图完全没问题。
算法是固定的,但人是活的,可以改做其他用。比如做个超市收银什么的
会不会有人想到,直接查找文本不就行了,查找“#”,需要第N号物品,查找第N个“#”的位置。当然也是可以的,但是我认为提高代码效率也是很有必要的。
怎么得出有几个格被占了。首先找到第一个物品数量,减10000,得出真是数量,假设是100个。然后把他变成负数,-100/99=-1.010101,取整,得-2,再取绝对值得2。(变相进一法,这个是从网上查到的)
写出来表达式就是:取绝对值(取整((10000-数量)/99))
其他的都没有难度,连接数据库,读取,添加,查找。