我正在创建一个小爱好数据库驱动的基于浏览器的游戏,我偶然发现了这个问题:我将用户拥有的钱存储为一个32位整数字段(确切地说,是两个字段)。一种是把钱储存在玩家手中,另一种是储存在银行里。我们都知道,可以存储在32位的最大值是2^32-1。
我绝对相信,95%的玩家将无法达到上限--但另一方面(在今天做了一些计算之后),优秀的玩家将能够积累那么多。
考虑到这一点,我提出了以下想法:
runtime.
我知道,对于一些球员来说,可达上限的存在是相当有限的,所以对我来说,第三种选择是最糟糕的。
是否有其他方法处理这类问题?你会选哪一个?
发布于 2010-01-08 23:02:40
更改为更大的数据类型可能是最简单的解决方案,除非您的游戏规模很大,否则磁盘空间/内存的考虑可能不会很大。有5000名用户在玩你的游戏吗?从32位到64位的转换将消耗大约20k的额外资源。这还不足以让你睡不着觉。
最好的答案可能来自熟悉银行如何处理这类情况的人,尽管他们的要求可能比你需要的要复杂得多。
发布于 2010-01-08 17:32:09
以现实世界为例,为什么不使用不同类型的硬币呢?例如,一百万美元的一栏硬币。
发布于 2010-01-08 17:31:54
内存上的空间不应该是一个问题,取决于您同时拥有的播放器的数量,但是存储为字符串肯定会占用更多的磁盘空间。
但是说真的,4294,967,296卢比/西蒙斯/弗隆?他们是谁?Sim盖茨?
https://stackoverflow.com/questions/2029364
复制相似问题