picaxe 28x1随机数发生器

时间:2017-02-09 19:46:08

标签: random picaxe

我有一些简单的代码使用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,而不是非常随机,我不知道为什么。

任何帮助非常感谢

由于

1 个答案:

答案 0 :(得分:1)

检查PICAXE BASIC language manual会显示代码可能出现的一些问题:

  • 必须使用timer命令初始化settimer系统变量才能使用它
  • 取决于您使用settimer时使用的预加载值,timer的值可能在一次循环迭代和下一次循环之间的短时间内没有变化,这将给出相同的结果random
  • random应该与单词变量(w0,w1等)一起使用,而不是字节变量

我认为random的手册条目暗示你应该这样做,虽然我同意如果你不熟悉随机数生成并不是很清楚,那就是种子{{1}用random 第一个时间调用它,然后每次用它自己的先前值为它播种:

timer

然而在说完所有这些之后,PICAXE编程编辑器的一个版本或其他版本中的模拟器当然无法正确模拟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 的行为案例。如果您无法在真正的PICAXE上运行代码,请将此问题转到PICAXE forum,革命教育支持人员以及其他知识渊博的用户将会看到它。