-2

我想创建一个 minecraft 粘液计算器,我在这里找到了算法。但是,我对 java 不太了解,我想把它翻译成 python。要做到这一点,我需要知道类似的东西是什么0x4c1906意思。这只是一个基本指针,我可以在 python 中保持相同吗?我是否必须使用某种二进制转换或其他东西?我对指针是什么以及在我的 python 编程中应该如何处理它们感到困惑。

4

3 回答 3

2

0x4c1906不是指针,它是十六进制值,十进制表示 4987142。

于 2012-11-03T04:36:08.243 回答
1

如果您想用 Python 编写代码,但使用 Java 的伪随机数生成器,请查看 Jython!

于 2013-07-23T19:26:07.380 回答
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++ 中,通过与 java 非常相似的 C++ 代码很容易为种子计算相同的值,并且通过 srand() 很容易初始化 RNG,但随机数序列在 C++ 中通常与在 java 中不同。如旧 daniweb 帖子中所述,不同的 C++ 实现通常使用彼此不同的 RNG,并且给定任何种子开始将生成不同的数字序列。相比之下,java 标准为类指定了“特定算法” Random,以使结果可复制和可移植。请参阅链接以获取您需要实现的额外代码位以获得相同的结果。

于 2012-11-03T05:40:13.480 回答