python-3.x - 如何为每个对象获取新的 Python 模块随机种子实例
问题描述
嗨,我正在创建用于解决蛇游戏的遗传算法。我有Game
课,它已经实现了所有的蛇游戏逻辑。我用它来评估每个Snake
人。
我正在为游戏中的蛇生成随机零食。但是我需要一种方法来为每个新Game
实例生成相同的随机零食位置,因此种群中的每条蛇都将在相同的环境中进行评估。
class Game:
def __init__(self, width, height, phenotype, seed, game_representation_strategy,
snake_length=5, snack_eaten_points=1, moved_toward_snack_points=0.1,
moved_away_from_snack_points=-0.2):
self.width = width
self.height = height
self.phenotype = phenotype
self.seed = seed
self.game_representation_strategy = game_representation_strategy
self.snack_perspective = None
self.snack_eaten_points = snack_eaten_points
self.moved_toward_snack_points = moved_toward_snack_points
self.moved_away_from_snack_points = moved_away_from_snack_points
self.status = GameStatus.INITIALIZED
self.snack = None
self.snake = []
self.score = 0
self.direction = Direction.LEFT
self.last_snack_distance = 0
self.initialize_snake(snake_length)
self.initialize_snack()
self.initialize_last_snack_distance()
解决方案
你可以
from random import Random
rng = Random(your_seed_here)
random
然后从该实例上的模块调用普通函数。
num = rng.randint(0, 100)
推荐阅读
- javascript - 我想从 HTML 表中创建一个 JSON 对象。我希望最终产品用于统计来自多个用户的输入
- python - tfidf w2v 给出 NaN 值
- node.js - 针对特定操作系统执行 node.js API
- apache-spark - 在 Spark 2.3 中给出 Maven 依赖错误
- user-interface - Flutter如何在滚动到某个点后仍然存在的列表视图中添加按钮..
- sql-server - 是否可以在 Azure VM 上安装 SSMS 并连接到 Azure SQL 数据库
- android - 用于 Android 的 Cordova 中的 XMLHttpRequest
- java - Android 创建自定义操作栏 3 项
- reactjs - 在 react-google-maps 中设置 OverlayView 的 z-index
- python - Xbox One 使用 Analogue Stick withevdev 无线控制伺服