Jestem przyzwyczajony do pisania random.randrange
. Zrobię from random import Random
, aby od razu wykryć błąd.Jak działa skrypt random.Random.seed python?
W grze z udziałem generacji proceduralną (nope, nie klonem Minecraft: p) Chciałbym zachować kilka różnych generatorów liczb pseudolosowych:
- jeden dla pokolenia świata (Pejzaż, questy itp.),
- jeden z losowych zdarzeń, które mogą się zdarzyć w świecie (np. obrażenia podczas walki).
Powodem jest to, że chcę móc odtworzyć pierwszy, więc nie chcę, aby drugi przeszkadzał.
Myślałem, że random.Random
został stworzony do tego. Jednak coś mnie zastanawia:
import random
rnd = random.Random()
rnd.seed(0)
print [random.randrange(5) for i in range(10)]
rnd.seed(0)
print [random.randrange(5) for i in range(10)]
wytwarza dwie różne sekwencje. Kiedy robię rnd = random
, to wszystko działa zgodnie z oczekiwaniami, ale potrzebuję kilku generatorów.
Czego mi brakuje?
Zajęło mi to kilka minut, aby to zauważyć. Nie czuj się złym wydarzeniem dla nas wszystkich, cieszę się, że to rozwiązano :) –