我有一些简单的代码使用随机数函数从picaxes网站(稍微调整)
symbol counter = b7
symbol randword = b5
for counter = 0 to 10
let randword = timer
random randword
write counter, b5
next counter
end由于某些原因,在picaxe编辑器版本5上这是完美的,但在picaxe编辑器6上,它所做的只是给出2,而不是非常随机的,我不知道为什么。
任何帮助都非常感谢
谢谢
发布于 2017-02-15 06:39:34
检查PICAXE BASIC language manual可以发现代码中可能存在的几个问题:
settimer命令初始化timer系统变量,然后才能使用它settimer使用的预加载值,timer的值在一次循环迭代和下一次循环迭代之间的短时间内很可能没有更改,这将使您从randomrandom中获得相同的结果应与字变量(w0、w1等)一起使用而不是字节变量我认为random的手册条目建议您应该这样做,尽管我同意这并不完全清楚您是否刚接触随机数生成,就是在您第一次调用random时使用timer在中播种,然后在每次调用之后都使用它自己的前前值进行播种:
symbol counter = b5
let w3 = timer ; w3 is the word variable consisting of b6 and b7
for counter = 0 to 10
random w3
; ...do something with the value of w3 (but don't change w3 itself)...
next counter然而说了这么多之后,在Programming的一个或另一个版本中的模拟器肯定不能在所有情况下都正确地模拟timer的行为。如果你不能让代码在真正的PICAXE上工作,把这个问题带到PICAXE forum,在那里革命教育支持人员以及其他有知识的用户都会看到它。
https://stackoverflow.com/questions/42145534
复制相似问题