我该如何编码以供用户设置自己的种子

时间:2019-01-24 01:26:07

标签: python python-3.x random-seed

我已经编写了大约一个星期的游戏,并且我已经在其中扎了很多基本代码,但是我却陷入其中,但是我是如何制作它的,以便玩家可以设置自己的种子使用random.seed,四处看看后我找不到任何实际的方法,我当时想像把一个变量像random.seed(variable)一样放进去,但这只是使用单词作为种子,是吗?在这个正确的轨道上,还是我远远超出了预期?抱歉,这对于某些人来说真的很容易,但是我还是python的新手

1 个答案:

答案 0 :(得分:0)

这是一个(真正的)简短程序,以种子为第一个参数,打印从0到100的50个随机数:

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还将采用任意字符串并对其进行“数字化”以获取数字将用于种子。听起来像是出于您的目的,此默认行为实际上很好,因此最好利用它。