游戏服务器开发-概率实现

xialian 2012-12-24 02:11:33
这里有开发游戏服务器端的程序员吗?
例如游戏装备强化概率是25%, 是怎么实现的?
是通过时间种子求随机数的方法实现的吗?
...全文
331 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wintree 2012-12-24
  • 打赏
  • 举报
回复
我们定义一个表,然后让策划填写,然后我们就根据这个来程序随机。。
疯狂的红豆 2012-12-24
  • 打赏
  • 举报
回复
游戏服务器我没写过,但是随机程序我还是有接触过的。基础就是库里的随机函数,int rand(void);这个函数产生的虽然是随机数,但是还是有规律呃。所以需要加一个种子,就用到了更高级的随机函数,void srand(unsigned int seed); 这是一个根据当前系统时间的不同有着不同数值产生的,可靠一点。两个函数的具体用法就不细述了。还有就是随机算法了,这个是配合着具体的应用使用的。
xialian 2012-12-24
  • 打赏
  • 举报
回复
rand这个随机出来的还是有规则可寻啊.
lee_鹿游原 2012-12-24
  • 打赏
  • 举报
回复

typedef int INT32;
inline INT32 GetRand( INT32 nMin,INT32 nMax)
{
  if(nMin == nMax+1)
  {
     return nMin;
  }
  return rand % (nMax - nMin + 1) + nMin;
}
zhuyf87 2012-12-24
  • 打赏
  • 举报
回复
引用 2 楼 mxzy55560593 的回复:
C/C++ code?123456789101112131415161718#define Random_Int(a,b)\ ((a)+(rand()%((b)-(a)+1)))//传入一个[0,100]的概率,进行一次随机,判断是否命中,使用宏Random_Precent进行计算 class CRandomPrecent { ……
+1
zilaishuichina 2012-12-24
  • 打赏
  • 举报
回复
并不是完全由时间种子来随机 一般会有计算一些加权 比如幸运值可以加权重 比如当前服务器上已经存在的高级装备的数量,数量过多会减权重 最终得出一个范围 ,在这个范围内按比例随机
lee_鹿游原 2012-12-24
  • 打赏
  • 举报
回复
不知道你的25%是不是数值策划给你的.. 一般游戏上的概率我接触过的,并不是太复杂,一般都是用rand函数
mxzy55560593 2012-12-24
  • 打赏
  • 举报
回复

#define Random_Int(a,b)\
	((a)+(rand()%((b)-(a)+1)))
//传入一个[0,100]的概率,进行一次随机,判断是否命中,使用宏Random_Precent进行计算
		class CRandomPrecent
		{
		public:
			static  bool Random_Precent(int n)
			{
				if(n<0)
					n=0;
				if(n>100)
					n=100;

				int nRandom=Random_Int(1,99);
				return nRandom<n;
			};
		};
#define Random_Precent(n) CRandomPrecent::Random_Precent(n)
给分给分 穷疯了..
科比布莱恩特 2012-12-24
  • 打赏
  • 举报
回复
引用 楼主 xialian 的回复:
这里有开发游戏服务器端的程序员吗? 例如游戏装备强化概率是25%, 是怎么实现的? 是通过时间种子求随机数的方法实现的吗?
装备升星,打比方:成吉思汗2中的升星以5星为准,升6星需要随机种子,越向上升星成功的机率越小,即随机性越小。可以通过时间种子与当前星位级别为准来判断。 25你可以很简单的设立一个srand(time),然后rand%10来算,一切自已定义。

64,662

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧