如果在《我的世界》種子輸入“π”,地圖會加載出一個“圓”嗎?
如果在《我的世界》地圖種子里輸入“π”,那么這個世界會誕生一個“圓”么?
“π”種子的圓形論

就好比“666”邪惡種子的都市傳說一樣,在Minecraft社區(qū)流傳著一個圓周率“π”的種子。因為圓周率代表無限不循環(huán)小數(shù),而在《我的世界》對于種子的代碼轉換和處理,會讓程序持續(xù)處理這個無線的小數(shù),從而造成對真?zhèn)€地圖生成的破壞,誕生一個圓形地圖。

那么這個說法究竟是真實存在的,還是Mojang刻意留下的BUG,又或者是這就是一個空穴來風的謠言呢?
Minecraft的種子會存在BUG,而影響地形生成么?

科學地說,這種解釋是合理的。一個正常的Minecraft當然是以四四方方的結構出現(xiàn)。但《我的世界》在地形生成時,會從種子中提取數(shù)值,調用一個算法來實現(xiàn)對地形、結構、樹木、生物的分層次構建。而當這個種子提取數(shù)值出現(xiàn)了某種BUG的時候,地形也就出現(xiàn)了問題。

例如在Minecraft已知的42億顆種子里,目前被人類發(fā)現(xiàn)有2個種子會導致MC地形的異常生成。它們就是“107038380838084”和“164311266871034”。它們對地形最直接的影響就是在X軸和Y軸上誕生諸多無限循環(huán)的地形結構。

Mojang將其認為是一個合理化的SEED特性,因為僅僅是靠運氣發(fā)現(xiàn)這兩顆種子,那你需要擁有42億分之一的運氣。所以從這點來說,也算是間接證明了種子是可以影響到MC的地形生成。
用圓周率“π”作種子會發(fā)生什么?

按照目前世界上最新的數(shù)據(jù),圓周率“π”現(xiàn)已算到了小數(shù)點后31.4萬億位的恐怖長度了,有人說當有一天解開了圓周率,也就找到了宇宙的奧秘。不過這么長的數(shù)字輸入到“我的世界”種子里,單純的數(shù)據(jù)處理和計算估計都會讓mc徹底卡死。

我們用JAVA版1.14.4為例,在種子中輸入“π”后,出生在一個非常平凡的海邊。用/seed指令調出當前π轉換的數(shù)字,發(fā)現(xiàn)并沒有出現(xiàn)我們想象的“3.141592654~”的恐怖數(shù)字而是“960”。所以顯然Minecraft自身代碼對種子的解析處理并不會對π做計算。
所以我們直接取“π”的常數(shù),再做一次實驗

已知JAVA版種子的最大數(shù)值長度為34位數(shù),所以我們取π的34個字符,也就是“3.141592653589793238462643383279”

出生點是在一棵平原中的橡樹下,來看這棵樹就是整個地圖的中心原點了。當我們不斷地試圖向空中飛去的時候,俯瞰地面,你會驚訝地發(fā)現(xiàn),區(qū)塊會隨著你不斷上升而持續(xù)加載。

剛開始尚且呈現(xiàn)的還是一個“方形”地圖,因為Minecraft是以16*16的方形區(qū)塊為單位進行加載和渲染的。不過我們繼續(xù)上升。

在夜空中上升,一個明顯的地球一般的球體看開始出現(xiàn)。不過云層阻礙了我們的視線,設置里將云層調整為“無”。

如果你的CPU足夠強大,隨著高度的不斷上升,Minecraft地圖最終形成一個近乎“圓”的球體。這是為什么呢?真實是圓周率再作祟么?

回答當然是否定的!這只是地形加載的比較慢罷了。雖說MC是以一個區(qū)塊為單位進行加載,但其實無論是區(qū)塊還是方塊,都是以某個方塊為圓心向四周擴散式加載。
所以,無論是圓周率π,還是一個3.14的常數(shù),在《我的世界》種子中的返回值都沒有觸碰“0”或者是某種無限加載的BUG,MC的種子也并沒有對π進行運算。所謂誕生的“圓形地圖”,也不過是無稽之談罷了。