Comment fonctionnent les graines de niveau?

Je vois les graines Minecraft listées, et j'ai commencé à essayer quelques-uns de mes propres.

J'ai remarqué que l'utilisation de la même graine produit des styles de cartes très similaires, c.-à-d. Commencer dans un biome spécifique, des montagnes très élevées, etc., mais reproduisent-elles exactement les cartes et vous générez simplement au même endroit ou sont-elles simplement un ensemble très spécifique Des règles pour la zone que vous générez d'abord?

Si j'ai deux cartes de la même graine et que je marcher à 1000 blocs vers le nord, les cartes seront identiques ou similaires ou totalement aléatoires après la première zone de frai?

Les ordinateurs sont des machines déterministes, incapables en tant que telles d'un comportement non déterministe (= aléatoire). Ce qu'ils peuvent faire, c'est utiliser des mathématiques complexes pour simuler des comportements aléatoires: cela donne des nombres pseudo-aléatoires.

Par exemple, lorsque je lance Python 3 pour Windows 7, je reçois:

>>> import random >>> random.seed(1) #I set the seed to a fixed value... >>> random.random() #and ask for 3 "random" numbers 0.13436424411240122 >>> random.random() 0.8474337369372327 >>> random.random() 0.763774618976614 

Je me connecte ensuite à une machine Ubuntu 11.04 avec Python 2 et obtenez:

 >>> import random >>> random.seed(1) #I set again the seed to the previous fixed value >>> random.random() #and ask again for 3 "random" numbers 0.13436424411240122 >>> random.random() #...doesn't look very random, does it? 0.8474337369372327 >>> random.random() 0.763774618976614 

Ainsi, le même moteur pseudo-aléatoire donnera toujours les mêmes nombres dans le même ordre. Cela n'implique pas que le jeu utilise effectivement les mêmes nombres de la même manière, cependant, comme l'a pensé perspicace. Cependant, le jeu pourrait être écrit d'une façon à assurer cela; Par exemple, on pourrait dériver de chaque graine (par exemple, "foo") une graine différente pour chaque bloc (par exemple, "foo @ 1 @ 2" pour déterminer le morceau 1,2). Comment pouvons-nous dire comment cela se fait?

Il n'y a qu'un moyen de le savoir!

J'ai utilisé la semence " Mersenne " pour créer deux mondes, un monde A et un monde B.

Dans le monde AI engendré dans le monde A au (262.5, -280.5); J'ai essayé de passer dans la direction que j'ai engendrée dans le plus possible pour 500 unités, puis de retour pour mille. C'est ce que j'ai compris.

Mersenne Une carte.

Dans BI mondial généré (+259.5, -276,5), pour faciliter les choses. J'ai tenté de passer dans la direction opposée à celle que j'ai engendrée pour 500 unités, puis de mille; En bref, j'ai voyagé d'un côté à l'autre sur le même 1,5 km, juste dans un ordre différent. C'est ce que j'ai compris.

Carte Mersenne B. Principalement identique.

(Gardez à l'esprit que, comme j'ai exploré, j'ai supprimé des blocs ici et là à des fins de navigation.)

Ces résultats sont choquants identiques. Je dis choquante parce que j'ai eu l'impression que les deux mondes étaient assez similaires … mais pas tout à fait pareil.

En effet, si nous agrandissons le point de fraie, nous pouvons voir des différences … mais ce n'est qu'en se basant uniquement sur les arbres. La zone souterraine n'est pas représentée et identique.

Point spatial, zoomé.

En bref: le système de semences est presque parfait et la même graine vous donnera deux mondes qui sont presque identiques les uns aux autres. Je n'ai pas essayé le néant, mais je n'ai aucune raison de croire que cela se comporterait différemment.

La graine dans Minecraft est utilisée comme graine aléatoire , c'est-à-dire qu'elle provoque le générateur de terrain pour produire des terrains aléatoires , mais de manière répétitive . L'utilisation de la même graine entraînera un terrain identique , pour autant que vous marcher, jusqu'aux fleurs, et le bas .

Votre point de ponte peut ne pas être identique cependant.

Il existe environ 18 quintiles (18 000 000 000 000 000 000) de différentes graines possibles.

Les graines pour une carte dans Minecraft sont utilisées dans un générateur Pseudo Random .

Un générateur de nombres pseudo-aléatoires (PRNG) est un algorithme pour générer une séquence de nombres qui se rapproche des propriétés des nombres aléatoires. La séquence n'est pas vraiment aléatoire car elle est complètement déterminée par un ensemble relativement petit de valeurs initiales, appelé l'état PRNG.