我的世界煤泥计算器算法

时间:2012-11-03 04:33:22

标签: java python minecraft

我想创建一个Minecraft粘液计算器,我找到了算法here。但是,我根本不了解java,我想把它翻译成python。要做到这一点,我需要知道0x4c1906之类的含义。这只是一个基本的指针,我可以在python中保持相同?我是否必须使用某种二进制转换?我很困惑指针是什么以及如何在我的python编程中处理它们。

3 个答案:

答案 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 standardsRandom类指定了“特定算法”,以使结果可复制和可移植。请参阅链接,了解您需要实现的额外代码位以获得相同的结果。