我想创建一个Minecraft粘液计算器,我找到了算法here。但是,我根本不了解java,我想把它翻译成python。要做到这一点,我需要知道0x4c1906
之类的含义。这只是一个基本的指针,我可以在python中保持相同?我是否必须使用某种二进制转换?我很困惑指针是什么以及如何在我的python编程中处理它们。
答案 0 :(得分:2)
0x4c1906
不是指针,它是十六进制值,并且十进制表示法表示4987142。
答案 1 :(得分:1)
如果你想用Python编写代码,但是使用Java的伪随机数生成器,请查看Jython!
答案 2 :(得分:0)
java代码片段中的几个十六进制常量
Random rnd = new Random(seed +
(long) (xPosition * xPosition * 0x4c1906) +
(long) (xPosition * 0x5ac0db) +
(long) (zPosition * zPosition) * 0x4307a7L +
(long) (zPosition * 0x5f24f) ^ 0x3ad8025f);
return rnd.nextInt(10) == 0;
用于计算随机数生成器(RNG)的种子。要复制java代码的效果,您需要使用java运行时系统提供的RNG。在C ++中,通过C ++代码很容易为种子计算相同的值,并且很容易通过srand()初始化RNG,但随机数序列在C ++中通常与java不同。如old daniweb post中所述,不同的C ++实现通常使用彼此不同的RNG,并且给定任何种子开始将生成不同的数字序列。相比之下,java standards为Random
类指定了“特定算法”,以使结果可复制和可移植。请参阅链接,了解您需要实现的额外代码位以获得相同的结果。