诛仙私服代码分析炼器成功率
广告位 ID:14

诛仙私服代码分析炼器成功率

2018-06-12 20:14:44热度:作者:来源:
广告位 ID:12
广告位 ID:13

 嗯嗯,看着各个BBS中诛仙版本讨论最多的关于炼器的话题,真的忍不住要说几句了。 


首先,我可以很负责任的告诉你,那些整天说着使用啥啥啥方法后自己炼器成功率如何如何高的,基本上都是没有根据的。 


下面我用几句很简单的程序代码来模拟一下物品炼器动作时候游戏程序中的处理流程。 

/// 
/// 精炼物品(为了简单起见,我们假设不需要放入炼器符,以及放入什么完毕/吉星的情况) 
/// 
/// 待精练的物品 
/// true: 成功 / false: 失败 
public static bool Refine(Item targetItem) 

System.Random rand = new Random(); 



// 为了方便、简单起见,我现在假设游戏中炼器的级别可以分为以下0-16级(就是游戏中物品名字后面的+N) 
int[] levels = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }; 



// 这里由系统产生一个0至16随机数(其实程序中所产生的随机数都属于伪随机,不可能达到真实世界中的发生的随机效果 
// 但是还是足够"随机"地产生一个指定范围内的数值啦,嘿嘿。 
// 
int flag = levels[rand.Next(0, 16)]; 



bool result = false; 
// targetItem是用来描述你从炼器师那打开炼器的窗口后拖到框中的物品 
// 我们假设这个物品有一个名叫RefineLevel(即炼器级数,如+1时RefineLevel就为1,依此类推) 
// 现在我们拿刚才"随机"产生的数值跟这个要进行炼器的物品的当前炼器级数进行比较 
// 我们假设当取出的数据比物品的炼器级数大时就炼器成功 
// 请注意!!!我这里只是假设用该种方法来实现炼器过程,真实游戏中的设定肯定远比这复杂的多 
// 但是,我相信不管怎样复杂的处理,其中最最核心决定成功率的问题肯定涉及到随机数! 
if (flag > targetItem.RefineLevel) 

// 这里表示成功的情况,我们让物品的炼器等级提高一级(当然,真实游戏中还需要重新设置攻击/防等等数据!) 

targetItem.RefineLevel++; 
result = true; 

else 

// 这里表示失败的情况,我们让物品的炼器等级降一级或是直接将物品删除 
targetItem.RefineLevel--; // targetItem.Delete(); 
result = false; 




return result; 




/// 
/// 精炼物品(处理附加特殊物品及放入的炼器符,以及放入什么完毕/吉星等等辅助物品的情况) 
/// 
/// 待精练的物品 
/// 用于提高成功率的特殊物品 
/// true: 成功 / false: 失败 
public static bool Refine(Item targetItem, params Item[] stuffItem) 

return false; 




好了,不管你是否看懂了上面的假设的一些代码,我想告诉大家的是不管怎样复杂的处理,其中最最核心决定成功率的问题肯定涉及到随机数! 

而一旦涉及随机数的地方,就不会是你说什么2次或N次失败后再一次就会成功等等这么简单的问题。 



所以,不要肓目相信所谓的炼器技巧,炼器是否成功绝大多数情况下是看你的运气了,当然,我们不可否认在少数几次抛硬币的过程中, 

当你连续抛出同一面的情况下,下一次抛出另一面的机率看起来要大些。:) 


广告位 ID:15
广告位 ID:16
广告位 ID:17
广告位 ID:9
广告位 ID:10

相关文章

广告位 ID:11
广告位 ID:11