我正在研究一个'思考'我正在处理的游戏的功能 - 它从XML文件中提取随机字符串,将它们组合起来并使它们变得有趣#39;但是,我遇到了一个小问题,因为每次都会选择相同的项目。
我正在使用的两个功能是
function randRoller($number)
{
mt_srand((microtime()*time())/3.145);
$x = [];
for($i = 0; $i < 100; $i++)
{
#$x = mt_rand(0,$number);
}
return mt_rand(0,$number);
}
/* RETRIEVE ALL RELEVANT DATA FROM THE XML FILE */
function retrieveFromXML($node)
{
$node = strtolower($node);
$output = [];
$n = substr($node,0,4);
#echo $node;
foreach($this->xml->$node->$n as $data)
{
$output[] = $data->attributes();
}
$count = count($output)-1;
$number = $this->randRoller($count);
return $output[$number];
}
当然,&#34; randRoller&#34;函数现在已经解散了,因为我拥有的原始版本(从计数中滚动了十个数字,然后选择得到最多骰子的数字)并没有按计划工作。
我已经尝试了一切我能想到的,以获得更好的效果&amp;&amp;谷歌搜索我的大脑来解决它。但仍然得到相同的重复结果。
答案 0 :(得分:0)
除非您知道自己在做什么,否则不要使用mt_srand()
,因为它会自动调用。请参阅http://php.net/manual/en/function.mt-srand.php上的说明:
注意:无需使用srand()或mt_srand()对随机数生成器进行播种,因为这是自动完成的。
删除(全部)mt_srand()
个电话。