【问题标题】:How do I code in for the user to set their own seed我如何编码让用户设置自己的种子
【发布时间】:2023-03-26 17:01:01
【问题描述】:
我已经编写了一个游戏大约一个星期了,我已经掌握了很多基本代码,但我遇到了困难,但是我如何制作它以便玩家可以设置自己的种子使用 random.seed,环顾四周后,我找不到任何方法来实际执行此操作,我正在考虑将变量放入其中,例如 random.seed(variable) 但这只是使用单词作为种子,是吗?在正确的轨道上还是我离目标很远?对不起,如果这对某些人来说真的很容易,但我对 python 还是有点陌生
【问题讨论】:
标签:
python
python-3.x
random-seed
【解决方案1】:
这是一个(真正的)短程序,打印 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 也将采用任意字符串并将其“编号”以获取将用于种子。听起来您的目的,这种默认行为实际上很好,所以不妨利用它。