如何为用户编写代码以设置自己的种子


我已经编写了一个

游戏大约一个星期了,我已经掌握了大量基本代码,但是我陷入困境的是我如何制作它,以便玩家可以使用random.seed设置自己的种子,环顾四周后,我找不到任何实际执行此操作的方法, 我正在考虑在其中放入一个变量,例如 random.seed(variable),但这只使用这个词作为种子,我是否走在正确的轨道上,或者我离目标很远?抱歉,如果这对某些人来说真的很容易,但我对 python 仍然有点陌生

这是一个(非常)短的程序,它打印 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也会采用任意字符串并对其进行"编号",以便获得将用于种子的数字。听起来就您的目的而言,此默认行为实际上很好,因此不妨利用它。

最新更新