我的世界:一篇文章告诉你,为什么区块循环,钻石无限

在Minecraft这款游戏中,有“种子”这个说法,而它的存在也可以说是这个游戏的特色之一,毕竟一个其他游戏可不能随机生成世界,就算其他游戏也能做到游戏的随机性,但是那串名为种子的数字不是什么游戏都可以做到的,在MC中因为一点小问题导致的游戏出现的不过bug,导致了有很多种子都崩坏了。

我的世界:一篇文章告诉你,为什么区块循环,钻石无限

虽说种子被崩坏了,但是mojang发话了,什么bug?这叫特性。所以mojang对这款游戏众多特性拿捏得稳稳的,虽然它一直在刷新着我们对于MC的认知,但不就是个特性嘛,MC玩家什么没有见过?

但是本期文章就是给大家所填个坑,毕竟挖出来的坑总是要填的,那么究竟MC发生了什么才导致种子的崩坏呢?

什么是种子

在此之前小黑先和大家说说什么是种子,在游戏准备生成的时候,就会见一个算法给调出来String.hashCode(),而这个代码就是控制游戏中的种子生存的,它会在游戏中生成一个伪随机数的出现,那么就是这个值决定了一个世界是什么样子的,但因为伪随机数算法的性质,所以就导致了算法的数值(种子)是相同的,那么最后的结果也就是相同的,这就是种子的意义,我们就可以使用想同的种子来生成多个相同的世界。

我的世界:一篇文章告诉你,为什么区块循环,钻石无限


大白话:意思就是1+1等于2,这是一份答案,数学界上数学问题很多,那么我们就可以在复制一份进行游玩,答案始终是在哪里的,我们只是那其中的一份答案进行抄袭而已。

但是这会因为版本的不同,所以就导致种子使用不了,想当于人教版和苏教版是不一样的,所以种子也就不一样。

崩溃种子的诞生

那么种子是什么我们理解了,那崩溃种子问题是出现在哪个环节导致的呢?

我的世界:一篇文章告诉你,为什么区块循环,钻石无限

而这就要用到下面的这个代码了,我们利用了String.hashCode()来控制的种子的生成,随机种子是什么已经确定了,但是生成世界的时候就出现问题了。这个还是Minecraft系统就会采取第二个代码来生成世界MapGenBase.java(),而它就确定了该种子中的地形是否和这个种子能不能对上。

我的世界:一篇文章告诉你,为什么区块循环,钻石无限

但是有部分种子在计算的时候,出现了返回值为零的问题而正常情况下为1,所以就导致了区块在进行数学计算的时候x的都是零,而不是一。那么这样做的后果就是在某一条X轴的区块上面的结果都是零,这就导致了我们所看见的重复局面。

所以大家学废了吗“手动滑稽”。

好啦,本期文章给大家讲述了一下种子的原理和崩坏种子是怎么来到,谢谢大家的支持,我们下篇文章再会。

我的世界:一篇文章告诉你,为什么区块循环,钻石无限

展开阅读全文

页面更新:2024-03-31

标签:区块   大白话   随机性   随机数   世界   下篇   本期   算法   钻石   种子   特性   答案   数学   代码   文章

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top