【问题标题】: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 也将采用任意字符串并将其“编号”以获取将用于种子。听起来您的目的,这种默认行为实际上很好,所以不妨利用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-08
      • 2020-04-03
      • 2019-01-31
      • 1970-01-01
      • 2015-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多