在Scratch 1.4中使用哪个随机数生成器,哪里可以在源代码中找到它的实现?如果它只是libc的random()
,请指出我所在的地方。
答案 0 :(得分:4)
Scratch 1.x是用Squeak Smalltalk编写的。您可以按照these instructions。
从Scratch中获取源代码 pick random () to ()
块在Scratch-Objects中定义 - > ScriptableScratchMorph(实例) - >其他操作 - > randomFrom:to:
。基本的基本代码是
t5 _ RandomGen next * (t4 - t3) + t3.
现在,RandomGen
是什么?事实证明,它在Scratch中定义(在类初始化中)只是作为Squeak的Random
的副本。
随机数生成器是Park-Miller生成器,它在Random类中实现。
Scratch还会在某些list blocks中调用一个随机数,您可以在其中使用“任意”列表项执行某些操作。这是在list ops -> lineNum:forList:
。