Как я могу написать для пользователя, чтобы установить свое собственное семя - PullRequest
0 голосов
/ 24 января 2019

Я программирую игру уже около недели, и у меня есть хороший кусок базового кода, где я застрял, однако, как мне сделать так, чтобы игрок мог установить свое собственное начальное числоиспользуя random.seed, немного посмотрев вокруг, я не смог найти никакого способа сделать это на самом деле, я подумал о том, чтобы поместить в него переменную наподобие random.seed (переменная), но она просто использует слово в качестве начального числа.на правильном пути с этим или я слишком далеко от цели?Извините, если это действительно легко для некоторых людей, но я все еще новичок в Python

1 Ответ

0 голосов
/ 24 января 2019

Это (действительно) короткая программа, которая печатает 50 случайных чисел от 0 до 100, принимая начальное значение в качестве первого аргумента:

import random
import sys

if len(sys.argv) > 1:
    random.seed(sys.argv[1])

for _ in range(0, 50):
    print(random.randint(0, 100))

Затем из командной строки:

python3 myscript.py 1

Это напечатает непротиворечивый набор или случайные числа для любого числа, которое вы предоставите.

Более "настраиваемая" версия, которая также включает разбор аргументов:

import argparse
import random
import sys


parser = argparse.ArgumentParser()
parser.add_argument('--seed')
parser.add_argument('--count', default=50, type=int)
parser.add_argument('--max-value', default=100, type=int)

args = parser.parse_args()

if args.seed:
    random.seed(args.seed)

for _ in range(0, args.count):
    print(random.randint(0, args.max_value))

ПРИМЕЧАНИЕ. Желательно использовать int в качестве аргумента для random.seed, но random.seed также будет принимать произвольную строку и «оцифровывать» ее в целях получения числа, которое будет использоваться для семена. Похоже, что для ваших целей это поведение по умолчанию на самом деле хорошо, так что может также воспользоваться этим.

...